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 549b3fa230ef7c37eb261844e78500eab44db041..a4dfd22959ab41da1da2a4047907ba305a516fee 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 c50b949c08e2713ac40b947caa4254eb2dbb4d31..e5ec42d56dda6467c28716d9b1be9bf92ca3723b 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 8736b93a0fa84696fa7b26314889215edfda298e..bfea64f1225e3fab49792c61cc86a022b69db78e 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 466e26e8e3dbed840f231dbff718f856349efbd4..13fe93e8e0f70b5d0938be8a1e99c57ff5e3cf60 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) );