尝试向 crypto.com 进行身份验证,但似乎无法使其正常工作......现在已经尝试了几天,非常沮丧,有什么帮助吗?他们的 api 文档 @ https://exchange-docs.crypto.com/?python#digital-signature
这是怎么做+示例代码,我卡住了..
身份验证基于 API 密钥的配对,以及使用 API 密钥作为加密密钥的请求参数的 HMAC-SHA256 哈希。
生成 HMAC-SHA256 签名的算法如下:
如果请求中存在“params”,则按升序对请求参数键进行排序。
将所有有序参数键组合为键 + 值(无空格,无分隔符)。我们称之为参数字符串
接下来,执行以下操作:方法 + id + api_key + 参数字符串 + nonce
使用 HMAC-SHA256 对上述内容进行哈希处理,使用 API Secret 作为加密密钥
将输出编码为十六进制字符串——这是您的数字签名
import hmac
import hashlib
import json
import requests
import time
API_KEY = "API_KEY"
SECRET_KEY = "SECRET_KEY"
req = {
"id": 11,
"method": "private/get-order-detail",
"api_key": API_KEY,
"params": {
"order_id": "337843775021233500",
},
"nonce": int(time.time() * 1000)
};
# First ensure the params are alphabetically sorted by key
paramString = ""
if "params" in req:
for key in req['params']:
paramString += key
paramString += str(req['params'][key])
sigPayload = req['method'] + str(req['id']) + req['api_key'] + paramString + str(req['nonce'])
request['sig'] = hmac.new(
bytes(str(SECRET_KEY), 'utf-8'),
msg=bytes(sigPayload, 'utf-8'),
digestmod=hashlib.sha256
).hexdigest()