如何解决Bitmex REST API 删除请求签名无效
尝试通过 bitmex 上的 REST API 发送取消订单请求。 响应是签名无效。我使用签名生成器来处理 get 和 post 请求并且工作正常。
仍在试图弄清楚我在这里做错了什么。
def cancel_order(cl_order_id):
url = '/api/v1/order'
verb = 'DELETE'
data = {'clOrdID':cl_order_id} # Cancel order.
expires = int(round(time.time()) + 86400)
signature = generate_signature(secret,verb,url,expires,json.dumps(data).replace(' ',''))
headers = {'api-expires': str(expires),'api-key': api_key,'api-signature': signature}
response = requests.delete(base_url + url,headers=headers,params=data)
print('Cancelling the order {} ... '.format(cl_order_id))
print(response.json())
def generate_signature(secret,data):
"""Generate a request signature compatible with BitMEX."""
parsedURL = urllib.parse.urlparse(url)
path = parsedURL.path
if parsedURL.query:
path = path + '?' + parsedURL.query
if isinstance(data,(bytes,bytearray)):
data = data.decode('utf8')
message = bytes(verb + path + str(expires) + data,'utf-8')
print(message)
signature = hmac.new(bytes(secret,'utf-8'),message,digestmod=hashlib.sha256).hexdigest()
return signature
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。