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

PHP cURL调用Binance Pay API报400002签名无效错误如何解决

Binance Pay API 400002 签名错误排查方案

你遇到的是Binance Pay接口标准的签名校验失败错误:

{"status":"FAIL","code":"400002","errorMessage":"Signature for this request is not valid."}

核心问题排查点

  • 缺失POST请求体提交:你的代码仅设置了CURLOPT_POST = 1,但未通过CURLOPT_POSTFIELDS将序列化后的JSON请求体发送给接口,Binance服务器收到空请求体,和你签名时使用的请求体不一致,直接导致签名校验失败。必须添加如下代码:
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_request);
  • JSON序列化规则不符合要求:PHP默认json_encode会自动转义斜杠、Unicode字符,导致生成的JSON字符串和Binance服务端解析的请求体存在差异,签名计算值不匹配。需要在序列化时添加参数:
$json_request = json_encode($request, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  • 密钥配置错误:确认$binance_pay变量为你的Binance Pay商户API密钥的Certificate SN值,$binance_pay_secret为对应API密钥的Secret Key,复制时不要带入前后多余的空格、换行符。
  • 服务器时间偏差:Binance要求请求时间戳和服务端时间差不能超过5分钟,需要确认你的服务器已同步NTP网络时间,避免时间偏差导致签名失效。
  • Payload拼接规则验证:你当前的Payload拼接规则$timestamp."\n".$nonce."\n".$json_request."\n"符合官方要求,注意确保所有换行符为LF(\n),不要替换为CRLF(\r\n)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:12:00