支付结果通知
更新时间:2024.11.18应用场景
支付完成后,微信会把相关支付结果及用户信息通过数据流的形式发送给商户,商户需要接收处理,并按文档规范返回应答。
  | 
接口链接
该链接是通过【统一下单API】中提交的参数notify_url设置,如果链接无法访问,商户将无法接收到微信通知。
通知url必须为直接可访问的url,不能携带参数。公网域名必须为https,如果是走专线接入,使用专线NAT IP或者私有回调域名可使用http。示例:notify_url:“https://pay.weixin.qq.com/wxpay/pay.action”
是否需要证书
不需要。
通知参数
字段名  | 变量名  | 必填  | 类型  | 示例值  | 描述  | 
|---|---|---|---|---|---|
返回状态码  | return_code  | 是  | String(16)  | SUCCESS  | SUCCESS/FAIL 此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断  | 
返回信息  | return_msg  | 否  | String(128)  | 签名失败  | 返回信息,如非空,为错误原因 签名失败 参数格式校验错误  | 
以下字段在return_code为SUCCESS的时候有返回
字段名  | 变量名  | 必填  | 类型  | 示例值  | 描述  | 
|---|---|---|---|---|---|
小程序ID  | appid  | 是  | String(32)  | wx8888888888888888  | 微信分配的小程序ID  | 
商户号  | mch_id  | 是  | String(32)  | 1900000109  | 微信支付分配的商户号  | 
设备号  | device_info  | 否  | String(32)  | 013467007045764  | 微信支付分配的终端设备号,  | 
随机字符串  | nonce_str  | 是  | String(32)  | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS  | 随机字符串,不长于32位  | 
签名  | sign  | 是  | String(32)  | C380BEC2BFD727A4B6845133519F3AD6  | 签名,详见签名算法  | 
签名类型  | sign_type  | 否  | String(32)  | HMAC-SHA256  | 签名类型,目前支持HMAC-SHA256和MD5,默认为MD5  | 
业务结果  | result_code  | 是  | String(16)  | SUCCESS  | SUCCESS/FAIL  | 
错误代码  | err_code  | 否  | String(32)  | SYSTEMERROR  | 错误返回的信息描述  | 
错误代码描述  | err_code_des  | 否  | String(128)  | 系统错误  | 错误返回的信息描述  | 
用户标识  | openid  | 是  | String(128)  | wxd930ea5d5a258f4f  | 用户在商户appid下的唯一标识  | 
是否关注公众账号  | is_subscribe  | 是  | String(1)  | N  | 已废弃,默认统一返回N  | 
交易类型  | trade_type  | 是  | String(16)  | JSAPI  | JSAPI、NATIVE、APP  | 
付款银行  | bank_type  | 是  | String(32)  | CMC  | 银行类型,采用字符串类型的银行标识,银行类型见银行列表  | 
订单金额  | total_fee  | 是  | int  | 100  | 订单总金额,单位为分  | 
应结订单金额  | settlement_total_fee  | 否  | int  | 100  | 应结订单金额=订单金额-非充值代金券金额,应结订单金额<=订单金额。  | 
货币种类  | fee_type  | 否  | String(8)  | CNY  | 货币类型,符合ISO4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型  | 
现金支付金额  | cash_fee  | 是  | int  | 100  | 现金支付金额订单现金支付金额,详见支付金额  | 
现金支付货币类型  | cash_fee_type  | 否  | String(16)  | CNY  | 货币类型,符合ISO4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型  | 
总代金券金额  | coupon_fee  | 否  | int  | 10  | 代金券金额<=订单金额,订单金额-代金券金额=现金支付金额,详见支付金额  | 
代金券使用数量  | coupon_count  | 否  | int  | 1  | 代金券使用数量  | 
代金券类型  | coupon_type_$n  | 否  | String  | CASH  | CASH--充值代金券 NO_CASH---非充值代金券 并且订单使用了免充值券后有返回(取值:CASH、NO_CASH)。$n为下标,该笔订单使用多张代金券时,从0开始编号,举例:coupon_type_0、coupon_type_1 注意:只有下单时订单使用了优惠,回调通知才会返回券信息。  | 
代金券ID  | coupon_id_$n  | 否  | String(20)  | 10000  | 代金券ID,$n为下标,该笔订单使用多张代金券时,从0开始编号,举例:coupon_id_0、coupon_id_1  | 
单个代金券支付金额  | coupon_fee_$n  | 否  | int  | 100  | 单个代金券支付金额,$n为下标,从0开始编号  | 
微信支付订单号  | transaction_id  | 是  | String(32)  | 1217752501201407033233368018  | 微信支付订单号  | 
商户订单号  | out_trade_no  | 是  | String(32)  | 1212321211201407033568112322  | 商户系统内部订单号,要求32个字符内(最少6个字符),只能是数字、大小写字母_-|*且在同一个商户号下唯一。详见商户订单号  | 
商家数据包  | attach  | 否  | String(128)  | 123456  | 商家数据包,原样返回  | 
支付完成时间  | time_end  | 是  | String(14)  | 20141030133525  | 支付完成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则  | 
举例如下:
返回参数
商户处理后同步返回给微信参数:
字段名  | 变量名  | 必填  | 类型  | 示例值  | 描述  | 
|---|---|---|---|---|---|
返回状态码  | return_code  | 是  | String(16)  | SUCCESS  | SUCCESS/FAIL SUCCESS表示商户接收通知成功并校验成功  | 
返回信息  | return_msg  | 否  | String(128)  | OK  | 返回信息,如非空,为错误原因: 签名失败 参数格式校验错误  | 
举例如下:
