TRX 1 yıl önce
ebeveyn
işleme
0e84808539

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/payConfig/FrictionlessUnionConfigParam.java

@@ -45,7 +45,7 @@ public class FrictionlessUnionConfigParam extends PayConfigParam {
     @Schema(description = "来源编号")
     private String msgSrcId;
 
-    @Schema(description = "签约结束后调整小程序id")
+    @Schema(description = "签约结束后跳转小程序id")
     private String mchntWxMpAppId;
 
     @Schema(description = "商户订单号固定开头")

+ 8 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/paySetting/ProjectPaySettingController.java

@@ -6,6 +6,7 @@ import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.model.base.IDParam;
 import com.zhongshu.card.client.model.base.ProjectOidParam;
 import com.zhongshu.card.client.model.org.BelongOigParam;
+import com.zhongshu.card.client.model.paySetting.payConfig.FrictionlessUnionConfigParam;
 import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfig;
 import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfigParam;
 import com.zhongshu.card.client.model.paySetting.paySetting.*;
@@ -153,4 +154,11 @@ public class ProjectPaySettingController {
         return projectPaySettingService.saveLaKaLaConfig(param);
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "保存银联云闪付支付配置", description = "保存银联云闪付支付配置")
+    @RequestMapping(value = "saveUnionPayConfig", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, method = RequestMethod.POST)
+    public ResultContent saveUnionPayConfig(FrictionlessUnionConfigParam param) {
+        return projectPaySettingService.saveUnionPayConfig(param);
+    }
+
 }

+ 8 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectChannelConfigService.java

@@ -93,13 +93,20 @@ public class ProjectChannelConfigService extends SuperService {
     }
 
     public ResultContent initAllChannel() {
+        log.info("-------------初始平台支付产品---------------");
         // 免密支付 拉卡拉
         PayChannelConfigParam param = new PayChannelConfigParam();
-        param.setName("免密支付");
+        param.setName("拉卡拉免密支付");
         param.setPaymentChannelType(PaymentChannelType.SecretFreePayment);
         param.setPaymentType(PaymentType.LakalaFrictionlessPay);
         savePayChannelConfig(param);
 
+        PayChannelConfigParam unionPayParam = new PayChannelConfigParam();
+        unionPayParam.setName("云闪付免密支付");
+        unionPayParam.setPaymentChannelType(PaymentChannelType.SecretFreePayment);
+        unionPayParam.setPaymentType(PaymentType.UnionFrictionlessPay);
+        savePayChannelConfig(unionPayParam);
+
         // 余额支付  微信充值
         PayChannelConfigParam balanceParam = new PayChannelConfigParam();
         balanceParam.setName("余额支付");

+ 57 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectPaySettingServiceImpl.java

@@ -11,6 +11,8 @@ import com.github.microservice.pay.client.type.PayProductChannelType;
 import com.github.microservice.types.payment.PayFieldType;
 import com.github.microservice.types.payment.PaymentType;
 import com.zhongshu.card.client.model.org.BelongOigParam;
+import com.zhongshu.card.client.model.paySetting.payConfig.FrictionlessUnionConfigModel;
+import com.zhongshu.card.client.model.paySetting.payConfig.FrictionlessUnionConfigParam;
 import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfig;
 import com.zhongshu.card.client.model.paySetting.payConfig.LaKaLaCollectionConfigParam;
 import com.zhongshu.card.client.model.paySetting.paySetting.*;
@@ -153,7 +155,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         if (state != null && state == DataState.Enable) {
             ProjectMainPaySetting mainPaySetting = projectMainPaySettingDao.findTopByProjectOidAndChannelType(paySetting.getProjectOid(), paySetting.getChannelType());
             if (ObjectUtils.isEmpty(mainPaySetting)) {
-                return ResultContent.buildFail("未配置账户信息和结算规则等,不能启用");
+                return ResultContent.buildFail("未配置主账户信息或结算规则等,不能启用!");
             }
         }
         paySetting.setState(state);
@@ -323,6 +325,35 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         return ResultContent.buildSuccess();
     }
 
