Agent SDK 密钥与 HMAC 签名

保护 Agent API 凭证,并了解 SDK 如何生成带时间戳、防重放的 HMAC-SHA256 请求签名。

以 Markdown 格式查看

Agent SDK 请求使用合作方 API Secret 进行身份验证。密钥必须保存在可信后端服务中,并尽量由 SDK 自动生成签名字段。

两套签名协议

Agent SDK 签名使用排序后的请求字段、秒级时间戳和 nonce。直接调用 Developer API 时使用请求签名中说明的另一套流程,不能混用两种签名内容格式。

签名规则

Agent SDK 请求的签名步骤:

  1. 排除 sign 字段。
  2. 忽略值为空的字段。
  3. 按字段名 ASCII 升序排列。
  4. 拼接为 k=v&k2=v2
  5. 使用 apiSecret 计算 HMAC-SHA256 十六进制签名。

SDK 应使用与实际发送内容完全相同的数据生成签名。签名生成后再修改任何已签字段,都会导致验证失败。

SDK 自动处理字段

字段来源说明
agentCodeSDK 配置代理商编码。
timestamp当前服务器时间Unix 秒级时间戳。
nonce安全随机值防重放随机串。
signHMAC-SHA256请求签名。
currency默认币种划转和账户接口未传币种时使用。

密钥存储

  • 从后端密钥管理系统或受保护的运行配置读取 apiSecret
  • 不要把密钥放入前端代码包、移动端、桌面客户端、截图或支持工单。
  • 分离开发、测试和生产环境的凭证。
  • 只允许确实需要的服务和操作人员访问。
  • 从日志中移除请求签名、鉴权信息和密钥。
  • 怀疑密钥泄露时立即撤销并更换。

时间与防重放

SDK 使用 timestampnonce 降低重放风险。后端时钟应保持同步,不要重复使用手动构造的 nonce。签名失败时,先检查密钥、服务器时间、序列化字段和环境是否一致,再决定是否重试。

接入检查

检查项预期结果
密钥位置只存放在后端密钥系统中。
环境Base URL 和凭证属于同一环境。
字段处理由 SDK 生成 timestampnoncesign
日志保留业务 ID,同时移除凭证。
轮换已记录凭证负责人和更换流程。