python MEXC API撤回中的签名问题

wgmfuz8q  于 2024-01-05  发布在  Python
关注(0)|答案(1)|浏览(165)

因此,我一直在尝试为MEXC编写一个撤回函数,但无法传递响应:'code':700004,'msg':“Mandatory parameter 'signature' was not sent,was empty/null,or malformed."}
我尝试了很多修改,但似乎没有一个对我有用。
下面是我的代码:

  1. import requests
  2. import hmac
  3. from urllib.parse import urlencode, quote
  4. from collections import OrderedDict
  5. import hashlib
  6. from datetime import datetime
  7. import time
  8. access_key = "(MY_ACCESS_KEY)"
  9. secret_key = "(MY_SECRET_KEY)"
  10. def generate_signature(api_key, api_secret, req_time, sign_params=None):
  11. if sign_params:
  12. sign_params = urlencode(sign_params, quote_via=quote)
  13. to_sign = f"{api_key}{req_time}{sign_params}"
  14. else:
  15. to_sign = f"{api_key}{req_time}"
  16. sign = hmac.new(api_secret.encode('utf-8'), to_sign.encode('utf-8'), hashlib.sha256).hexdigest()
  17. return sign
  18. url = "https://api.mexc.com/api/v3/capital/withdraw/apply"
  19. req_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
  20. symbol = "(MY_SYMBOL)"
  21. balance = (MY_AMOUNT)
  22. quantity = 0.5
  23. signature = generate_signature(access_key, secret_key, req_time)
  24. sign_params = {
  25. #'api-key': access_key,
  26. "symbol": symbol,
  27. "network": "(MY_NETWORK)",
  28. "address": "(MY_ADDRESS)",
  29. "memo": "(MY_MEMO)",
  30. "amount": str(balance)
  31. }
  32. headers = {
  33. "apiKey": access_key,
  34. "symbol": symbol,
  35. "network": (MY_NETWORK),
  36. "address": "(MY_ADDRESS)",
  37. "memo": "(MY_MEMO)",
  38. "amount": str(balance),
  39. "signature": signature
  40. }
  41. response = requests.get(url, headers=headers).json()
  42. print(response)

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

50pmv0ei

50pmv0ei1#

看起来你写的时间戳不正确。需要一个正确的时间戳,从epoch开始,以毫秒为单位。
尝试:

  1. import time
  2. now=time.time()
  3. req_time=int(now*1000)

字符串
PS.我使用'int'来转换类型'Long',这是预期的

相关问题