微信支付 支付验证签名失败

公众号支付,WeixinJSBridge.invoke()方法,返回错误:支付验证签名失败

检查后台签名参数、支付密钥均正确,却还是错误,最后询问微信支付技术才解决,问题所在就是微信给的java sdk有问题。问题解决就是:全部使用MD5加密的方式,不用去理睬什么环境。

java sdk v3版:

初始化WXPay方法:

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.wxPayRequest = new WXPayRequest(config);
    }


正式环境下的签名方式使用HMACSHA256,这就导致了统一下单时也使用HMACSHA256签名,然而WeixinJSBridge.invoke()方法的签名方式,只支持MD5,2者签名方式不同,造成最终的“支付验证签名失败”错误。


另外一个坑:

微信的支付回调,也就是“支付结果通知“,回传参数中并不包含sign_type,那么回传的签名方式是哪种呢?和统一下单接口同一种签名方式!!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值