在币安交易所的API中,遇到"此请求的签名无效"错误消息通常表示签名参数未正确生成或未正确传递。下面是一个Python代码示例,演示如何正确生成和传递签名参数:
import hashlib
import hmac
import requests
import time
# 替换为您自己的API密钥和密钥
api_key = '您的API密钥'
api_secret = '您的API密钥密钥'
# 构建请求参数
params = {
'symbol': 'BTCUSDT',
'side': 'BUY',
'type': 'LIMIT',
'price': '10000',
'quantity': '0.001',
'timestamp': int(time.time() * 1000)
}
# 生成签名
query_string = '&'.join(['{}={}'.format(k, params[k]) for k in sorted(params)])
signature = hmac.new(api_secret.encode('utf-8'), query_string.encode('utf-8'), hashlib.sha256).hexdigest()
# 添加签名到请求参数中
params['signature'] = signature
# 发送请求
url = 'https://api.binance.com/api/v3/order'
response = requests.post(url, params=params, headers={'X-MBX-APIKEY': api_key})
# 处理响应
print(response.json())
确保替换api_key
和api_secret
为您自己的API密钥和密钥。此代码示例假设您希望下一个限价买单。您可以根据自己的需求调整参数。
请注意,签名是通过将参数按字母顺序排序,并使用&
连接它们来生成的。确保在构建签名之前对参数进行正确的排序。
这个示例代码使用了requests
库来发送HTTP请求。您可以使用pip
命令安装它:pip install requests
。