Appearance
应用场景
支付完成后,会把相关支付结果及用户信息通过数据流的形式发送给商户,商户需要接收处理,并按文档规范返回应答。
注意
1、同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。
2、后台通知交互时,如果收到商户的应答不符合规范或超时,会判定本次通知失败,重新发送通知,直到成功为止(在通知一直不成功的情况下,总共会发起多次通知,通知频率为5s/15s/30s/3m/10m/30m/1h/1h/1h/1h - 总计 10次)这里通知发送可能会多台服务器进行发送,且发送时间可能会在几秒内,但不保证通知最终一定能成功。
3、在订单状态不明或者没有收到支付结果通知的情况下,建议商户主动调用支付【查询订单API】确认订单状态。
特别提醒:
1、商户系统对于支付结果通知的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄露导致出现“假通知”,造成资金损失。
2、当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
接口链接
该链接是通过【统一下单API】中提交的参数notify_url设置,如果链接无法访问,商户将无法接收到通知。
通知url必须为直接可访问的url,不能携带参数。公网域名必须为https,如果是走专线接入,使用专线NAT IP或者私有回调域名可使用http。示例:notify_url:“https://pay.baidu.com/order/notify.action”
通知参数
| 字段名 | 变量名 | 类型 | 示例值 |
|---|---|---|---|
| 商户ID | client_id | int | 1000 |
| 商户订单号 | out_trade_no | string | 20150806125346 |
| 我方订单号 | trade_no | string | 20150806125346 |
| 订单金额 | total_amount | string | 99.99 |
| 时间戳 | timestamp | int | 1381281244 |
| 随机字符串 | nonce_str | string | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
| 支付状态 | status | int | 1 支付成功 0 未支付 |
| 签名 | sign | string | 601ec0dc5094918242fdea85ce680835 |
返回结果
请返回小写 success