# 异步回调通知

# 说明

  • 当订单支付成功后,本平台服务器会  立即  向你的服务器推送回调通知
  • 注意:是由本平台服务器向你的服务器推送

# 异步推送接口

推送方法:POST

数据格式: JSON

推送地址:你发起订单时传入的 notify_url 参数

# 参数结构

名称 字段类型 必填参数 说明
content object 返回的订单参数信息(对象)
sign string 推送的参数签名,此处采用 hmacsha256 加密,最后 md5 加密转大写

# 参数结构(content)

名称 字段类型 必填参数 说明
mch_trade_no string(32) 平台返回的订单号
out_order_no string(32) 商户订单号(字母、数字)
transaction_id string(32) 微信/支付宝订单显示的流水号 例如: 123456
total_fee int(9) 价格单位:分
attach string(128) 附加信息,回调时原样传回 例如:{test:'test1_params'}
trade_type int(2) 支付类型:
1-刷卡支付;2-扫码支付;3-公众号支付;4-App 支付;
6-手机网站支付;9-小程序支付
pay_type int(1) 支付渠道:1-微信支付;2-支付宝
bank_type string(32) 付款银行卡类型
pay_time datetime 用户支付时间,例如:2021-05-11 11:31:08
status int(1) 订单状态:1-待支付;2-成功;3-关闭
nonce_str string(32) 随机字符串

你接收到的推送结果示例 (json 结构):

{
  content: {
    mch_trade_no: '202105142073149160440416',
    out_order_no: '10018801620984646695',
    transaction_id: '4200001033202105140660481500',
    total_fee: 1,
    attach: "{test:'test1_params'}",
    trade_type: 2,
    pay_type: 1,
    bank_type: 'OTHERS',
    pay_time: '2020-08-12 17:31:14',
    status: 2,
    nonce_str: 'd5a3269acfac083fa85e80f98723b557'
  },
  sign: 'FFA7B929C064C6E453870C0E9338AA89'
}

# 签名说明(重要!!!)

  • 此处返回的 sign,与请求接口的 sign 不一样,请勿混淆
  • content 是你的订单相关支付信息
  • sign 仅是对推送的参数 content 的内容做签名结果(无需排序!!!)
  • 签名方式:md5(hmacsha256(JSON.stringify(content), secret_key)).toUpperCase();
  • 这里签名的作用,主要是给你校验参数是否一致
  • 注意:这里的签名方式 与 支付接口的入参签名 不一样

# 如何响应

提示:

  • 接收通知的服务器请在 3 秒钟内响应
  • 通知成功请返回 HTTP 状态码 200(必须),如果返回 HTTP 400/404/500 等其他状态码会认为通知失败
  • body 可以返回 ok/success 等字符。
  • 为保障推送到达率,系统可能多次进行通知推送,请做好去重逻辑
  • 在通知失败的情况下,10 分钟内,每隔 5 秒通知一次,超过则不再通知。可以在后台手动补发
  • 在通知成功的情况下,不会再次通知
最后更新于: 5/6/2023, 12:12:59 PM