From f9f7d6cd79e0d78c05bbb1f70bbfe2d6fc1e5745 Mon Sep 17 00:00:00 2001 From: AlienJunX Date: Fri, 26 Nov 2021 23:29:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=94=AF=E4=BB=98=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/jpress/web/front/PayController.java | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/jpress-web/src/main/java/io/jpress/web/front/PayController.java b/jpress-web/src/main/java/io/jpress/web/front/PayController.java index 1e04a26d1..718656888 100644 --- a/jpress-web/src/main/java/io/jpress/web/front/PayController.java +++ b/jpress-web/src/main/java/io/jpress/web/front/PayController.java @@ -454,7 +454,6 @@ public class PayController extends TemplateControllerBase { * 支付状态的异步回调地址 */ public void callback() { - PayService service = getPayService(); render404If(service == null); @@ -598,25 +597,37 @@ public class PayController extends TemplateControllerBase { PayService service = getPayService(); render404If(service == null); - String trxNo = null; - PaymentRecord payment = null; + Map params = getParams(service); + if (Jboot.isDevMode()) { + LOG.debug("back:" + JSON.toJSONString(params)); + } - // paypal 不走异步回调,需要在这进行处理,只要 service.verify(params) 验证通过 - // 就代表 paypal 支付成功了 - if (service instanceof PayPalPayService) { - Map params = getParams(service); - if (Jboot.isDevMode()) { - LOG.debug("back:" + JSON.toJSONString(params)); - } + String trxNo = getTrxNo(service, params); + if (StrUtil.isBlank(trxNo)){ + redirect("/pay/fail"); + return; + } - trxNo = getTrxNo(service, params); + if (params == null || !service.verify(params)) { + redirect("/pay/fail/" + trxNo); + return; + } - if (params == null || !service.verify(params)) { - redirect("/pay/fail/" + trxNo); + if (service instanceof WxPayService) { + trxNo = getPara("trxNo"); + if (StrUtil.isBlank(trxNo)) { + redirect("/pay/fail"); return; } + } + + + PaymentRecord payment = paymentService.findByTrxNo(trxNo); + + // paypal 不走异步回调,需要在这进行处理,只要 service.verify(params) 验证通过 + // 就代表 paypal 支付成功了 + if (service instanceof PayPalPayService) { - payment = paymentService.findByTrxNo(trxNo); if (payment.getPaySuccessAmount() == null) { payment.setPaySuccessAmount(payment.getPayAmount()); @@ -635,17 +646,8 @@ public class PayController extends TemplateControllerBase { if (paymentService.update(payment)) { paymentService.notifySuccess(payment.getId()); } - } else { - trxNo = getPara("trxNo"); - if (StrUtil.isBlank(trxNo)) { - redirect("/pay/fail"); - return; - } - - payment = paymentService.findByTrxNo(trxNo); } - if (payment.isPaySuccess()) { redirect("/pay/success/" + trxNo); } else { -- Gitee