微信支付统一下单接口签名错误

微信的统一下单接口总是报签名错误!
我用微信官方的签名验证获得的签名结果是一样的,请问有什么好方法能验证签名错误是由什么导致的么?

下面是我调用接口传的xml:

<xml>
    <mch_id>1423xxxxxxx7402</mch_id>
    <nonce_str><![CDATA[5b6fc9879716a]]></nonce_str>
    <body><![CDATA[deal]]></body>
    <out_trade_no><![CDATA[SN2018081213435352966711]]></out_trade_no>
    <total_fee>20000</total_fee>
    <notify_url><![CDATA[http://xxx.com/api/payment/notify]]></notify_url>
    <trade_type><![CDATA[JSAPI]]></trade_type>
    <openid><![CDATA[oV8-KxxxxxxYuARnthpFiQec]]></openid>
    <spbill_create_ip><![CDATA[36.xx.xxx.252]]></spbill_create_ip>
    <appid><![CDATA[wxxxxxxxe73053]]></appid>
    <sign><![CDATA[0400701EF7F990D9652BBxxE5E8D8ACB]]></sign>
</xml>

{
    "mch_id": 1423xxxxxxx7402,
    "nonce_str": "5b6fc9879716a",
    "body": "deal",
    "out_trade_no": "SN2018081213435352966711",
    "total_fee": 20000,
    "notify_url": "http://xxx.com/api/payment/notify",
    "trade_type": "JSAPI",
    "openid": "oV8-KxxxxxxYuARnthpFiQec",
    "spbill_create_ip": "36.xx.xxx.252",
    "appid": "wxxxxxxxe73053",
    "sign": "0400701EF7F990D9652BBxxE5E8D8ACB"
}
阅读 2.9k
1 个回答

验证过签名一致那么你的算法就没错。接下来验证一下输入信息。
可能出错的地方:

  1. 一个公众号可能对应多个商户号,检查是否一致。
  2. 前后端使用的参数名大小写是否一致,顺序可以不同。
  3. 微信那边有莫名的缓存,多刷新试试。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题