API 请求在通过 Internet 发送的过程中极有可能被篡改。为了确保请求未被更改,我们会要求用户在每个请求中带上签名(行情 API 除外),来校验参数或参数值在传输途中是否发生了更改。
- 规范要计算签名的请求 因为使用 HMAC 进行签名计算时,使用不同内容计算得到的结果会完全不同。所以在进行签名计算前,请先对请求进行规范化处理。下面以查询资产详情请求为例进行说明
{
"cmds":[
{
"cmd":"transfer/assets",
"body":{
"select":1
}
}
],
"apikey":"",
"sign":""
}
- 格式化
cmds{ "cmds": "[{\"cmd\":\"transfer/assets\",\"body\":{\"select\":1}}]", //js用 JSON.stringify()进行格式化 "apikey":"", "sign":"" } - 填写您申请的
apikey{ "cmds": "[{\"cmd\":\"transfer/assets\",\"body\":{\"select\":1}}]", "apikey":"5213595xxxxedca0809axxxxxaba7580xxxxxa6", "sign":"" } - 使用您申请的apisecret签名
cmds{ "cmds": "[{\"cmd\":\"transfer/assets\",\"body\":{\"select\":1}}]", "apikey":"5213595xxxxedca0809axxxxxaba7580xxxxxa6", "sign":"6a21e39e3f68b6fc2227c4074c7e6a6c" }
计算签名,将以下两个参数传入加密哈希函数:
要进行签名计算的字符串
"[{\"cmd\":\"transfer/assets\",\"body\":{\"select\":1}}]"
进行签名的密钥(apisecret)
bxxxxxxxxf1236222xxxxxxxxx6d5d76d5xxxxxxxxx
得到签名计算结果
6a21e39e3f68b6fc2227c4074c7e6a6c