+    /**
+     * 银联云闪付参数配置
+     *
+     * @param param
+     * @return
+     */
+    public ResultContent saveUnionPayConfig(FrictionlessUnionConfigParam param) {
+        ResultContent<ProjectOrgPaySettingInfo> content = initProjectPayInfo(param);
+        if (content.isFailed()) {
+            return ResultContent.buildFail(content.getMsg());
+        }
+        ProjectOrgPaySettingInfo settingInfo = content.getContent();
+        FrictionlessUnionConfigModel unionConfigModel = null;
+        if (ObjectUtils.isNotEmpty(settingInfo) && settingInfo.getPayConfig() != null) {
+            unionConfigModel = (FrictionlessUnionConfigModel) settingInfo.getPayConfig();
+        }
+        if (unionConfigModel == null) {
+            unionConfigModel = new FrictionlessUnionConfigModel();
+        }
+        BeanUtils.copyProperties(param, unionConfigModel);
+
+        settingInfo.setPayConfig(unionConfigModel);
+        projectPaySettingInfoDao.save(settingInfo);
+
+        // 如果当前设置为默认,把其他的取消默认
+        initChangeDefault(settingInfo.getId(), settingInfo.getBelongOig(), settingInfo.getProjectOid(), settingInfo.getChannelType());
+        return ResultContent.buildSuccess();
+    }
+
     /**
      * @param param
      * @return
@@ -444,6 +475,10 @@ public class ProjectPaySettingServiceImpl extends SuperService {
             // 微信小程序支付
             model.setApiName("saveWxPayConfig");
             model.setFields(getWxConfig());
+        } else if (paymentType == PaymentType.UnionFrictionlessPay) {
+            // 银联云闪付
+            model.setApiName("saveUnionPayConfig");
+            model.setFields(getUnionPay());
         }
         return ResultContent.buildSuccess(model);
     }
@@ -457,13 +492,33 @@ public class ProjectPaySettingServiceImpl extends SuperService {
         List<PayConfigField> fields = new ArrayList<>(4);
         fields.add(PayConfigField.builder().name("appId").key("appId").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
         fields.add(PayConfigField.builder().name("商户证书序列号").key("mchSerialNo").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
-//        fields.add(PayConfigField.builder().name("商户ID").key("mchId").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
         fields.add(PayConfigField.builder().name("V3密钥").key("apiV3Key").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
         fields.add(PayConfigField.builder().name("证书文件").key("privateKeyFile").type(PayFieldType.File).isMust(Boolean.FALSE).build());
         fields.add(PayConfigField.builder().name("支付成功回调地址").key("notifyUrl").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(500).build());
         return fields;
     }
 
+    /**
+     * 银联云闪付字段
+     *
+     * @return
+     */
+    public List<PayConfigField> getUnionPay() {
+        List<PayConfigField> fields = new ArrayList<>(4);
+        fields.add(PayConfigField.builder().name("appId").key("appId").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
+        fields.add(PayConfigField.builder().name("appKey").key("appKey").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
+        fields.add(PayConfigField.builder().name("商户订单号开头").key("orderStart").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
+        fields.add(PayConfigField.builder().name("终端号").key("tid").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
+        fields.add(PayConfigField.builder().name("协议模板id").key("planId").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(100).build());
+        fields.add(PayConfigField.builder().name("密钥").key("notifySecret").type(PayFieldType.Str).isMust(Boolean.TRUE).build());
+
+        fields.add(PayConfigField.builder().name("商户微信小程序AppId").key("mchntWxMpAppId").type(PayFieldType.Str).isMust(Boolean.TRUE).build());
+        fields.add(PayConfigField.builder().name("无感支付签约结果通知地址").key("notifyUrl").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(500).build());
+        fields.add(PayConfigField.builder().name("支付结果通知地址").key("payNotifyUrl").type(PayFieldType.Str).isMust(Boolean.TRUE).maxLength(500).build());
+
+        return fields;
+    }
+
     public ProjectPaySettingInfoModel toModel(ProjectOrgPaySettingInfo entity) {
         ProjectPaySettingInfoModel model = null;
         if (ObjectUtils.isNotEmpty(entity)) {