Appearance
最佳实践
9.1 签名调试
签名验证失败(40101)是最常见的接入问题,建议:
- 先调用
GET /api/open/v1/health确认网络连通性 - 打印拼好的
sign_string,逐字段核对 - 确认
body_md5计算时使用的 body 与实际发送的 body 完全一致(包括空格、换行等) - GET 请求的
body_md5应为空字符串的 MD5:d41d8cd98f00b204e9800998ecf8427e - 确认
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,支持不中断服务的平滑轮换)