From f9f7d6cd79e0d78c05bbb1f70bbfe2d6fc1e5745 Mon Sep 17 00:00:00 2001 From: AlienJunX Date: Fri, 26 Nov 2021 23:29:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=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 From a0fd2dbfe5ce1d0c439e6723cedd6074888d6e7f Mon Sep 17 00:00:00 2001 From: AlienJunX Date: Sat, 27 Nov 2021 09:34:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E6=95=B0=E6=8D=AE=E8=A2=AB=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jpress-web/src/main/java/io/jpress/web/front/PayController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 718656888..9590a000b 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 @@ -665,7 +665,7 @@ public class PayController extends TemplateControllerBase { } else { Map ret = new HashMap<>(); for (String key : getParas().keySet()) { - ret.put(key,getPara(key)); + ret.put(key,getOriginalPara(key)); } return ret; } -- Gitee