评论

微信APP支付,支付验证签名失败,除了客服给的提示,最容易忽视的一点!!!!

微信APP支付,支付验证签名失败,除了客服给的提示,最容易忽视的一点!!!!

SDK中  WXPay wxpay = new WXPay(config, true, false);

第三个参数是指是否使用沙箱环境,这里正式环境我们下意识的会选择false,但是,如果你选择了false那么signType就选择的是HMACSHA256,而我们以后的操作如果用的MD5加密,这里就仍然报:支付验证签名失败!另外说一点,这个交流专区真的太不友好了,关于支付签名失败的帖子有1000多页,客服的回答永远是文档上的介绍,建议把这一点加载文档里。而解决问题的人大多数就写已经解决了,而不写原因。

最后一次编辑于  2020-10-13  
点赞 2
收藏
评论

3 个评论

  • 大脑斧
    大脑斧
    2020-12-08

    同发现这个问题。自己改了一下:

    public WXPay(final WXPayConfig config, final String notifyUrl, final boolean autoReport, final boolean useSandbox) throws Exception {
            this.config = config;
            this.notifyUrl = notifyUrl;
            this.autoReport = autoReport;
            this.useSandbox = useSandbox;
            if (useSandbox) {
                this.signType = SignType.MD5; // 沙箱环境
            }
            else {
    //            this.signType = SignType.HMACSHA256;
                this.signType = SignType.MD5;
            }
            this.wxPayRequest = new WXPayRequest(config);
        }
    
    2020-12-08
    赞同
    回复
  • Chris
    Chris
    2020-10-31

    第一次签名和第二次签名都是可以的,和官方的一模一样,但是调起APP支付就报错“签名失败”,看了你的这个文章,也是一个个试的,最终OK了。

    就算签名的时候选择了签名方式HMACSHA256,但是在new WXPay也需要指定 这个signType。官方就不能整理一下这些问题吗?

    2020-10-31
    赞同
    回复
  • 蔡婷
    蔡婷
    2020-10-14

    感谢您的建议与反馈~您描述的问题我们将记录并放入社区常见QA中。

    我们支付社区马上要推出专门的反馈入口,方便开发GG、MM反馈社区及文档问题,提升大家的使用体验,感谢您的持续关注~

    2020-10-14
    赞同
    回复
登录 后发表内容