From b03fdd3bbe5121c41b47381458371b8fbdb7983e Mon Sep 17 00:00:00 2001 From: Chopper Date: Tue, 12 Oct 2021 15:53:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9Dh5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=9B=9E=E8=B0=83=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/lili/modules/payment/kit/Payment.java | 12 -------- .../kit/plugin/alipay/AliPayPlugin.java | 28 +++++++++++++++++-- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/payment/kit/Payment.java b/framework/src/main/java/cn/lili/modules/payment/kit/Payment.java index 6c995cdc..d6041c6d 100644 --- a/framework/src/main/java/cn/lili/modules/payment/kit/Payment.java +++ b/framework/src/main/java/cn/lili/modules/payment/kit/Payment.java @@ -131,18 +131,6 @@ public interface Payment { default String callbackUrl(String api, PaymentMethodEnum paymentMethodEnum) { return api + "/buyer/cashier/callback/" + paymentMethodEnum.name(); } - - /** - * 支付回调地址 - * - * @param api api地址 - * @param paymentMethodEnum 支付类型 - * @return 回调地址 - */ - default String aliCallback(String api, PaymentMethodEnum paymentMethodEnum,String params) { - return api + "/buyer/cashier/callback/" + paymentMethodEnum.name()+"?passback_params="+params; - } - /** * 支付异步通知地址 * diff --git a/framework/src/main/java/cn/lili/modules/payment/kit/plugin/alipay/AliPayPlugin.java b/framework/src/main/java/cn/lili/modules/payment/kit/plugin/alipay/AliPayPlugin.java index 3365b6cb..9abe5805 100644 --- a/framework/src/main/java/cn/lili/modules/payment/kit/plugin/alipay/AliPayPlugin.java +++ b/framework/src/main/java/cn/lili/modules/payment/kit/plugin/alipay/AliPayPlugin.java @@ -93,7 +93,7 @@ public class AliPayPlugin implements Payment { payModel.setProductCode("QUICK_WAP_PAY"); try { log.info("支付宝H5支付:{}", JSONUtil.toJsonStr(payModel)); - AliPayRequest.wapPay(response, payModel, aliCallback(apiProperties.getBuyer(), PaymentMethodEnum.ALIPAY, URLEncoder.createAll().encode(BeanUtil.formatKeyValuePair(payParam), StandardCharsets.UTF_8)), + AliPayRequest.wapPay(response, payModel, callbackUrl(apiProperties.getBuyer(), PaymentMethodEnum.ALIPAY), notifyUrl(apiProperties.getBuyer(), PaymentMethodEnum.ALIPAY)); } catch (Exception e) { log.error("H5支付异常", e); @@ -236,8 +236,8 @@ public class AliPayPlugin implements Payment { @Override public void callBack(HttpServletRequest request) { - verifyNotify(request); log.info("支付同步回调:"); + callback(request); } @Override @@ -246,6 +246,30 @@ public class AliPayPlugin implements Payment { log.info("支付异步通知:"); } + /** + * 验证支付结果 + * + * @param request + */ + private void callback(HttpServletRequest request) { + try { + AlipayPaymentSetting alipayPaymentSetting = alipayPaymentSetting(); + //获取支付宝反馈信息 + Map map = AliPayApi.toMap(request); + log.info("同步回调:{}", JSONUtil.toJsonStr(map)); + boolean verifyResult = AlipaySignature.rsaCertCheckV1(map, alipayPaymentSetting.getAlipayPublicCertPath(), "UTF-8", + "RSA2"); + if (verifyResult) { + log.info("支付回调通知:支付成功-参数:{}", map); + } else { + log.info("支付回调通知:支付失败-参数:{}", map); + } + } catch (AlipayApiException e) { + log.error("支付回调同步通知异常", e); + } + + } + /** * 验证支付结果 *