Пытаюсь аутентифицироваться на сайте crypto.com, но не получается заставить его работать ... Пробовал несколько дней и очень расстраивался, есть ли помощь? Их api docs @ https://exchange-docs.crypto.com/?python#digital -signature
Вот как это сделать + пример кода, я застрял ..
Аутентификация основана на соединении ключа API вместе с HMA C -SHA256 ha sh параметров запроса с использованием секрета API в качестве криптографического c ключа.
Алгоритм генерации подписи HMA C -SHA256 следующий:
Если в запросе есть «params», отсортируйте ключи параметров запроса в порядке возрастания.
Объедините все упорядоченные ключи параметров как ключ + значение (без пробелов, без разделителей). Назовем это строкой параметров
Затем сделайте следующее: method + id + api_key + parameter string + nonce
Используйте HMA C -SHA256 для ha sh, используя указанное выше Секрет API в качестве криптографа c ключ
Кодируйте вывод как шестнадцатеричную строку - это ваша цифровая подпись
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()