Skip to content

最佳实践

9.1 签名调试

签名验证失败(40101)是最常见的接入问题,建议:

  1. 先调用 GET /api/open/v1/health 确认网络连通性
  2. 打印拼好的 sign_string,逐字段核对
  3. 确认 body_md5 计算时使用的 body 与实际发送的 body 完全一致(包括空格、换行等)
  4. GET 请求的 body_md5 应为空字符串的 MD5:d41d8cd98f00b204e9800998ecf8427e
  5. 确认 sorted_query 正确:使用原始 URL 编码的 query string 按 & 分割后按字母序排列,不要解码后重新编码

9.2 错误重试

对于 5xx 错误和 429 限流错误,建议实现指数退避重试:

第 1 次重试:等待 1 秒
第 2 次重试:等待 2 秒
第 3 次重试:等待 4 秒
最多重试 3 次

对于 4xx 错误(参数错误、权限不足等),不要重试,先排查问题。

9.3 时间同步

签名校验要求时间戳与服务器时间差不超过 5 分钟。建议:

  • 调用方服务器配置 NTP 时间同步
  • 如遇到 40103 错误,优先检查本机时间是否准确

9.4 密钥安全

  • app_secret 不要硬编码在代码中,建议通过环境变量或配置中心管理
  • 不要在日志中打印 app_secret
  • 定期轮换密钥(联系管理员生成新的 app_secret,支持不中断服务的平滑轮换)

艾恋相亲 SaaS 平台