Java对接Coinex API按官方规则生成签名仍返回Signature Incorrect错误
Coinex API签名错误(错误码25)排查方案
- 参数排序错误
Coinex要求所有请求参数(不含secret_key)必须按参数名的ASCII码升序排列后再拼接,你当前的拼接顺序tonce=xxx&access_id=xxx不符合要求:access_id首字母ASCII码远小于tonce,正确的待签名字符串顺序应为access_id=XXXX&tonce=1635504041595&secret_key=YYYY,顺序错误会直接导致MD5结果不匹配。 - MD5结果大小写不符
官方要求最终传入请求头的签名为全大写的32位MD5值,如果你输出的是小写哈希结果,服务端会直接判定签名错误。 - 请求路径存在冗余斜杠
你构造的请求URL为https://api.coinex.com/v1//balance/info,v1后多写了一个斜杠,服务端会将该路径识别为非法路径,参与签名校验时会直接校验失败,正确路径应为https://api.coinex.com/v1/balance/info。 - tonce时间戳不符合要求
tonce必须为毫秒级Unix时间戳,且与服务端时间偏差不能超过30秒,若你本地时间存在较大偏差,即使签名逻辑正确也会报错。 - secret_key配置错误
确认你拼接的secret_key与当前使用的access_id完全配对,无多余空格、字符错漏、大小写错误等问题。
正确签名流程参考:
- 收集所有请求参数(本次请求为
access_id=XXXX、tonce=1635504041595)- 按参数名ASCII码升序排序,得到顺序:access_id、tonce
- 拼接为查询字符串:
access_id=XXXX&tonce=1635504041595- 在查询字符串末尾拼接
&secret_key=你的对应密钥,得到完整待签名字符串- 对该字符串做MD5哈希,将结果转为全大写后放入请求头的
authorization字段即可
内容的提问来源于stack exchange,提问作者Andy Jj
相关产品推荐
相关产品推荐

