跳到主要内容
机器翻译

本页面使用机器翻译。如有任何不一致之处,请参阅英文文档

回调

基本信息

  • 表示向客户系统发送的 HTTP POST 请求,URL 在个人账户中配置
  • 请求和响应正文中的数据以 JSON 格式提供
  • 请求包含以下标头:
    • Content-Type: application/json
    • User-Agent: 调用系统的信息
  • 日期以 UTC 时区的 ISO 8601 格式传输。例如:2024-07-02T12:50:30Z

回调 URL 要求

  1. 使用安全的 HTTPS 协议
  2. 使用域名,而非 IP 地址

身份验证

回调的身份验证通过在请求中发送标头来执行,类似于 API 请求授权的标头(参见授权部分)。

回调验证

为避免欺诈,客户系统必须按以下方式验证指定的回调标头值:

  1. 当前服务器时间与 X-Processing-Timestamp 标头值之间的差异不超过 X-Processing-RecvWindow 标头值
  2. X-Processing-Key 标头值与客户端活动的公共 API 访问密钥的值匹配
  3. X-Processing-Signature 标头值与使用密钥对请求数据的签名匹配

回调处理

成功响应

如果回调请求成功,客户系统必须响应 HTTP 代码 200 OK

幂等性

如果在成功响应回调请求后,再次收到类似的请求,则需要生成与前一个请求相同的响应。

如果请求正文中以下参数的值相同,则认为请求是类似的:

  • type - 交易类型
  • id - 处理系统中的交易标识符
  • status - 交易状态

交易唯一性

要确定多个回调是否与一个交易或不同交易相关,请使用回调 JSON 根元素中 typeid 参数的组合。此组合对于所有交易都是唯一的。

重试策略

不重试的代码

当从客户系统收到以下 HTTP 代码的响应时,回调不会重试:

  • 1xx
  • 3xx
  • 4xx

重试代码

如果响应的 HTTP 代码为 5xx,回调将保留在发送队列中,并根据指数退避策略继续尝试发送。

退避计算公式:

60 秒 + {重试次数}^4

最大重试次数: 10

重试间隔

尝试次数间隔累计时间
161 秒61 秒
276 秒137 秒
3141 秒278 秒
4361 秒594 秒
5685 秒1,279 秒
61,356 秒2,635 秒
72,461 秒5,096 秒
84,156 秒9,252 秒
96,621 秒15,873 秒
1010,060 秒25,933 秒 (~7.2 小时)