FTX US API POST /wallet/withdrawals请求报错:无效签名
FTX API提现接口签名错误解决办法
核心问题:签名生成遗漏请求体哈希
FTX的POST请求签名规则要求,签名payload必须包含{timestamp}{method}{path}{request_body_sha256},你的代码里只拼接了{ts}{prepared1.method}{prepared1.path_url},漏掉了请求体的SHA256哈希值,这是导致"Invalid signature"错误的主要原因。
具体修复步骤
修正签名生成逻辑
先对请求体的JSON字符串做SHA256哈希,再将哈希值加入签名payload:body_json = json.dumps(body) body_sha256 = hashlib.sha256(body_json.encode()).hexdigest() signature_payload1 = f'{ts}{prepared1.method}{prepared1.path_url}{body_sha256}'.encode()统一请求发送方式
你当前先构造了prepared请求,最后又用requests.post重新发送,容易导致请求头或body不一致,建议直接使用prepared请求发送:# 替换原来的res10 = requests.post(...) prepared1.body = body_json.encode() with requests.Session() as session: res10 = session.send(prepared1)细节修正
- 去掉Request构造里的多余符号:
Request('POST', 'https://ftx.us/api/wallet/withdrawals') - 提现金额
size不能设为0,改为实际要提现的数值(比如10) - 时间戳处理可以简化,直接使用FTX返回的数值:
resp = requests.get('https://otc.ftx.com/api/time') ts = resp.json()['result'] * 1000 # 直接获取毫秒级时间戳
- 去掉Request构造里的多余符号:
完整修复后的代码片段
import requests from requests.models import Request import hmac import hashlib import json resp = requests.get('https://otc.ftx.com/api/time') ts = resp.json()['result'] * 1000 # 构造请求 request = Request('POST', 'https://ftx.us/api/wallet/withdrawals') prepared1 = request.prepare() body = { "coin": "USDT", "size": 10, # 修改为实际提现金额 "address": "***************" } body_json = json.dumps(body) body_sha256 = hashlib.sha256(body_json.encode()).hexdigest() # 生成正确签名 signature_payload1 = f'{ts}{prepared1.method}{prepared1.path_url}{body_sha256}'.encode() signature1 = hmac.new('你的SECRET KEY'.encode(), signature_payload1, 'sha256').hexdigest() # 设置请求头 prepared1.headers['FTXUS-KEY'] = '你的API KEY' prepared1.headers['FTXUS-SIGN'] = signature1 prepared1.headers['FTXUS-TS'] = str(ts) prepared1.headers['Content-Type'] = 'application/json' prepared1.headers['Accept'] = 'application/json' # 设置请求体并发送 prepared1.body = body_json.encode() with requests.Session() as session: res10 = session.send(prepared1) print(res10.json())
内容的提问来源于stack exchange,提问作者Salman Tahir
相关产品推荐
相关产品推荐

