支付成功异步通知API
通知地址
通知的地址为发起支付交易的时候上送的notify_url。
通知策略
支付完成后,SaaS会把相关支付结果发送给商户,商户需要接收处理,并返回应答。对后台通知交互时,如果SaaS收到商户的应答不是成功或超时,SaaS认为通知失败,SaaS会通过一定的策略定期重新发起通知。尽可能提高通知的成功率,但不保证通知最终能成功。(通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)
如果异步通知的状态与查询接口的返回存在不一致,以查询接口的返回为准。
请求参数(O-非必传 ,M-必传):
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
trade_no | 交易订单号 | String | SaaS平台的交易订单编号 | M | |
merch_no | 商户编号 | String | (v1.16增加) | M | |
out_trade_no | 服务商交易订单号 | String | 服务商的交易订单编号 | 161018121614000624679888 | M |
channel_trade_no | 凭证条码订单号 | String | 凭证条码订单号(v1.24增加) | 161018121614000624679888 | M |
total_amount | 订单金额 | String | 订单总金额,以元为单位 | 100 | M |
trade_type | 支付类型 | String | WX:微信支付 | WX | M |
pay_mode | 交易类型 | String |
被扫支付:BARPAY 公众号支付:JSAPI 预授权:PREAUTH 预授权完成:PREAUTHFINISH |
BARPAY | M |
trade_status | 交易状态 | String | 固定为1 | 1 | M |
appid | 微信支付的appid | String | 微信支付的appid | O | |
openid | 微信支付的用户openid | String | 微信支付的用户openid | O | |
fee | 手续费 | String | 以元为单位(v1.01增加) | 1.00 | O |
rate | 费率 | String | M | ||
sn | 厂商终端号 | String | (v1.05增加) | O | |
remark | 交易备注 | String | (v1.05增加) | O | |
fee_subsidy_party | 手续费补贴方 | String | 手续费补贴方 | O | |
pre_fee_subsidy_amount | 手续费预补贴金额 | String | 手续费预补贴金额 | 1、手续费预计补贴金额是服务商上送交易费补贴金额 | C |
real_fee_subsidy_amount | 手续费实际补贴金额 | String | 手续费实际补贴金额 | 该笔交易实际补贴金额。例如:服务商上送预计手续费补贴金额为6元,根据交易费率计算手续费为5元,则该笔交易实际补贴为5元 | C |
real_fee_amount | 手续费实收金额 | String | 手续费实收金额 | 该笔交易手续费实收金额。例如:服务商上送预计手续费补贴金额为2元,根据交易费率计算手续费为5元,则商户手续费金额(5元)减去补贴金额(2元)等于手续费实收金额(3元) | C |
card_type | 卡类型 | String | 对应微信银行分类(v1.16增加) | 详见附录--支付银行枚举 | M |
weixin_no | 微信平台的订单号 | String | 微信平台的订单号(v1.23增加) | O | |
trade_end_time | 支付完成时间 | String | 微信通道返回的支付完成时间 | 2019-11-18 14:11:23 | O |
attach | 微信原生参数 | JSON | O |
微信原生参数:attach
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
sub_appid | 子商户公众账号ID | String | wx8888888888888888 | O | |
sub_mch_id | 子商户号 | String | 1900000109 | M | |
device_info | 设备号 | String | O | ||
sub_openid | 用户子标识 | String | O | ||
trade_type | 交易类型 | String | 调用接口提交的交易类型,取值如下 JSAPI,NATIVE,APP,MICROPAY | M | |
trade_state | 交易状态 | String | SUCCESS-支付成功 REFUND-转入退款 NOTPAY-未支付 CLOSED-已关闭 REVOKED- 已撤销(刷卡支付) USERPAYING-用户支付中 PAYERROR-支付失败(其他原因,如银行返回失败) |
M | |
bank_type | 付款银行 | String | CMC | M | |
promotion_detail | 优惠券详情 | String | “[{“amount”:100,”merchant_contribute”:”100”,”other_contribute”:”0”,”promotion_id”:”15171754411”,”type”:”DISCOUNT”,”wxpay_contribute”:”0”,”scope”:”GLOBAL”,”activity_id”:”15079378”,”name”:”翠微测试”}]” | O | |
total_fee | 标价金额 | int | 订单总金额,单位为分,只能为整数 | 888 | M |
fee_type | 标价币种 | String | CNY | O | |
settlement_total_fee | 应结订单金额 | String | 单位:分 | O | |
cash_fee | 现金支付金额 | String | 单位:分 | M | |
cash_fee_type | 现金支付币种 | String | CNY | O | |
transaction_id | 银联/网联订单号 | String | M | ||
out_trade_no | 商户订单号 | String | M | ||
time_end | 支付完成时间 | String | M | ||
trade_state_desc | 交易状态描述 | String | M | ||
coupon_fee | 代金券金额 | String | 单位:分 | O |
微信优惠参数:promotion_detail
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
promotion_id | 券ID | String | 券或者立减优惠id | 109519 | M |
amount | 优惠券面额 | String | 用户享受优惠的金额 | 5 | M |
activity_id | 活动ID | String | 在微信商户后台配置的批次ID | 931386 | M |
name | 优惠名称 | String | 优惠名称 | 单品惠-6 | O |
scope | 优惠范围 | String | GLOBAL- 全场代金券 SINGLE- 单品优惠 | SINGLE | O |
type | 优惠类型 | String | COUPON- 代金券,需要走结算资金的充值型代金券,(境外商户券币种与支付币种一致)DISCOUNT- 优惠券,不走结算资金的免充值型优惠券,(境外商户券币种与标价币种一致 | DISCOUNT | O |
wxpay_contribute | 微信出资 | String | 特指由微信支付商户平台创建的优惠,出资金额等于本项优惠总金额,单位为分 | 0 | O |
merchant_contribute | 商户出资 | String | 特指商户自己创建的优惠,出资金额等于本项优惠总金额,单位为分 | 0 | O |
other_contribute | 其他出资 | String | 其他出资方出资金额,单位为分 | 7 | O |
goods_detail | 单品列表 | Json | 单品信息,使用Json格式 | O |
单品信息:goods_detail
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
goods_id | 商品编码 | String | 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成 | 商品编码 | M |
goods_remark | 商品备注 | String | goods_remark为备注字段,按照配置原样返回,字段内容在微信后台配置券时进行设置。 | 1001 | O |
discount_amount | 商品优惠金额 | String | 单品的总优惠金额,单位为:分 | 3 | M |
quantity | 商品数量 | String | 用户购买的数量 | 1 | M |
price | 商品价格 | String | 单位为:分。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔100元的订单使用了商场发的纸质优惠券100-50,则活动商品的单价应为原单价-50) | 528800 | M |
请求示例:
{
"trade_type":"xxxx",
"trade_status":"xxx",
"out_trade_no":"xxx",
"trade_no":"xxx",
"total_amount":"xxx",
"fee":"xxx",
"sn":"xxx",
"remark":"xxxx",
"appid":"xxxxx",
"openid":"xxxxxx",
"sign":"xxxxx"
}
返回参数:
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
result | 接收结果 | String | 接收成功后返回“SUCCESS” | SUCCESS | M |
返回示例:
{
"result": "SUCCESS"
}
文档更新时间: 2025-02-11 10:31 作者:admin