Appearance
代收回调
method: POST
content-type: application/json
接口参数
| 属性 | 类型 | 必填/签名 | 描述 | 示例 |
|---|---|---|---|---|
| Timestamp | long | 是 | 当前时间戳 精度:秒(UTC) | 1613719331 |
| AccessKey | string | 是 | 商户 AccessKey 商户后台获取 | dTBTLXi... |
| OrderNo | string | 是 | 商户订单号 商户系统生成的唯一单号 | PR20230620... |
| Amount | string | 是 | 支付金额 单位:元。支持 100, 100.1, 100.01 | 100.01 |
| Status | int | 是 | 只处理状态为4,其余不要处理! | 4 |
| Ext | string | 条件签名 | 扩展字段 可选。若非空字符串,则参与签名 | test_data |
| Payer | string | 条件签名 | 付款人姓名 可选。若非空字符串,则参与签名 | 张三 |
| Sign | string | 不参与 | 签名串 通过 加密算法 计算得出 | 9d8f8bd5... |
json
{
"AccessKey": "BlVnlKWzllSGLm47BkWahzRq",
"Timestamp": 1655997847,
"Amount": "500",
"Sign": "390bb71db215cd0f53e297768599f72f",
"OrderNo": "39a49dfd9aad48d8b24637b072400e38",
"Status": 4,
"Ext": "ext"
}回调重试机制
| 次数 | 间隔时间 | 备注 |
|---|---|---|
| 第 1 次 | 立即发送 | 首次通知 |
| 第 2 之后 | 以5s,10s,20s,40s,80s,120s,120s...的频率推送 | 持续推送2小时后不再推送,直到收到 ok 或达上限 |
💡 建议
建议商户在处理回调逻辑前,先判断单号 OrderNo 是否已经处理过(成功或失败),若已处理则直接回复 ok,避免重复入账。
回调签名逻辑
重要:动态签名规则
后期可能增加回调参数。请对接人员按照以下逻辑处理签名:
- 参数有值:必须参与签名计算。
- 参数为空(null 或 ""):不参与签名计算。
示例(以新增参数 NewExt 为例):
| 场景 | 参数值 | 是否参与签名 |
|---|---|---|
| 场景 A | NewExt: "123" | 是 |
| 场景 B | NewExt: "" | 否 |
关于支付金额的特别说明
实际支付金额说明
1、对接系统请务必注意:返回的金额为【实际支付金额】,不一定等于【用户提交金额】。
2、请确保您的回调接口具备幂等性,处理前先检查单号 OrderNo 是否已入账。
响应要求
商户后端接收到异步回调并处理完成后,必须返回 ok 两个字符(不带引号)。
- 若返回非
ok字符串,平台将进行 5 次 尝试重发回调。 - 请商户务必做好接口的 幂等性设计 和 防重保证。
金额差异场景: 例如用户下单提交金额为
1000元,但最终实际支付了100元。我方在回调和查询接口中将统一返回实际支付金额100。业务处理建议:
- 不支持补单/差额的系统:若发现实际支付金额与提交金额不符,请直接忽略该订单,不进行逻辑处理。
- 支持补单/差额的系统:请直接按我方返回的 实际支付金额 进行业务入账或处理。
