机器翻译
本页面使用机器翻译。如有任何不一致之处,请参阅英文文档。
回调
基本信息
- 以 HTTP POST 请求的形式发送到客户端系统,发送到个人账户中指定的 URL
- 请求和响应正文中的数据以 JSON 格式提供
- 请求包含以下请求头:
Content-Type: application/jsonUser-Agent:有关发起调用系统的信息
- 日期以 UTC 时间、ISO 8601 格式传输。例如:
2024-07-02T12:50:30Z
回调 URL 要求
- 必须使用安全的 HTTPS 协议
- 必须使用域名,而不是 IP 地址
认证
回调的认证是通过在请求中发送请求头来完成的,与用于 API 请求认证的请求头类似(参见认证一节)。
回调验证
为防止欺诈,客户端系统必须按以下方式验证指定回调请求头的值:
- 当前服务器时间与
X-Processing-Timestamp请求头值之间的差值不超过X-Processing-RecvWindow请求头的值 X-Processing-Key请求头的值与客户端有效的公共 API 访问密钥的值一致X-Processing-Signature请求头的值与使用密钥对请求数据进行签名后得到的签名一致
处理回调
成功响应
如果回调请求处理成功,客户端系统必须返回 HTTP 状态码 200 OK。
幂等性
如果在成功响应某个回调请求之后,又收到另一个类似的请求,则必须生成与前一次相同的响应。
如果请求正文中以下参数的值相同,则认为这些请求是类似的:
type- 交易类型id- 处理系统中的交易标识符(对于地址检查 -checkId)status- 交易状态
交易唯一性
要确定多个回调是属于同一笔交易还是不同的交易,请使用回调 JSON 根元素中 type 和 id 参数的组合。此组合在所有交易中都是唯一的。
对于地址检查回调(type = AddressCheck),使用 checkId 参数代替 id。
重试策略
不重试的状态码
如果客户端系统返回以下 HTTP 状态码,回调将不会重试:
- 1xx
- 3xx
- 4xx
会重试的状态码
如果响应的 HTTP 状态码在 5xx 范围内,该回调将保留在发送队列中,并按照指数退避策略继续尝试发送。
退避计算公式:
60 seconds + {retry count}^4
最大重试次数: 10
重试间隔
| 尝试次数 | 间隔 | 总耗时 |
|---|---|---|
| 1 | 61 sec | 61 sec |
| 2 | 76 sec | 137 sec |
| 3 | 141 sec | 278 sec |
| 4 | 361 sec | 594 sec |
| 5 | 685 sec | 1,279 sec |
| 6 | 1,356 sec | 2,635 sec |
| 7 | 2,461 sec | 5,096 sec |
| 8 | 4,156 sec | 9,252 sec |
| 9 | 6,621 sec | 15,873 sec |
| 10 | 10,060 sec | 25,933 sec (~7.2 hours) |