微信支付回调参数获取及回调Url通知签名失败问题

 

    微信支付,apache-commons

InputStream input = request.getInputStream();
String content = IOUtils.toString(input);
Map<String, String> params = WXPayUtil.xmlToMap(content);

 

回调地址中签名失败:isPayResultNotifySignatureValid,返回false

但是isResponseSignatureValid,返回true

isPayResultNotifySignatureValid方法中sign_type属性缺失时,默认选择SignType.MD5

而之前统一下订单中,使用了默认的构造函数,useSandbox默认为false,使用是SignType.HMACSHA256;

前后SignType不一样,导致签名失败

    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);
    }

 

猜你喜欢

转载自itace.iteye.com/blog/2406606
今日推荐