对BINANCE API请求进行签名时出现问题(JavaScript)

uinbv5nw  于 2022-12-02  发布在  Java
关注(0)|答案(1)|浏览(141)

当我尝试签署(binance)API请求时,我总是得到相同的错误。
数据:{代码:-1022,消息:'此请求的签名无效。' }
下面是我的代码:

import crypto from 'crypto';
import axios from 'axios';

const requirements = {
    queryString: 'EXAMPLE_STRING',
    apiKey: 'EXAMPLE_API_KEY',
    secretKey: 'EXAMPLE_SECRET_KEY',
    baseUrl: 'https://api.binance.com',
    endPoint: '/sapi/v1/asset/tradeFee',
};

const signature = crypto
    .createHmac('sha256', requirements.secretKey)
    .update(requirements.queryString)
    .digest('base64url');

const getBalance = async () => {
    const requestConfig = {
        method: 'GET',
        url:
            requirements.baseUrl +
            requirements.endPoint +
            `?timestamp=${Date.now()}` +
            '&signature=' +
            signature,
        headers: {
            'X-MBX-APIKEY': requirements.apiKey,
        },
    };

    try {
        const response = await axios(requestConfig);
        console.log(response);
    } catch (error) {
        console.log(error);
    }
};

getBalance();

我的代码有什么问题?

vawmfj5a

vawmfj5a1#

试试这个:

const signature = crypto
    .createHmac('sha256', requirements.secretKey)
    .update(requirements.queryString)
    .digest('hex');

改成“十六进制”应该就行了。

相关问题