收藏
回答

【微信Native支付】,统一下单签名错误

日志:

ASCII排序,HMACSHA256格式 参数:【appid=wxa......&body=充值下单&mch_id=152.....&nonce_str=gKIrE7boGn8fqYb1Z4eyqYA7qqVf2aa6&notify_url=https://payments-mini.51zhaoyou.com/test/weix/notify&out_trade_no=201902251456229116641&product_id=1153&spbill_create_ip=223.104.212.149&total_fee=1&trade_type=NATIVE&key=SjOpU.....



 微信请求接口 method :【/pay/unifiedorder】,请求参数 xml : 【<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<xml>

<nonce_str>gKIrE7boGn8fqYb1Z4eyqYA7qqVf2aa6</nonce_str>

<out_trade_no>201902251456229116641</out_trade_no>

<total_fee>1</total_fee>

<product_id>1153</product_id>

<appid>wxa9f7.......</appid>

<sign>A667CEFBC9C63280A96FA3A94CF9F30D5E6721F8DA7A1D8DA74C4018473DE23D</sign>

<trade_type>NATIVE</trade_type>

<body>充值下单</body>

<notify_url>https://payments-mini.51zhaoyou.com/test/weix/notify</notify_url>

<mch_id>1526......</mch_id>

<spbill_create_ip>223.104.212.149</spbill_create_ip>

<sign_type>HMAC-SHA256</sign_type>

</xml>

2019-02-25 15:54:37.814  INFO 118092 --- [           main] com.zhaoyou.pay.utils.wxPay.WXPayReport  : report v1,WXPaySDK/3.0.9,wp3g2Tb6hRRddLYYG5cBrJKoOUfmknTY,1551081277,528,api.mch.weixin.qq.com,true,6000,8000,0,0,0,701CF98653E5985BDDEC472A3E8F0D6AE3A1FE7D1AE0079ADDD7390C1B765AA2

2019-02-25 15:54:37.814  INFO 118092 --- [           main] com.zhaoyou.pay.utils.wxPay.WXPay        : 微信请求接口 method :【/pay/unifiedorder】,返回信息 resp : 【<xml><return_code><![CDATA[FAIL]]></return_code>

<return_msg><![CDATA[签名错误]]></return_msg>

</xml>】


-- 微信支付接口签名校验工具,检查正常 ,密钥key生效了几次了,还是不行。






最后一次编辑于  2019-02-25
回答关注问题邀请回答
收藏

1 个回答

  • 微信支付技术助手7
    微信支付技术助手7
    2019-02-25

    您好,请按照以下几点仔细检查:

    1) 使用微信的在线签名工具检查签名是否和程序生成的一致

    https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1 签名工具用谷歌打开。

    选择MD5,XML,然后把请求参数xml放进去,就能校验签名。

    2)如果和微信的在线签名工具一致,说明程序没有错误,确定是API密钥错误(被别人改动或者记错了)

    在商户平台的账户信息中更改API密钥(账户设置-安全设置-API安全), 15分钟后生效

    2.1)统一下单用的是A商户号,也必须是A商户号登陆商户平台设置key才对。

    2.2)要注意统一下单请求参数中total_fee参数的类型是int类型。

    3) 如果和微信的在线签名工具不一致,说明程序有错误,常见的错误可能是:

    3.1) 编码问题,确保所有的都是utf-8的. 如果有中文, 可以先把中文改成英文重新签名,看是否签名错误,如果英文不会错中文才会错,基本肯定是编码问题

    3.2:)消息中字段大小写和文档中完全一致


    2019-02-25
    有用
    回复 5
    • 两季
      两季
      2020-01-15
      都核对过一遍了,还是签名错误怎么办
      2020-01-15
      回复
    • ﺭ并亲了你一下ﺭA灬小小鱼
      ﺭ并亲了你一下ﺭA灬小小鱼
      2020-05-30回复两季
      最后怎么解决的
      2020-05-30
      回复
    • 咖啡
      咖啡
      2020-08-30回复ﺭ并亲了你一下ﺭA灬小小鱼
      我解决了,同样的错误问题,多重置几遍api密钥。问题点:无论怎么重置api密钥,显示的重置密钥时间,不是当前重置的时间,应该意味着没有重置成功,导致一直提示签名错误。具体我一天重置了八九次,最后才成功,然后就可以了。遇到此问题的宝宝们,可以检查下自己的api密钥的重置时间。
      2020-08-30
      回复
    • 咖啡
      咖啡
      2020-08-30回复两季
      我解决了,同样的错误问题,多重置几遍api密钥。问题点:无论怎么重置api密钥,显示的重置密钥时间,不是当前重置的时间,应该意味着没有重置成功,导致一直提示签名错误。具体我一天重置了八九次,最后才成功,然后就可以了。遇到此问题的宝宝们,可以检查下自己的api密钥的重置时间。
      2020-08-30
      回复
    • JKzero
      JKzero
      2020-11-10
      小伙伴们 native的签名要两次签名吗
      2020-11-10
      回复
登录 后发表内容