我想使用bitgrail的API(文档:https://bitgrail.com/api-documentation)。并要求余额。要做到这一点,你必须设置一个SIGNATURE,其中包括使用HMAC-SHA512和你的API-Secret加密的帖子参数。
所以你必须发送这些数据:
部首:
KEY - 公共API密钥
SIGNATURE - 使用您的秘密API密钥使用HMAC-SHA512 alghoritm加密的POST参数
数据:
nonce - 整数,总是大于之前调用的nonce。
但每当我尝试发送请求时,我都会收到“身份验证失败” - 来自Bitgrail的错误。
params设置如下:
params = {}
params.nonce = n();
然后像这样加密:
let hmac = crypto.createHmac('sha512', 'MYSECRET');
let digest = hmac.update(params.toString()).digest('hex');
let signature = new Buffer(digest).toString('base64');
也许'params.toString()'不起作用。我是否必须将params变量设置为数组?
答案 0 :(得分:0)
我通过使用const { URLSearchParams } = require('url');
自己想出来
并删除此行:let signature = new Buffer(digest).toString('base64');
并仅使用摘要作为签名。