收藏
回答

支付验证签名失败 get_brand_wcpay_request:fail

用微信在线签名工具测试后,签名校验通过,为什么页面还会报支付验证签名失败的错误呢?


后台代码:



后台输出的信息



前端代码



微信返回结果

最后一次编辑于  01-30  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

5 个回答

  • admin
    admin
    01-30

    找到问题了,第二次签名的参数出错了。之前为了避开java关键字package,将第二次签名的参数package改成了payPackage。虽然传到前端的package参数是正确的,但由payPackage生成的第二次签名paySign就出错了。


    后台代码:




    前端代码



    01-30
    赞同 2
    回复
  • 波
    01-28

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

    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:)消息中字段大小写和文档中完全一致


    01-28
    赞同
    回复 2
    • 波
      01-28回复admin

      您好,

      按照以下几点来检查,

      1)你签名中的key,也就是你的API密钥key,这个参数要你们自己到商户平台设置的,设置的规则是32位数字与字母大小写的组合的随机数,不能设置成签名串和参数appsecret,你们有正确设置吗???

      2)检查开放平台对应的包名与签名是否有正确设置。

      https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5 这里有详细的设置说明。

      3)调用支付使用的noncestr这个参数必须和商家服务器调用统一下单接口返回的那个noncestr一致

      4)从预支付订单返回的数据 ,没有重新签名,也会引起这个问题。

      5)重新安装微信后试试。


      01-28
      回复
    • 安
      02-21回复

      商户号:1516785011   官方的人核实了吗?都没人回复的 微信支付社区???


      交易异常,已超出今日商户微信付款限额


      求官方解答原因?是收款商户问题,还是微信支付人的问题?


      是不是支付的微信没绑定身份证 银行卡?还是用信用卡支付?触发风控机制??求解



      02-21
      回复
  • 安
    02-21

    商户号:1516785011   官方的人核实了吗?都没人回复的 微信支付社区???


    交易异常,已超出今日商户微信付款限额


    求官方解答原因?是收款商户问题,还是微信支付人的问题?


    是不是支付的微信没绑定身份证 银行卡?还是用信用卡支付?触发风控机制??求解



    02-21
    赞同
    回复
  • Adolph
    Adolph
    01-28

    我也遇到这样的问题:

    1)用谷歌浏览器打开微信的在线签名工具,选择MD5,XML,然后把请求参数xml放进去,签名和程序生成的一致

    不知道错哪儿了  小程序跳转 手机支付界面一闪而过 了

    01-28
    赞同
    回复
  • This is 套路
    This is 套路
    01-28

     兄弟,我也问题和你一毛一样呀

    01-28
    赞同
    回复