diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/WxPayService.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/WxPayService.java index 11e624224..daa8d3597 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/WxPayService.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/WxPayService.java @@ -413,6 +413,17 @@ public interface WxPayService { */ WxPayRefundNotifyResult parseRefundNotifyResult(String xmlData) throws WxPayException; + /** + * 解析扫码支付回调通知 + * 详见https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4 + * + * @param xmlData the xml data + * @param signType 签名类型 + * @return the wx scan pay notify result + * @throws WxPayException the wx pay exception + */ + WxScanPayNotifyResult parseScanPayNotifyResult(String xmlData, String signType) throws WxPayException; + /** * 解析扫码支付回调通知 * 详见https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4 diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java index 15ca423a2..9bf9e9a8d 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java @@ -236,19 +236,24 @@ public abstract class BaseWxPayServiceImpl implements WxPayService { } @Override - public WxScanPayNotifyResult parseScanPayNotifyResult(String xmlData) throws WxPayException { + public WxScanPayNotifyResult parseScanPayNotifyResult(String xmlData, String signType) throws WxPayException { try { log.debug("扫码支付回调通知请求参数:{}", xmlData); WxScanPayNotifyResult result = BaseWxPayResult.fromXML(xmlData, WxScanPayNotifyResult.class); log.debug("扫码支付回调通知解析后的对象:{}", result); - result.checkResult(this, this.getConfig().getSignType(), false); + result.checkResult(this, signType, false); return result; } catch (WxPayException e) { throw e; } catch (Exception e) { throw new WxPayException("发生异常," + e.getMessage(), e); } + } + @Override + public WxScanPayNotifyResult parseScanPayNotifyResult(String xmlData) throws WxPayException { + final String signType = this.getConfig().getSignType(); + return this.parseScanPayNotifyResult(xmlData, signType); } @Override