我对他们的 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×tamp=" + 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);
});
});
如果有人知道为什么我会收到此错误,我将不胜感激!谢谢!
最佳答案
您需要将时间戳和签名(分别)作为最后一个参数。
关于node.js - 币安签名错误: "code":-1022 ,"msg" :"Signature for this request is not valid.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63779856/