首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Binance API Hmac签名

Binance API Hmac签名
EN

Stack Overflow用户
提问于 2018-05-12 08:46:10
回答 1查看 13.8K关注 0票数 9

请帮帮我,我不知道我的密码出了什么问题。不需要签名的端点工作得很好,所以我想是我如何获得签名的一个问题。我得到了这个错误:

代码语言:javascript
复制
data: { code: -2014, msg: 'API-key format invalid.' } } }

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

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

我的代码:

代码语言:javascript
复制
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');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-12 08:59:13

尝试将headers对象设置为具有X-MBX-APIKEY键的直接:

代码语言:javascript
复制
headers: {
  'X-MBX-APIKEY': binanceConfig.API_KEY,
},
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50304411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档