API, который я использую, требует шифрования MD5 для работы с запросами POST. Я пытаюсь сделать запрос userBalance к API, используя документацию https://www.allcoin.ca/api_market/market Но каждый раз он возвращает мне {'code': 1, 'msg': '签名 校验 失败'} (что означает проверка подписи не удалась). API запрашивает только 2 параметра: api_key и sign. Я тщательно следую указаниям документации, но API все еще отклоняет POST. Любые предложения, почему он не проходит проверку подписи? Я что-то упустил?
import hashlib
import keys
import requests
KEY = keys.allcoin["key"]
API_SECRET = keys.allcoin["secret"]
msg = "api_key='{}&secret_key={}".format(KEY, API_SECRET)
signature = hashlib.md5(msg.encode("utf-8")).hexdigest()
parameters = {
"api_key": KEY,
"sign": signature.upper(),
}
params = "&".join("{}={}".format(a, b) for a, b in parameters.items())
url = "http://www.allcoin.ca/Api_User/userBalance"
r = requests.post(
headers={
"Content-Type": "application/x-www-form-urlencoded",
'user-agent': 'my-app/0.0.1'
},
url=url,
params=parameters
)
print(r.json())