异步通知(notify_url)
说明
- 调用方向:宝付 → 商户(
POST至进线时传入的notify_url) - 通知格式:JSON Body,
Content-Type: application/json - 安全:商户须验签;含敏感字段时按统一网关规范解密
- 地址约定:
- 绑卡/开户通知:使用开户或绑卡请求上送的
notify_url - 扣款通知:使用扣款请求上送的
notify_url - 退款通知:使用退款发起时上送的
notify_url;未上送则不通知
- 绑卡/开户通知:使用开户或绑卡请求上送的
- 失败重试:商户须应答 HTTP 状态码
200,响应体为字符串OK;否则系统按固定频率重试。须按out_trade_no(或约定业务单号)幂等 - 失败原因:通知 Body 仅在失败时带
error_message;成功时不下发该字段
Header 参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| Baofu-Timestamp | string | true | 秒级 Unix 时间戳 |
| Baofu-Nonce | string | true | 随机串 |
| Baofu-Serial | string | true | 证书序列号 |
| Request-ID | string | true | 通知链路 ID |
| Baofu-Signature-Type | string | true | 签名算法 |
| Baofu-Signature | string | true | 签名值 |
商户身份 Header(不在 Body 中重复):通知随请求回传进线时的 Baofu-Mch-ID;若进线时上送了 Baofu-App-ID 则一并回传,未上送则通知中不出现该头。
商户验签(待签串)
与开放网关应答侧约定一致:
- 取 Header 中秒级时间戳、随机串;数字信封若本次通知无则传空串(拼接时仍保留单独一行)。
- 取 HTTP Body 原始字节 对应的 JSON 字符串(与接收到的完全一致,勿重新格式化)。
- 按 「时间戳 +
\n+ 随机串 +\n+ 数字信封 +\n+ Body +\n」 拼接(每行以换行结束,包括最后一行)。 - 按
Baofu-Signature-Type使用约定证书验签Baofu-Signature。
对应 Header 分别为 Baofu-Timestamp、Baofu-Nonce;数字信封无则空串,拼接时仍占一行。
商户应答
验签通过后处理业务。须应答 HTTP 状态码 200,响应体为字符串 OK;否则系统按固定频率重试。须按业务单号幂等。本约定适用于全部异步通知。
应答示例
200 OK
OK