BinanceUS API-正确生成签名,但仍然出现错误“此请求的签名无效”

时间:2020-08-16 03:42:59

标签: javascript node.js sha256 binance

我认为构建一个自定义基于节点的接口以通过其API与binance.us进行交互是一个有趣的项目,并且在尝试提取帐户信息时遇到以下错误,这需要HMAC SHA256签名的请求:

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

https://github.com/binance-us/binance-official-api-docs/blob/master/rest-api.md#signed-trade-and-user_data-endpoint-security

我相信我可以正确生成签名,因为API文档包含示例(请参见上面的链接)。当我将示例查询字符串和示例密钥插入我的代码时,我得到了正确的签名(我的代码使用Node.js加密模块)。我的代码:

const buildSig = (queryString, secret) => {
  return crypto.
    .createHmac('sha256', secret)
    .update(queryString)
    .digest('hex');
}

以给定的样本值调用时:

queryString = 'symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559'
secretKey = 'NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j'

我的代码生成了正确的签名:c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71。

尽管如此,每个请求响应都表明我的签名无效。

最后一件事-至于请求本身,我正在使用node-fetch。我的代码为帐户详细信息请求生成的示例请求如下:

fetch('https://api.binance.us/api/v3/account?timestamp=1597548872749&signature=<MY SIG>', 
    { 
      method: 'GET',
      headers: {'X-MBX-APIKEY': '<MY PUB API KEY>'}    
    });

有人知道我的代码在哪里吗?

谢谢!

0 个答案:

没有答案