From a0fcb7f7a1cc2318b7baa77c8fdb0345495f5aa8 Mon Sep 17 00:00:00 2001 From: terrfly Date: Wed, 16 Jun 2021 12:45:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E8=8E=B7=E5=8F=96=E5=95=86?= =?UTF-8?q?=E6=88=B7=E5=BA=94=E7=94=A8=E7=9A=84=E9=85=8D=E7=BD=AE=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeequan/jeepay/pay/ctrl/ApiController.java | 17 ++++++++++------- .../payorder/AbstractPayOrderController.java | 4 ++-- .../pay/service/ConfigContextService.java | 4 ++++ .../service/impl/MchPayPassageService.java | 5 +++-- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/ApiController.java b/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/ApiController.java index 549b3fa..a4dfd22 100644 --- a/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/ApiController.java +++ b/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/ApiController.java @@ -74,18 +74,21 @@ public abstract class ApiController extends AbstractCtrl { MchAppConfigContext mchAppConfigContext = configContextService.getMchAppConfigContext(mchNo, appId); - MchInfo mchInfo = mchAppConfigContext == null ? null : mchAppConfigContext.getMchInfo(); - if(mchInfo == null || mchInfo.getState() != CS.YES){ - throw new BizException("商户不存在或商户状态不可用"); + if(mchAppConfigContext == null){ + throw new BizException("商户或商户应用不存在"); } - MchApp mchApp = mchAppConfigContext == null ? null : mchAppConfigContext.getMchApp(); - if(mchInfo == null || mchInfo.getState() != CS.YES){ - throw new BizException("商户应用不存在或商户状态不可用"); + if(mchAppConfigContext.getMchInfo() == null || mchAppConfigContext.getMchInfo().getState() != CS.YES){ + throw new BizException("商户信息不存在或商户状态不可用"); + } + + MchApp mchApp = mchAppConfigContext.getMchApp(); + if(mchApp == null || mchApp.getState() != CS.YES){ + throw new BizException("商户应用不存在或应用状态不可用"); } if(!mchApp.getMchNo().equals(mchNo)){ - throw new BizException("商户应用与商户号不匹配"); + throw new BizException("参数appId与商户号不匹配"); } // 验签 diff --git a/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java b/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java index c50b949..e5ec42d 100644 --- a/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java +++ b/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/ctrl/payorder/AbstractPayOrderController.java @@ -240,9 +240,9 @@ public abstract class AbstractPayOrderController extends ApiController { private IPaymentService checkMchWayCodeAndGetService(MchAppConfigContext mchAppConfigContext, String wayCode){ // 根据支付方式, 查询出 该商户 可用的支付接口 - MchPayPassage mchPayPassage = mchPayPassageService.findMchPayPassage(mchAppConfigContext.getMchNo(), wayCode); + MchPayPassage mchPayPassage = mchPayPassageService.findMchPayPassage(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), wayCode); if(mchPayPassage == null){ - throw new BizException("该支付方式商户未开通"); + throw new BizException("商户应用不支持该支付方式"); } // 接口代码 diff --git a/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/ConfigContextService.java b/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/ConfigContextService.java index 8736b93..bfea64f 100644 --- a/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/ConfigContextService.java +++ b/jeepay-payment/src/main/java/com/jeequan/jeepay/pay/service/ConfigContextService.java @@ -143,6 +143,8 @@ public class ConfigContextService { mchInfoConfigContext.setMchType(mchInfo.getType()); mchInfoConfigContext.setMchInfo(mchInfo); mchAppService.list(MchApp.gw().eq(MchApp::getMchNo, mchNo)).stream().forEach( mchApp -> mchInfoConfigContext.putMchApp(mchApp)); + + mchInfoConfigContextMap.put(mchNo, mchInfoConfigContext); } /** 初始化 [商户应用支付参数配置信息] **/ @@ -162,6 +164,7 @@ public class ConfigContextService { mchApp = mchAppService.getById(appId); if(mchApp == null){ // DB查询为空 mchAppConfigContextMap.remove(appId); //清除缓存信息 + mchInfoConfigContext.getAppMap().remove(appId); //清除主体信息中的appId return ; } @@ -174,6 +177,7 @@ public class ConfigContextService { MchAppConfigContext mchAppConfigContext = new MchAppConfigContext(); // 设置商户信息 + mchAppConfigContext.setAppId(appId); mchAppConfigContext.setMchNo(mchInfo.getMchNo()); mchAppConfigContext.setMchType(mchInfo.getType()); mchAppConfigContext.setMchInfo(mchInfo); diff --git a/jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/MchPayPassageService.java b/jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/MchPayPassageService.java index 466e26e..13fe93e 100644 --- a/jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/MchPayPassageService.java +++ b/jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/MchPayPassageService.java @@ -104,11 +104,12 @@ public class MchPayPassageService extends ServiceImpl list = list(MchPayPassage.gw() .eq(MchPayPassage::getMchNo, mchNo) + .eq(MchPayPassage::getAppId, appId) .eq(MchPayPassage::getState, CS.YES) .eq(MchPayPassage::getWayCode, wayCode) ); -- GitLab