【问题标题】:{Signature for this request is not valid} error for Binance withdraw{Signature for this request is not valid}币安提款错误
【发布时间】:2020-04-20 01:48:50
【问题描述】:

虽然 github 和这里有类似的错误,但它们比较老,但我在通过脚本中的 API 从 binance 提取硬币时遇到了签名问题。错误结果返回消息:

 {Signature for this request is not valid}

我的脚本使用 node-binance-api。 撤销此文件中定义的签名函数: https://github.com/jaggedsoft/node-binance-api/blob/master/node-binance-api.js

const signedRequest = ( url, data = {}, callback, method = 'GET', noDataInSignature = false ) => {
        if ( !Binance.options.APIKEY ) throw Error( 'apiRequest: Invalid API Key' );
        if ( !Binance.options.APISECRET ) throw Error( 'signedRequest: Invalid API Secret' );
        data.timestamp = new Date().getTime() + Binance.info.timeOffset;
        if ( typeof data.recvWindow === 'undefined' ) data.recvWindow = Binance.options.recvWindow;
        let query = method === 'POST' && noDataInSignature ? '' : makeQueryString( data );
        let signature = crypto.createHmac( 'sha256', Binance.options.APISECRET ).update( query ).digest( 'hex' ); // set the HMAC hash header
        if ( method === 'POST' ) {
            let opt = reqObjPOST(
                url + '?signature=' + signature,
                data,
                method,
                Binance.options.APIKEY
            );
            proxyRequest( opt, callback );
        } else {
            let opt = reqObj(
                url + '?' + query + '&signature=' + signature,
                data,
                method,
                Binance.options.APIKEY
            );
            proxyRequest( opt, callback );
        }
    };

这里有一个似乎对某些人有用的解决方案:https://github.com/jaggedsoft/node-binance-api/issues/413 提供更改签名方法来更改如下:

if ( method === 'POST' ) {
    let opt = reqObjPOST(
        url,
        data,
        method,
        Binance.options.APIKEY
    );
    opt.form.signature = signature;
    proxyRequest( opt, callback );
}

不幸的是,对我没有用,甚至导致交易失败。 我在示例中使用了withdraw函数:

binance.withdraw("BTC", "1C5gqLRs96Xq4V2ZZAR1347yUCpHie7sa", 0.2)

我测试了所有其他的东西,比如账户限制、API 设置、硬币余额,但没有更改任何代码,但 4 天前币安更改了 API 的代码,然后提款开始出现错误。 币安的开发者提议将 url 更改为 sapi https://binance-docs.github.io/apidocs/spot/en/#withdraw-sapi,但也导致同样的失败:

 signedRequest(sapi + 'v1/capital/withdraw/apply', params, callback, 'POST');

我对具有相同签名的交易、订单簿和余额视图没有任何问题,只有提款会导致签名错误。

【问题讨论】:

    标签: javascript node.js api cryptocurrency binance


    【解决方案1】:

    我注意到我的 node-binance-api 没有在上一个版本上运行,所以我更新并进行了修订,正如这里注意到的 https://github.com/jaggedsoft/node-binance-api/issues/413 然后提款工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 2018-05-24
      • 2022-06-21
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多