浏览代码

支付组件

zouxuan 5 月之前
父节点
当前提交
b44574d495

+ 74 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/HfMemberServiceImpl.java

@@ -5,6 +5,10 @@ import java.io.IOException;
 import java.util.Date;
 import java.util.Map;
 
+import com.alibaba.fastjson.JSON;
+import com.microsvc.toolkit.middleware.payment.common.api.BasePaymentService;
+import com.microsvc.toolkit.middleware.payment.common.api.PaymentServiceContext;
+import com.microsvc.toolkit.middleware.payment.common.api.entity.PaymentMerchant;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -30,6 +34,8 @@ import com.ym.mec.thirdparty.yeepay.YeepayMerchantService;
 import com.ym.mec.thirdparty.yeepay.entity.MerchantInfo;
 import com.ym.mec.util.string.MessageFormatter;
 
+import javax.annotation.Resource;
+
 @Service
 public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> implements HfMemberService {
 	
@@ -48,6 +54,9 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
     @Autowired
     private YeepayMerchantService yeepayMerchantService;
 
+    @Resource
+    private PaymentServiceContext paymentServiceContext;
+
     @Value("${spring.profiles.active:dev}")
     private String env;
 
@@ -84,7 +93,23 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
         if (hasMember != null) {
             throw new BizException("公司名与已有公司名相同,请核查");
         }
-        
+        BasePaymentService paymentService = paymentServiceContext.getPaymentService(member.getPayerName() + "_" + member.getTenantId());
+        if (paymentService == null) {
+            throw new BizException("支付渠道不存在:{}", member.getPayerName());
+        }
+        PaymentMerchant.MerchantMember merchantMember = getMerchantMember(member);
+        try {
+            log.info("创建子账户参数:{}", JSON.toJSONString(merchantConfig));
+            Map<String, Object> paymentCorpMember = paymentService.createPaymentCorpMember(merchantConfig, merchantMember);
+            if (tenantMember.getPayerType().equals(EPayerType.YEEPAY)) {
+                tenantMember.setMemberId(paymentCorpMember.get("merchantNo").toString());
+//                tenantMember.setRequestNo(paymentCorpMember.get("requestNo").toString());
+            }
+        }catch (Exception e) {
+            log.error("创建子账户失败", e);
+            throw new BizException("创建子账户失败:" + e.getMessage());
+        }
+
         switch (PaymentChannelEnum.codeOf(member.getPayerName())) {
 		case ADAPAY:
 			createMemberWithAdapay(member, file);
@@ -110,6 +135,54 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
         return true;
     }
 
+    private PaymentMerchant.MerchantMember getMerchantMember(HfMember tenantMember) {
+        PaymentMerchant.MerchantMember merchantMember = PaymentMerchant.MerchantMember.builder()
+                .memberId(tenantMember.getMemberId())
+                .merchantName(tenantMember.getName())
+                .merchantType(tenantMember.getMerchantType())
+                .provinceCode(tenantMember.getProvCode())
+                .cityCode(tenantMember.getAreaCode())
+                .districtCode(tenantMember.getDistrictCode())
+                .socialCreditCode(tenantMember.getSocialCreditCode())
+                .socialCreditCodeExpires(tenantMember.getSocialCreditCodeExpires())
+                .businessScope(tenantMember.getBusinessScope())
+                .legalName(tenantMember.getLegalPerson())
+                .legalLicenceNo(tenantMember.getLegalCertId())
+                .legalCertIdExpires(tenantMember.getLegalCertIdExpires())
+                .mobile(tenantMember.getLegalMp())
+                .legalLicenceType(tenantMember.getLegalLicenceType())
+                .legalLicenceFrontUrl(tenantMember.getLegalLicenceFrontUrl())
+                .legalLicenceBackUrl(tenantMember.getLegalLicenceBackUrl())
+                .address(tenantMember.getAddress())
+                .attachFile(tenantMember.getFile())
+                .bankCode(tenantMember.getBankCode())
+                .bankAccountType(tenantMember.getBankAcctType())
+                .bankCardNo(tenantMember.getCardNo())
+                .cardName(tenantMember.getCardName())
+                .zipCode(tenantMember.getZipCode())
+                .requestNo(tenantMember.getRequestNo())
+                .licenceNo(tenantMember.getSocialCreditCode())
+                .licenceUrl(tenantMember.getLicenceUrl())
+                .openAccountLicenceUrl(tenantMember.getOpenAccountLicenceUrl())
+                .contactName(tenantMember.getContactName())
+                .contactMobile(tenantMember.getContactMobile())
+                .contactEmail(tenantMember.getContactEmail())
+                .contactLicenceNo(tenantMember.getContactLicenceNo())
+                .primaryIndustryCategory("120")
+                .secondaryIndustryCategory("120004")
+                .settlementDirection("BANKCARD")
+                .build();
+        if (tenantMember.getPayerType().equals(EPayerType.ADAPAY)) {
+            merchantMember.setNotifyUrl(sysConfigService.findConfigValue(SysConfigConstant.SUB_ACCOUNT_CREATE_CALLBACK_URL) +
+                    "/" + EPayerType.ADAPAY.getDesc());
+        } else if (tenantMember.getPayerType().equals(EPayerType.YEEPAY)) {
+            merchantMember.setNotifyUrl(sysConfigService.findConfigValue(SysConfigConstant.SUB_ACCOUNT_CREATE_CALLBACK_URL )+
+                    "/" + EPayerType.YEEPAY.getDesc());
+        }
+        return merchantMember;
+
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean updateMember(HfMember member, File file) throws Exception {

+ 3 - 3
mec-thirdparty/pom.xml

@@ -95,7 +95,7 @@
 				${project.basedir}/libs/SADK-3.2.5.2.jar</systemPath>
 		</dependency>
 
-		<dependency>
+		<!--<dependency>
 			<groupId>com.yeepay.yop</groupId>
 			<artifactId>yop-java-sdk</artifactId>
 			<version>3.2.25-jdk18json</version>
@@ -112,13 +112,13 @@
 				1.2.10</version>
 		</dependency>
 	
-		<!-- https://mvnrepository.com/artifact/com.huifu.adapay/adapay-java-sdk -->
+		&lt;!&ndash; https://mvnrepository.com/artifact/com.huifu.adapay/adapay-java-sdk &ndash;&gt;
 		<dependency>
 			<groupId>com.huifu.adapay</groupId>
 			<artifactId>
 				adapay-java-sdk</artifactId>
 			<version>1.2.10</version>
-		</dependency>
+		</dependency>-->
 		
 		<dependency>
 		    <groupId>

+ 2 - 11
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/AdapayInit.java

@@ -1,14 +1,5 @@
 package com.ym.mec.thirdparty.adapay;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.huifu.adapay.Adapay;
-import com.huifu.adapay.model.MerConfig;
-import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig;
-import com.ym.mec.thirdparty.exception.ThirdpartyException;
-
 /**
  * 系统初始化
  */
@@ -39,7 +30,7 @@ public class AdapayInit {
 		return init;
 	}
 
-	public boolean initWithMerConfig(List<HfMerchantConfig> adapayMerConfigList) {
+	/*public boolean initWithMerConfig(List<HfMerchantConfig> adapayMerConfigList) {
 		
 		Adapay.debug = debug;
 		Adapay.prodMode = prodMode;
@@ -62,5 +53,5 @@ public class AdapayInit {
 		}
 
 		return true;
-	}
+	}*/
 }

+ 7 - 11
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/ConfigInit.java

@@ -1,13 +1,9 @@
 package com.ym.mec.thirdparty.adapay;
 
-import com.huifu.adapay.Adapay;
-import com.huifu.adapay.model.MerConfig;
-
-
 public class ConfigInit {
 
 
-    private static ConfigInit instance;
+//    private static ConfigInit instance;
     public final static Integer organId = 16; //商户对应的分部
     public final static String merNo = "B09767221"; //商户对应的分部
     public final static String appId = "app_756972d1-882e-44c6-9f52-e6a6b93c8756";
@@ -15,7 +11,7 @@ public class ConfigInit {
     public final static String wxAppId = "wx751141096e75a4ee";
     public final static String wxAppSecret = "e882d76c95d1613607a85338b1bed3ff";
     public final static String wxMpOAuth2AccessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code";
-    public final static MerConfig merConfig = new MerConfig();
+    /*public final static MerConfig merConfig = new MerConfig();
 
     static {
         try {
@@ -32,9 +28,9 @@ public class ConfigInit {
         } else {
             return instance;
         }
-        /**
+        *//**
          *添加商户配置,一个商户只需要 添加一次,添加以后在内存中。
-         */
+         *//*
 
         String apiKey = "api_live_bfc3c02f-657b-4731-9fcd-ea9503aa3bb9";
         String mockApiKey = "api_test_d09b9f68-9798-43b3-93b7-a22ef406a20c";
@@ -44,13 +40,13 @@ public class ConfigInit {
         merConfig.setApiMockKey(mockApiKey);
         merConfig.setRSAPrivateKey(rsaPrivateKey);
         Adapay.initWithMerConfig(merConfig);
-        /**
+        *//**
          *启动MQTT,一个商户只需要 启动一次,启动完成以后一直在服务器后端运行
-         */
+         *//*
         // notifyCallback = new NotifyCallback();
         //Adapay.startMqttListener(merConfig, notifyCallback);
         return instance;
-    }
+    }*/
 
     public ConfigInit() {
     }