机器翻译
本页面使用机器翻译。如有任何不一致之处,请参阅英文文档。
回调
基本信息
- 表示向客户系统发送的 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- 处理系统中的交易标识符status- 交易状态
交易唯一性
要确定多个回调是否与一个交易或不同交易相关,请使用回调 JSON 根元素中 type 和 id 参数的组合。此组合对于所有交易都是唯一的。
重试策略
不重试的代码
当从客户系统收到以下 HTTP 代码的响应时,回调不会重试:
- 1xx
- 3xx
- 4xx
重试代码
如果响应的 HTTP 代码为 5xx,回调将保留在发送队列中,并根据指数退避策略继续尝试发送。
退避计算公式:
60 秒 + {重试次数}^4
最大重试次数: 10
重试间隔
| 尝试次数 | 间隔 | 累计时间 |
|---|---|---|
| 1 | 61 秒 | 61 秒 |
| 2 | 76 秒 | 137 秒 |
| 3 | 141 秒 | 278 秒 |
| 4 | 361 秒 | 594 秒 |
| 5 | 685 秒 | 1,279 秒 |
| 6 | 1,356 秒 | 2,635 秒 |
| 7 | 2,461 秒 | 5,096 秒 |
| 8 | 4,156 秒 | 9,252 秒 |
| 9 | 6,621 秒 | 15,873 秒 |
| 10 | 10,060 秒 | 25,933 秒 (~7.2 小时) |