HTX API请求持续报错api-signature-not-valid,寻求技术帮助
解决HTX API "api-signature-not-valid" 错误
以下是针对签名校验失败问题的核心排查与解决步骤:
1. 修正签名生成逻辑,严格匹配HTX规范
HTX API签名必须严格遵循以下流程,任何环节出错都会导致校验失败:
- 待签名字符串格式:
大写请求方法 + 接口完整路径 + URL查询参数(ASCII升序拼接) + POST请求体(原始JSON字符串) + 毫秒时间戳- 示例(GET订单接口):
GET/api/v1/ordersymbol=BTCUSDT1718000000000 - 示例(POST下单接口):
POST/api/v1/order{"amount":"0.01","price":"30000","symbol":"BTCUSDT","type":"limit"}1718000000000
- 示例(GET订单接口):
- 使用你的API Secret对上述字符串做HMAC SHA256加密,再转换为十六进制字符串作为最终签名
2. 移除不必要的URL编码操作
你当前步骤中对签名进行URL编码是错误的——HTX会自动处理签名的编码逻辑,直接使用生成的原始十六进制签名即可。
3. 核对请求头必填参数
确保请求头包含以下完整参数,且值与签名生成时的信息一致:
AccessKeyId: 你的API Access Key Timestamp: 签名时使用的毫秒级时间戳(与服务器时间差不能超过30秒) Signature: 原始十六进制签名 SignatureMethod: HmacSHA256 SignatureVersion: 2
4. 检查POST请求体格式
如果是POST请求:
- 请求体必须是
Content-Type: application/json格式的原始JSON字符串,不能使用form-data或x-www-form-urlencoded格式 - 签名时必须将完整的JSON字符串加入待签名内容,不能遗漏或修改任何字符
5. 同步本地时间
本地时间与HTX服务器时间差超过30秒会直接触发签名校验失败,建议将本地时间同步到NTP服务器,确保时间误差在10秒以内。
内容的提问来源于stack exchange,提问作者Lusi94
相关产品推荐
相关产品推荐

