当前位置: 首页 > 知识库问答 >
问题:

币安API Hmac签名

符鸿光
2023-03-14

请帮助我不知道我的代码有什么问题。不需要签名的终结点工作正常,所以我想这是我如何获取签名的问题。我收到此错误:

data: { code: -2014, msg: 'API-key format invalid.' } } }

API文档:https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md

签名endpoint需要在查询字符串或请求正文中发送一个附加参数signature。endpoint使用HMAC SHA256签名。HMAC SHA256签名是键控HMAC SHA256操作。使用secretKey作为键,使用totalParams作为HMAC运算的值。签名不区分大小写。totalParams被定义为与请求正文连接的查询字符串。

我的代码:

const axios = require('axios');
const crypto = require('crypto');
const qs = require('qs');

const binanceConfig = {
  API_KEY: 'XXXXXXX',
  API_SECRET: 'XXXXXX',
  HOST_URL: 'https://api.binance.com',
};

const buildSign = (data, config) => {
  return crypto.createHmac('sha256', config.API_SECRET).update(data).digest('hex');
};

const privateRequest = async (data, endPoint, type) => {
  const dataQueryString = qs.stringify(data);
  const signature = buildSign(dataQueryString, binanceConfig);
  const requestConfig = {
    method: type,
    url: binanceConfig.HOST_URL + endPoint + '?' + dataQueryString + '&signature=' + signature,
    headers: {
      'Authorization': `X-MBX-APIKEY: ${binanceConfig.API_KEY}`,
    },
  };

  try {
    console.log('URL: ', requestConfig.url);
    const response = await axios(requestConfig);
    console.log(response);
    return response;
  }
  catch (err) {
    console.log(err);
    return err;
  }
};

const data = {
  symbol: 'ARKBTC',
  recvWindow: 20000,
  timestamp: Date.now(),
};

privateRequest(data, '/api/v3/openOrders', 'GET');

共有1个答案

方飞鸣
2023-03-14

尝试将< code>headers对象直接设置为< code>X-MBX-APIKEY键:

headers: {
  'X-MBX-APIKEY': binanceConfig.API_KEY,
},
 类似资料:
  • 我使用< code>gorilla/websocket拨打了币安websocketendpoint,成功无误。在连接上设置了pong处理程序后,我编写了一个ping控制消息,并等待pong到达pong处理程序,这似乎永远不会发生。我使用一个通道、一个超时上下文和一个< code>select块来检查pong是否到达。 代码: 输出: 根据rfc6455,第-5.5.2节: 5.5.2。平 ping

  • 确保比特币安全是一项挑战,因为比特币不像银行账户中的余额那样是对价值的抽象引用。比特币非常像数字现金或黄金。你可能听过这样一句话:“现实占有,十诉九胜”。好吧,对于比特币,所有权就是百分之百的规则。拥有解锁比特币的密钥就相当于拥有现金或金银珠宝。你也可能会丢失,放错地方,被盗,或者不小心给错了钱。发生以上每一种情况,用户都会失去追索权,就像在大街上丢了现金一样。 但是,比特币具有现金、黄金和银行账

  • 我试过... 但那就不允许便士条目了。 我想要增量按钮控制在英镑上升,但仍然想要输入便士的能力。 谢谢,1DMF

  • 一面 1.Uniswapv2和v3经济模型和区别,compound经济模型 2.Uniswap质押时的传参,以及质押时万一没有资金池会发生什么 3.compound借贷传参 4.常见漏洞和漏洞分析库 5.用远程服务器中的truffle部署合约时,要经历的过程及其原理 6.truffle如何编译测试部署合约 7.truffle中测试合约时万一函数需要的时间太长怎么办 8.平时在哪条链部署合约 9.s

  • 我正在尝试使用函数。 而它应该打印$符号或美元? 我使用linux主机。 谢谢