MEXC API 提现中的签名问题

问题描述 投票:0回答:1

所以我一直在尝试为 MEXC 编写一个提款函数,但无法通过响应: {'code': 700004, 'msg': "强制参数'签名'未发送、为空/空或格式错误。"}

我尝试了很多修改,但似乎没有一个对我有用。

这是我的代码:

import requests
import hmac
from urllib.parse import urlencode, quote
from collections import OrderedDict
import hashlib
from datetime import datetime
import time

access_key = "(MY_ACCESS_KEY)"
secret_key = "(MY_SECRET_KEY)"

def generate_signature(api_key, api_secret, req_time, sign_params=None):
    if sign_params:
        sign_params = urlencode(sign_params, quote_via=quote)
        to_sign = f"{api_key}{req_time}{sign_params}"
    else:
        to_sign = f"{api_key}{req_time}"

    sign = hmac.new(api_secret.encode('utf-8'), to_sign.encode('utf-8'), hashlib.sha256).hexdigest()
    return sign


url = "https://api.mexc.com/api/v3/capital/withdraw/apply"
req_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
symbol = "(MY_SYMBOL)"
balance = (MY_AMOUNT)
quantity = 0.5
signature = generate_signature(access_key, secret_key, req_time)
sign_params = {
    #'api-key': access_key,
    "symbol": symbol,
    "network": "(MY_NETWORK)",
    "address": "(MY_ADDRESS)",
    "memo": "(MY_MEMO)",
    "amount": str(balance)
}

headers = {
    "apiKey": access_key,
    "symbol": symbol,
    "network": (MY_NETWORK),
    "address": "(MY_ADDRESS)",
    "memo": "(MY_MEMO)",
    "amount": str(balance),
    "signature": signature
}

response = requests.get(url, headers=headers).json()
print(response)

(代码中有一些垃圾来自一些不起作用的方法) 我真的很感激任何帮助!

python cryptocurrency cryptoapi
1个回答
0
投票

看来您写的时间戳不正确。需要是一个正确的时间戳,从纪元开始,以毫秒为单位。

尝试:

now=time.time()
req_time=int(now*1000)

PS。我正在使用“int”来转换为“Long”类型,正如预期的那样

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.