回调通知说明
对于收单,退款,提现的交易,在用户交易完成之后,Pay Protocol 会根据 API 中商家传入的 notifyUrl
,通过 POST 请求的形式将交易结果作为参数通知到商家系统。
而对于充值的交易,用户在充值完成后,Pay Protocol 会根据商户在管理后台设置的充值回调地址,通过 POST 请求的 形式将交易结果作为参数通知到商家系统。充值的回调配置请访问充值接入流程->(调用流程4)完成设置。
回调通知参数
请求标头
所有回调通知都会在请求标头中包含以下参数:
参数 | 类型 | 描述 | 示例值 |
---|---|---|---|
X-PAY-KEY | 字符串 | 商户的 API Key | F1R28pRQ |
X-PAY-TIMESTAMP | 字符串 | 发送请求的 Unix 时间戳,单位为秒 | 1684304935 |
X-PAY-SIGN | 字符串 | 签名,详情可查看请求签名的介绍 | Z0VwhFhFIFePC5M62DdcABkIQDQQUvshzItY9wSKVcg= |
Content-Type | 字符串 | 请求体的类型 | application/json |
请求体
具体的回调通知内容请查看对应的接口文档:
回调响应
商户系统在收到回调后,需要返回 plain/text
类型的字符串 success
,以告知 Pay Protocol 回调通知已经成功接收。
回调通知特性
- 商户提供的回调通知地址必须是公网可访问的 HTTPS 地址。
- 回调通知是异步的,商户系统必须能够处理重复的通知。
- 回调都是用 POST 请求发送的。
- 回调一般是在交易确认时(成功或者失败)发送,最多发送6次,分别在交易确认后的0秒、15秒、30秒、3分钟、5分钟、10分钟时发送。
- 当商户回调地址正常返回
success
时,系统会认为回调成功,不再发送后续的回调通知。 - 商户也可以调用 API 接口主动触发一次回调通知,具体可以参考相应的接入流程文档。
回调通知验签
回调通知的加签方式与 API 请求的加签方式相同,详情可查看请求签名的生成。
需要注意的地方:
timestamp
即为请求标头中的X-PAY-TIMESTAMP
。method
固定为 POST。requestPath
为回调通知的路径,如某商户设置的回调地址为https://your-callback-url.com/callback
,则requestPath
为/callback
。body
为回调通知的请求体字符串。
对加签得到的 sign
与回调通知中的 X-PAY-SIGN
进行比对,同时将商户的 API Key 与回调请求标头中的 X-PAY-KEY
进行比对,若一致则表示验签通过。