Rest API参数错误
我正在尝试编写一个加密货币交换的Python包装器。Rest API参数错误
#!/usr/bin/python2.7 import hashlib
import hmac
import time
base_url = 'https://api.coinnest.co.kr'
class Coinnest():
def __init__(self, key, secret):
self.key = key
self.secret = secret
def get_balance(self):
url = base_url + '/api/account/balance'
nonce = str(int(time.time())*1000)
key = hashlib.md5(self.secret).hexdigest()
message = 'key={}&nonce={}'.format(self.key, nonce)
signature = hmac.new(key, message, hashlib.sha256).hexdigest()
payload = {'key': key, 'nonce': nonce, 'signature': signature}
r = requests.post(url, data=payload)
return r.json()
coinnest = Coinnest('','')
print coinnest.get_order_history()
响应:u'status': 102, u'msg': u'', u'data': u''
根据API响应描述:代码102意味着
参数错误。所需参数丢失或格式错误。
我相信我有所有必需的参数1.关键2.随机3.签名。我是否在错误的位置或以错误的格式传送有效载荷?不幸的是,他们的文档不是很清楚,我是初学者。
谢谢。
回答:
文档很糟糕,但看起来您应该用md5(secret)
签署您的消息,并将key
设置为您的公钥,该公钥与md5(secret)
不同。
from collections import OrderedDict key = self.key
secret_md5 = hashlib.md5(self.secret).hexdigest()
signature = hmac.new(secret_md5, message, hashlib.sha256).hexdigest()
payload = OrderedDict([('key', key), ('nonce', nonce), ('signature', signature)])
我还建议使用有序的词典来强制执行参数顺序。
以上是 Rest API参数错误 的全部内容, 来源链接: utcz.com/qa/261265.html