You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Binance API账户查询报错:QueryString格式异常,求排查

解决Binance API v3账户查询的QueryString格式异常问题

我帮你排查了代码里的几个关键问题,正是这些导致了QueryString格式异常:

  • 错误1:URL中误用HTML实体&
    你在拼接URL参数时用了&,这是HTML场景下的转义字符,但直接放到API请求的URL里会被当成参数的一部分,Binance API无法正确解析。应该直接用普通的&来连接多个Query参数。

  • 错误2:签名未转换为正确的十六进制格式
    CryptoJS的HmacSHA256返回的是WordArray对象,而Binance API要求签名是十六进制字符串。你需要调用toString(CryptoJS.enc.Hex)把生成的哈希值转成符合要求的字符串格式,否则签名会完全无效。

  • 额外提醒:时间同步问题
    Binance API要求请求的timestamp与服务器时间差不能超过5000毫秒,如果本地设备时间偏差过大,也会触发请求失败,这个可以后续验证。

修正后的代码如下:

var apiKey = 'myAPIKey';
var secret = 'mySecret';
var queryString = 'timestamp=' + Date.now();
// 将哈希对象转为Binance要求的十六进制字符串签名
var hash = CryptoJS.HmacSHA256(queryString, secret).toString(CryptoJS.enc.Hex);
// 使用普通&连接参数,移除HTML转义实体
var url = 'https://api.binance.com/api/v3/account?' + queryString + '&signature=' + hash;

$('.botonOrden').click(function(){
  $.ajax({
    beforeSend: function(req){
      req.setRequestHeader("X-MBX-APIKEY", apiKey);
    },
    type: 'GET',
    url: url
  })
  .done(function(response) {
    console.log('账户信息:', response);
  })
  .fail(function(error) {
    console.error('请求失败:', error.responseText);
  });
});

你可以试试这段修正后的代码,应该能解决QueryString格式异常的问题。如果还有报错,建议查看请求返回的错误信息,Binance API通常会给出非常具体的问题说明。

内容的提问来源于stack exchange,提问作者Bravo Vlog Hector Bravo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:05:14