我从www.example.com上获取了示例代码https://docs.woo.org/?shell#authentication,并对代码进行了调整,以获得用于签名生成的V3规范化请求。对于不需要任何参数的端点,这很好,但如果需要参数,我会得到这个错误:
“成功”:False,“code”:-1001,‘消息’:“API签名无效。”}
我已经检查了我的API密钥和密码以及我帐户上的设置,一切都应该很好。
import datetime
import hmac, hashlib, base64
import requests
import json
staging_api_secret_key = 'MY API SECRET'
staging_api_key = 'MY API KEY'
def _generate_signature(data):
key = staging_api_secret_key#'key' # Defined as a simple string.
key_bytes= bytes(key , 'utf-8') # Commonly 'latin-1' or 'utf-8'
data_bytes = bytes(data, 'utf-8') # Assumes `data` is also a string.
return hmac.new(key_bytes, data_bytes , hashlib.sha256).hexdigest()
milliseconds_since_epoch = round(datetime.datetime.now().timestamp() * 1000)
headers = {
'x-api-timestamp': str(milliseconds_since_epoch),
'x-api-key': staging_api_key,
'x-api-signature': _generate_signature(str(milliseconds_since_epoch)+'POST/v3/algo/order{ "symbol": "SPOT_BTC_USDT", "side": "BUY", "reduceOnly": false, "type": "MARKET", "quantity": "0.0001", "algoType": "TRAILING_STOP", "callbackRate": "0.012"}'),
'Content-Type': 'application/json',
'Cache-Control':'no-cache'
}
data = {"symbol": "SPOT_BTC_USDT", "side": "BUY", "reduceOnly": False, "type": "MARKET", "quantity": "0.0001", "algoType": "TRAILING_STOP", "callbackRate": "0.012"}
response = requests.post('https://api.woo.org/v3/algo/order', headers=headers, data=data)
print(response.json())
2条答案
按热度按时间wvyml7n51#
客户支持附带了以下代码,似乎可以工作:
pprl5pva2#
由于我没有实际的API凭据,我很难确切地判断这是否有效,但您应该尝试以下操作:
不同的是,我使用字典中的确切数据创建了签名,使用
json.dumps(data)
。让我知道这对你是否有效,如果不,你看到了什么错误消息。