您的位置:首页 > 移动开发 > 微信开发

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

2017-07-05 17:33 288 查看
公众号支付,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,那么回传的签名方式是哪种呢?和统一下单接口同一种签名方式!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