|
@@ -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 {
|