node.js - 币安签名错误: "code":-1022 ,"msg" :"Signature for this request is not valid."

标签 node.js api binance

我对他们的 REST API 的 binance API 签名有疑问。

尝试访问路由“http://binance.com/api/v3/account”时,出现以下错误:

{"code":-1022,"msg":"Signature for this request is not valid."}

我使用 nodejs 和 express。

我看到有几个关于这个主题的问题,但似乎没有一个能解决我的问题,所以:

我在那里定义键和 url

const binanceConfig = {
    API_URL: 'http://binance.com',
    API_ENDPOINT: '/api/v3/account',
    API_KEY: 'API_KEY_EXAMPLE',
    API_SECRET: 'API_SECRET_EXAMPLE'
}

我创建签名

function generateSignature() {

    const dataQueryString = "recvWindow=60000&timestamp=" + Date.now();
    return crypto
        .createHmac('sha256', binanceConfig['API_SECRET'])
        .update(dataQueryString)
        .digest('hex'); 
}

我在这里定义查询参数

const queryParameters = {
    timestamp: Date.now(),
    signature: generateSignature(),
    recvWindow: '60000',
}

设置标题

var header = {
    'Accept': 'Application/json',
    'X-MBX-APIKEY': binanceConfig['API_KEY']
};

创建调用API的路由

router.get('/userInfo', (req, res) => {
    var stringTest = `timestamp=${queryParameters['timestamp']}`

    requestUrl = binanceConfig['API_URL'] + binanceConfig['API_ENDPOINT'] + "?" + stringTest + "&" + "signature=" + queryParameters['signature'] + "&recvWindow=" + queryParameters['recvWindow'];

    const options = {
        url: requestUrl,
        headers: header,
        method: 'GET'
    }

    request(options, (error, response) => {
        if (error) { console.log('ERROR'); } 
        console.log(`Response: ${response.statusCode}`);
        console.log(response.body);
    });
});

如果有人知道为什么我会收到此错误,我将不胜感激!谢谢!

最佳答案

您需要将时间戳和签名(分别)作为最后一个参数。

Source

关于node.js - 币安签名错误: "code":-1022 ,"msg" :"Signature for this request is not valid.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63779856/

相关文章:

python - 从pyusps解析地址信息

python - 如何使用 Python 使用币安 API 获取加密货币的所有价格历史记录?

python - Pandas json_load 缺少小数点

javascript - 使用重复键过滤映射结果

javascript - 将 grunt 用于自定义项目

node.js - session-file-store 删除过期的 session 文件

python - Binance API - 代码中的多个符号/对

javascript - 如何包装 javascript lambda 处理函数?

java - 易于使用的 Web API 即可开始使用

java - 创建 websocket Java API