提交 a0fcb7f7 编写于 作者: terrfly's avatar terrfly

更改获取商户应用的配置信息方式

上级 c30acaec
......@@ -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与商户号不匹配");
}
// 验签
......
......@@ -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("商户应用不支持该支付方式");
}
// 接口代码
......
......@@ -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);
......
......@@ -104,11 +104,12 @@ public class MchPayPassageService extends ServiceImpl<MchPayPassageMapper, MchPa
}
/** 根据商户号 和 支付方式, 查询出商户可用的支付接口 **/
public MchPayPassage findMchPayPassage(String mchNo, String wayCode){
/** 根据应用ID 和 支付方式, 查询出商户可用的支付接口 **/
public MchPayPassage findMchPayPassage(String mchNo, String appId, String wayCode){
List<MchPayPassage> list = list(MchPayPassage.gw()
.eq(MchPayPassage::getMchNo, mchNo)
.eq(MchPayPassage::getAppId, appId)
.eq(MchPayPassage::getState, CS.YES)
.eq(MchPayPassage::getWayCode, wayCode)
);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册