Closed
Description
我是以服务商模式发起的支付,统一下单什么都成功了,但是一到调起支付的时候就验证签名失败。
问题应该是出在BaseWxPayServiceImpl.java里的再次加密的代码里。服务商模式应该是用subAppId去加密,而不是用appid去加密。
WxPayMpOrderResult payResult = WxPayMpOrderResult.builder().appId(unifiedOrderResult.getAppid()).timeStamp(timestamp).nonceStr(nonceStr).packageValue("prepay_id=" + prepayId).signType(signType).build();
payResult.setPaySign(SignUtils.createSign(payResult, signType, this.getConfig().getMchKey(), false));
return payResult;
参考:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=7_7&index=3