订单回调通知

支付成功后平台向商户通知订单结果。

回调响应要求
商户收到通知后请返回 OK,否则平台可能重试。
通知示例
{
  "appId": "Zu78qwe1",
  "orderNo": "OR202601010001",
  "merchantOrderNo": "Order202409291231",
  "chainType": "1",
  "payMoney": "10.00",
  "actualPayMoney": "10.00",
  "fee": "0.50",
  "status": "2",
  "attach": "user001",
  "signature": "6F3B90783FABE56DBB771D03E0EAADD0"
}

处理建议

步骤说明
1先验签,再处理业务
2按 merchantOrderNo 做幂等
3成功后返回 OK
4若失败,平台会重试通知
回调响应
OK

微信直连回调扩展

XPay 校验微信支付公钥签名、回调时间窗、商户号、AppID、平台订单号和金额,并使用 APIv3 密钥解密通知。确认成功后,平台将结果以表单方式 POST 到原订单 notifyUrl

商户收到的表单字段
appId=Zu78qwe1
platformOrderNo=WXP20260814120000ABCDEF
merchantOrderNo=WX202608140001
payType=WECHAT
amount=0.01
status=PAID
payTime=1786670400
tradeNo=4200000000202608140000000001
attach=user-10001
signature=...
商户应验签并按订单号幂等处理,成功后返回 successOK{"code":0}。其他响应会由 wechat:notify-retry 补偿重试。

支付宝直连回调扩展

XPay 验证支付宝 RSA2 签名、支付宝 AppID、平台订单号和金额后,将支付结果以 application/x-www-form-urlencoded POST 到下单时的 notifyUrl

商户收到的表单字段
appId=Zu78qwe1
platformOrderNo=ALI20260807110917E2BF35
merchantOrderNo=ALI202608070001
payType=ALIPAY
amount=20.00
status=PAID
payTime=1786072157
tradeNo=2026080722000000000001
attach=user-10001
signature=...
商户必须使用自己的 XPay AppSecret 对除 signature 外的所有非空字段重新计算签名,并按 merchantOrderNo 做幂等处理。处理成功后请返回纯文本 successOK,或 JSON {"code":0}。其他响应(包括正文不符合要求的 HTTP 200)均视为失败,平台最多尝试通知 10 次。

通知失败后平台按递增间隔自动重试;商户也应使用查单接口主动补偿。redirectUrl 只用于用户浏览器同步跳转,不能作为支付成功依据;入账必须以异步通知或查单结果为准。