You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MEXC API WebSocket用户数据流接入:签名验证失败问题求助

MEXC API WebSocket用户数据流接入:签名验证失败问题求助

我现在在尝试接入MEXC API的WebSocket用户数据流,虽然已经研究过官方文档,但还是没法成功建立连接。我知道第一步得先创建监听密钥(listen key),但一直生成不了有效的签名,怎么试都卡在这了。

这是我用来创建监听密钥的代码:

def create_listen_key(api_key, api_secret):
    url = "https://api.mexc.com/api/v3/userDataStream"

    
    timestamp = str(int(time.time() * 1000))

    params = {"please_sign_it": None}
        

    signature = generate_signature(api_key=api_key, api_secret=api_secret, ign_params=params, 
    req_time=timestamp)

    paramsWithSignature = {
        "please_sign_it": None,
        "timestamp": timestamp,
        "signature": signature
    }

    headers = {
        "X-MEXC-APIKEY": api_key,
        "Content-Type": "application/json",
    }
    response = requests.post(url, headers=headers, data=paramsWithSignature)

    if response.status_code == 200:
        return json.loads(response.content)
    else:
        raise Exception(f"Failed to create listen key: {response.text}")

这是我用来生成签名的函数:

def generate_signature(api_key, api_secret, req_time, sign_params=None):
    ic("def generate_signature")

    if sign_params:
        sign_params = urlencode(sign_params, quote_via=quote)
        ic(sign_params)

        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

不管我怎么调整,每次都会收到这个错误:

Exception: Failed to create listen key: {"code":700002,"msg":"Signature for this request is not valid."}

如果有人能指点一下正确的实现方式,我会非常感激!

备注:内容来源于stack exchange,提问作者Gregor Sotošek

火山引擎 最新活动