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

PowerShell调用Binance测试下单API失败,请求协助排查

排查Binance测试订单API的PowerShell调用问题

我帮你梳理下代码里的几个关键问题,这些都是导致调用失败的核心原因:

1. 参数字符串的转义错误

你在构建$apimessage时用了&(HTML实体转义),但Binance的签名计算需要基于原始的参数分隔符&,转义后的字符串会直接导致签名不匹配,服务器验证不通过。

2. API密钥的解码错误

Binance的API密钥是纯ASCII字符串,不是Base64编码的。你用[Convert]::FromBase64String($apisecret)去解析密钥,会导致HMAC计算用错密钥,这也是签名失败的重要原因。应该直接把密钥字符串转成ASCII字节数组。

3. 签名的输出格式错误

Binance要求签名是HMACSHA256计算后的十六进制字符串,而不是Base64编码。你当前用[Convert]::ToBase64String($signature)生成的签名格式完全不符合平台要求。

修正后的完整代码

下面是修复后的PowerShell脚本,我标注了关键修改点:

$apiKey = "你的API密钥"
$unixEpochStart = Get-Date -Date "01/01/1970"
$now = Get-Date
# 计算精确的毫秒级时间戳(确保是整数)
$timestamp = [Math]::Floor((New-TimeSpan -Start $unixEpochStart -End $now.ToUniversalTime()).TotalMilliseconds)
# 用原始&分隔参数,不要转义
$apimessage = "symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=$timestamp"
$apisecret = "你的API密钥"

# 直接将API密钥转成ASCII字节数组,不要用Base64解码
$hmacsha = New-Object System.Security.Cryptography.HMACSHA256
$hmacsha.Key = [Text.Encoding]::ASCII.GetBytes($apisecret)
$signatureBytes = $hmacsha.ComputeHash([Text.Encoding]::ASCII.GetBytes($apimessage))

# 将签名字节数组转成十六进制字符串(Binance要求的格式)
$signature = [BitConverter]::ToString($signatureBytes) -replace '-', ''

# 构建正确的请求URI
$uri = "https://api.binance.com/api/v3/order/test?$apimessage&signature=$signature"
$header = @{ "X-MBX-APIKEY" = $apiKey }

# 发起请求,捕获错误以便排查
try {
    $response = Invoke-RestMethod -Method Post -Uri $uri -Headers $header -Verbose
    Write-Host "请求成功:" $response
} catch {
    Write-Host "请求失败:" $_.Exception.Message
    # 输出详细的错误响应,方便进一步排查
    Write-Host "错误详情:" $_.ErrorDetails.Message
}

额外注意事项

  • 确保你的API密钥已经开启了交易权限(虽然是测试订单,但也需要API密钥有对应的权限)。
  • 时间戳要和Binance服务器时间同步,如果本地时间偏差过大,会触发recvWindow超时错误,建议开启本地时间同步。
  • recvWindow的取值不要超过60000(60秒),Binance平台有这个限制。

内容的提问来源于stack exchange,提问作者Mihail Stacanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:50:07