diff --git a/cweb/src/main/java/com/cweb/config/AuthConfig.java b/cweb/src/main/java/com/cweb/config/AuthConfig.java index d9fadd8..e99009d 100644 --- a/cweb/src/main/java/com/cweb/config/AuthConfig.java +++ b/cweb/src/main/java/com/cweb/config/AuthConfig.java @@ -101,6 +101,7 @@ public class AuthConfig implements WebMvcConfigurer { .excludePathPatterns("/pay/jsapiPay") .excludePathPatterns("/pay/rotationQueryTrade") .excludePathPatterns("/laKaLaNotify/*") + .excludePathPatterns("/tianqueNotify/*") .excludePathPatterns("/weiXinNotify/*") .excludePathPatterns("/deviceOrderPay/orderNotify") .excludePathPatterns("/storeDiscountActivityPartakeUser/*") @@ -111,7 +112,7 @@ public class AuthConfig implements WebMvcConfigurer { .excludePathPatterns("/common/*") .excludePathPatterns("/mer/*") .excludePathPatterns("/tradeOrder/calculation") - .excludePathPatterns("/tradeOrder/getLkLUnionUserId") + .excludePathPatterns("/tradeOrder/getUnionUserId") .excludePathPatterns("/login/*") .excludePathPatterns("/test/*") .excludePathPatterns("/sms/*") diff --git a/cweb/src/main/java/com/cweb/controller/BsMerController.java b/cweb/src/main/java/com/cweb/controller/BsMerController.java index 4da6e4a..7ee6588 100644 --- a/cweb/src/main/java/com/cweb/controller/BsMerController.java +++ b/cweb/src/main/java/com/cweb/controller/BsMerController.java @@ -54,16 +54,16 @@ public class BsMerController { @Resource private BsMerService merService; - @Resource private CommonService commonService; - @Resource private BsIndustryService industryService; - @Resource private BsLklMccService mccService; - + @Resource + private BsMerPlatformNoService merPlatformNoService; + @Resource + private BsMerContractRecordMsgService merContractRecordMsgService; @Resource private BsStoreService storeService; @@ -181,6 +181,7 @@ public class BsMerController { || StringUtils.isBlank(mer.getMerName()) || StringUtils.isBlank(mer.getMerAbbreviate()) || StringUtils.isBlank(mer.getMerMccCode()) + || mer.getMerOperateType() == null || StringUtils.isBlank(mer.getLarName()) || StringUtils.isBlank(mer.getLarIdCard()) @@ -215,22 +216,24 @@ public class BsMerController { || mer.getBlisPeriodType() == null || StringUtils.isBlank(mer.getBlisPeriodStart()) || StringUtils.isBlank(mer.getBlisPeriodEnd())) { - log.error("configMerBasis error!","参数错误"); + log.error("configMerBasis error!","需要上传营业执照"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "需要上传营业执照"); } } + if (mer.getMerOperateType().equals(MerOperateType.type2.getNumber())) { + if (mer.getMerOnlineType() == null || StringUtils.isBlank(mer.getMerOnlineName())) { + log.error("configMerBasis error!","需要上传线上产品类型和产品名称"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "需要上传线上产品类型和产品名称"); + } + } + // 查询商户详情 BsMer bsMer = merService.getMer(mer.getId()); if (bsMer == null) { log.error("configMerBasis error!","未知商户类型"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知商户类型"); } - if ((!bsMer.getMerStatus().equals(MerStatusEnum.status2.getNumber()) - && !bsMer.getMerStatus().equals(MerStatusEnum.status4.getNumber()))) { - log.error("configMerBasis error!","状态错误"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.STATUS_ERROR, ""); - } // MCC编码 BsLklMcc mcc = mccService.getMccByCode(mer.getMerMccCode()); @@ -269,6 +272,9 @@ public class BsMerController { bsMer.setMerName(mer.getMerName()); bsMer.setMerAbbreviate(mer.getMerAbbreviate()); bsMer.setMerMccCode(mer.getMerMccCode()); + bsMer.setMerOperateType(mer.getMerOperateType()); + bsMer.setMerOnlineType(mer.getMerOnlineType()); + bsMer.setMerOnlineName(mer.getMerOnlineName()); bsMer.setBlisUrl(mer.getBlisUrl()); bsMer.setBlisName(mer.getBlisName()); @@ -358,11 +364,6 @@ public class BsMerController { log.error("configMerBasis error!","未知商户"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知商户"); } - if ((!bsMer.getMerStatus().equals(MerStatusEnum.status2.getNumber()) - && !bsMer.getMerStatus().equals(MerStatusEnum.status4.getNumber()))) { - log.error("configMerBasis error!","状态错误"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.STATUS_ERROR, ""); - } // 对私非法人结算 if (merSettleAcct.getSettleType().equals(MerSettleType.status3.getNumber())) { @@ -431,11 +432,6 @@ public class BsMerController { log.error("configMerBasis error!","参数错误"); throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); } - if ((!mer.getMerStatus().equals(MerStatusEnum.status2.getNumber()) - && !mer.getMerStatus().equals(MerStatusEnum.status4.getNumber()))) { - log.error("configMerBasis error!","状态错误"); - throw ErrorHelp.genException(SysCode.System, ErrorCode.STATUS_ERROR, ""); - } if (storeModel.getId() == null) { if (storeService.getStoreByMerId(mer.getId(), StoreCreateTypeEnum.type1).size() < 0) { log.error("configMerBasis error!","已经创建了门店"); @@ -538,10 +534,34 @@ public class BsMerController { @RequestMapping(value="/getMerDetail",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "查询商户详情") - public ResponseData getMerDetail(@RequestParam(value = "merId" , required = true) Long merId) { + public ResponseData getMerDetail(@RequestParam(value = "merId" , required = true) Long merId, + @RequestParam(value = "merPlatformType" , required = false) Integer merPlatformType) { try { - - return ResponseMsgUtil.success(merService.getMerDetail(merId)); + // 查询商户 + MerBasisModel merDetail = merService.getMerDetail(merId); + if (merDetail == null) { + log.error("getMerDetail error!","未知的商户"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的商户"); + } + // 查询错误消息 + if (merDetail.getMerStatus().equals(MerStatusEnum.status4.getNumber())) { + Map recordMsg = merContractRecordMsgService.getMerContractRecordMsg(merDetail.getId(), null); + recordMsg.put("response_msg", recordMsg.get("response_msg")); + merDetail.setMerContractFailMsg(recordMsg); + merDetail.setCompleteStatus(MerCompleteStatusEnum.status2.getNumber()); + merDetail.setMerStatus(MerStatusEnum.status4.getNumber()); + } + if (merPlatformType != null) { + BsMerPlatformNo platformNo = merPlatformNoService.getPlatformNo(merId, PlatformTypeEnum.getDataByNumber(merPlatformType), MerPlatformNoStatusEnum.status3); + if (platformNo != null) { + Map recordMsg = new HashMap<>(); + recordMsg.put("response_msg", platformNo.getSuggestionReject()); + merDetail.setMerContractFailMsg(recordMsg); + merDetail.setCompleteStatus(MerCompleteStatusEnum.status2.getNumber()); + merDetail.setMerStatus(MerStatusEnum.status4.getNumber()); + } + } + return ResponseMsgUtil.success(merDetail); } catch (Exception e) { log.error(e.getMessage(), e); diff --git a/cweb/src/main/java/com/cweb/controller/BsMerPlatformNoController.java b/cweb/src/main/java/com/cweb/controller/BsMerPlatformNoController.java index 19c78ce..8bebc29 100644 --- a/cweb/src/main/java/com/cweb/controller/BsMerPlatformNoController.java +++ b/cweb/src/main/java/com/cweb/controller/BsMerPlatformNoController.java @@ -1,5 +1,9 @@ package com.cweb.controller; +import com.alibaba.fastjson.JSONObject; +import com.hfkj.common.exception.ErrorCode; +import com.hfkj.common.exception.ErrorHelp; +import com.hfkj.common.exception.SysCode; import com.hfkj.common.utils.ResponseMsgUtil; import com.hfkj.entity.BsMerPlatformNo; import com.hfkj.entity.BsMerPlatformTerm; @@ -9,13 +13,11 @@ import com.hfkj.service.BsMerPlatformTermService; import com.hfkj.sysenum.PlatformTypeEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import netscape.javascript.JSObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.HashMap; @@ -36,8 +38,6 @@ public class BsMerPlatformNoController { @Resource private BsMerPlatformNoService merPlatformNoService; - @Resource - private BsMerPlatformTermService merPlatformTermService; @RequestMapping(value="/getMerPlatformList",method = RequestMethod.GET) @ResponseBody @@ -49,12 +49,25 @@ public class BsMerPlatformNoController { Map param = new HashMap<>(); param.put("merId", merId); param.put("platformType", platformType); + return ResponseMsgUtil.success(merPlatformNoService.getMerPlatformNoList(param)); + + } catch (Exception e) { + log.error(e.getMessage(), e); + return ResponseMsgUtil.exception(e); + } + } + + @RequestMapping(value="/switchPlatform",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "切换渠道") + public ResponseData switchPlatform(@RequestBody JSONObject body) { + try { - List merPlatformNoList = merPlatformNoService.getMerPlatformNoList(param); - for (BsMerPlatformNo merPlatformNo : merPlatformNoList) { - merPlatformNo.setMerPlatformTerm(merPlatformTermService.getMerPlatformTerm(merPlatformNo.getId(), "WECHAT_PAY")); + if (body == null || body.getLong("merId") == null || body.getInteger("platformType") == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.OPEN_API_REQ_PARAMS_ERR, ""); } - return ResponseMsgUtil.success(merPlatformNoList); + merPlatformNoService.switchPlatform(body.getLong("merId"),PlatformTypeEnum.getDataByNumber(body.getInteger("platformType"))); + return ResponseMsgUtil.success("操作成功"); } catch (Exception e) { log.error(e.getMessage(), e); diff --git a/cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java b/cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java index 8bee99f..027e97b 100644 --- a/cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java +++ b/cweb/src/main/java/com/cweb/controller/BsTradeOrderController.java @@ -5,6 +5,7 @@ import com.alipay.api.domain.PayModeModel; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hfkj.channel.lakala.LaKaLaTradeService; +import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorHelp; import com.hfkj.common.exception.SysCode; @@ -69,9 +70,10 @@ public class BsTradeOrderController { @Resource private BsMerPlatformTermService platformTermService; - @Resource private LaKaLaTradeService laKaLaTradeService; + @Resource + private TianQueTradeService tianQueTradeService; @RequestMapping(value="/calculation",method = RequestMethod.GET) @ResponseBody @@ -393,10 +395,10 @@ public class BsTradeOrderController { } } - @RequestMapping(value="/getLkLUnionUserId",method = RequestMethod.POST) + @RequestMapping(value="/getUnionUserId",method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "获取拉卡拉银联用户id") - public ResponseData getLkLUnionUserId(@RequestBody JSONObject body) { + public ResponseData getUnionUserId(@RequestBody JSONObject body) { try { System.out.println(body); if (body == null @@ -419,28 +421,54 @@ public class BsTradeOrderController { log.error("BsPayQrCodeController error!","支付码已被停用"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "支付码已被停用"); } - // 查询商户号 - BsMerPlatformNo platformNo = platformNoService.getPlatformNo(qrCode.getMerId(), PlatformTypeEnum.type1); - if (platformNo == null) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户号"); - } - // 查询终端号 - BsMerPlatformTerm merPlatformTerm = platformTermService.getMerPlatformTerm(platformNo.getId(), "WECHAT_PAY"); - if (merPlatformTerm == null) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户终端号"); - } - return ResponseMsgUtil.success(laKaLaTradeService.openidQuery( - platformNo.getCupNo(), - merPlatformTerm.getTermNo(), - body.getString("userAuthCode"), - "030304", - null, - body.getString("appUpIdentifier") - )); + BsMerPlatformNo platform = platformNoService.getCurrentPlatform(qrCode.getMerId()); + if (platform == null) { + log.error("BsPayQrCodeController error!","商户无法支付,未配置支付平台"); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户无法支付,未配置支付平台"); + } + if (platform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { + // 查询商户号 + BsMerPlatformNo platformNo = platformNoService.getPlatformNo(qrCode.getMerId(), PlatformTypeEnum.type1); + if (platformNo == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户号"); + } + // 查询终端号 + BsMerPlatformTerm merPlatformTerm = platformTermService.getMerPlatformTerm(platformNo.getId(), "WECHAT_PAY"); + if (merPlatformTerm == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户终端号"); + } + return ResponseMsgUtil.success(laKaLaTradeService.openidQuery( + platformNo.getCupNo(), + merPlatformTerm.getTermNo(), + body.getString("userAuthCode"), + "030304", + null, + body.getString("appUpIdentifier") + )); + + } else if (platform.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())) { + JSONObject unionInfo = tianQueTradeService.getUnionInfo(body.getString("userAuthCode"), body.getString("appUpIdentifier")); + // 返回格式 + Map param = new HashMap<>(); + param.put("retCode","BBS00000"); + param.put("resMsg","处理成功"); + + Map respData = new HashMap<>(); + respData.put("openld", unionInfo.getString("data")); + respData.put("subOpenld", unionInfo.getString("data")); + respData.put("userld", unionInfo.getString("data")); + + param.put("respData", respData); + return ResponseMsgUtil.success(param); + + } else { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的平台"); + } } catch (Exception e) { log.error(e.getMessage(), e); return ResponseMsgUtil.exception(e); } } + } diff --git a/cweb/src/main/java/com/cweb/controller/PayController.java b/cweb/src/main/java/com/cweb/controller/PayController.java index dbd3a40..7097c14 100644 --- a/cweb/src/main/java/com/cweb/controller/PayController.java +++ b/cweb/src/main/java/com/cweb/controller/PayController.java @@ -2,18 +2,21 @@ package com.cweb.controller; import com.alibaba.fastjson.JSONObject; import com.hfkj.channel.ccb.CCBTradeService; +import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.channel.weixin.WeiXinPayService; import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorHelp; import com.hfkj.common.exception.SysCode; import com.hfkj.common.utils.ResponseMsgUtil; +import com.hfkj.entity.BsMerPlatformNo; import com.hfkj.entity.BsPlatform; import com.hfkj.channel.lakala.LaKaLaTradeService; +import com.hfkj.entity.BsTradeOrder; import com.hfkj.model.ResponseData; +import com.hfkj.service.BsMerPlatformNoService; import com.hfkj.service.BsPlatformService; -import com.hfkj.sysenum.PlatformTypeEnum; -import com.hfkj.sysenum.StoreDiscountActivityTypeEnum; -import com.hfkj.sysenum.UserDiscountTypeEnum; +import com.hfkj.service.BsTradeOrderService; +import com.hfkj.sysenum.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.MapUtils; @@ -34,18 +37,18 @@ import java.util.Map; public class PayController { private static Logger log = LoggerFactory.getLogger(PayController.class); - @Resource - private BsPlatformService platformService; - + private BsTradeOrderService tradeOrderService; @Resource private LaKaLaTradeService laKaLaTradeService; - + @Resource + private TianQueTradeService tianQueTradeService; @Resource private WeiXinPayService weiXinPayService; - @Resource private CCBTradeService ccbTradeService; + @Resource + private BsMerPlatformNoService merPlatformNoService; @RequestMapping(value="/microPay",method = RequestMethod.POST) @ResponseBody @@ -59,34 +62,28 @@ public class PayController { log.error("configStore error!","参数错误"); throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); } - - // 查询当前支付 - List platformList = platformService.getPlatformList(); - for (BsPlatform platform : platformList) { - - if (platform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { - try { - Map order = laKaLaTradeService.microPay(body.getString("outTradeNo"), body.getString("authCode")); - if (StringUtils.isNotBlank(MapUtils.getString(order, "order"))) { - return ResponseMsgUtil.success(order); - } - } catch (Exception e) { - log.error("拉卡拉支付失败", e.getMessage()); - } - } - - - if (platform.getPlatformType().equals(PlatformTypeEnum.type3.getNumber())) { - try { - Map order = ccbTradeService.b2cPay(body.getString("outTradeNo"), body.getString("authCode")); - if (StringUtils.isNotBlank(MapUtils.getString(order, "order"))) { - return ResponseMsgUtil.success(order); - } - } catch (Exception e) { - log.error("建行支付失败", e.getMessage()); + // 查询交易 + BsTradeOrder trade = tradeOrderService.getOrderByOutTradeNo(body.getString("outTradeNo")); + if (trade == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + if (!trade.getStatus().equals(TradeOrderStatusEnum.status1.getNumber())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单不处于待支付状态"); + } + // 查询交易渠道 + BsMerPlatformNo merPlatform = merPlatformNoService.getCurrentPlatform(trade.getMerId()); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知交易渠道"); + } + if (merPlatform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { + try { + Map order = laKaLaTradeService.microPay(body.getString("outTradeNo"), body.getString("authCode")); + if (StringUtils.isNotBlank(MapUtils.getString(order, "order"))) { + return ResponseMsgUtil.success(order); } + } catch (Exception e) { + log.error("拉卡拉支付失败", e.getMessage()); } - } throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "支付失败"); @@ -105,25 +102,41 @@ public class PayController { log.error("configStore error!","参数错误"); throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); } - - // return ResponseMsgUtil.success(weiXinPayService.preorder(body.getString("outTradeNo"))); - // 查询当前支付 - List platformList = platformService.getPlatformList(); - for (BsPlatform platform : platformList) { - - if (platform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { - try { - Map order = laKaLaTradeService.preorder(body.getString("outTradeNo")); - if (StringUtils.isNotBlank(MapUtils.getString(order, "order"))) { - return ResponseMsgUtil.success(order); - } - } catch (Exception e) { - log.error("拉卡拉支付失败", e.getMessage()); - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, e.getMessage()); + // 查询交易 + BsTradeOrder trade = tradeOrderService.getOrderByOutTradeNo(body.getString("outTradeNo")); + if (trade == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + if (!trade.getStatus().equals(TradeOrderStatusEnum.status1.getNumber())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单不处于待支付状态"); + } + // 查询交易渠道 + BsMerPlatformNo merPlatform = merPlatformNoService.getCurrentPlatform(trade.getMerId()); + if (merPlatform == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知交易渠道"); + } + if (merPlatform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { + try { + Map order = laKaLaTradeService.preorder(body.getString("outTradeNo")); + if (StringUtils.isNotBlank(MapUtils.getString(order, "order"))) { + return ResponseMsgUtil.success(order); } + } catch (Exception e) { + log.error("拉卡拉支付失败", e.getMessage()); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, e.getMessage()); + } + } else if (merPlatform.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())) { + try { + Map order = tianQueTradeService.preorder(body.getString("outTradeNo")); + if (StringUtils.isNotBlank(MapUtils.getString(order, "order"))) { + return ResponseMsgUtil.success(order); + } + } catch (Exception e) { + log.error("随行付支付失败", e.getMessage()); + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, e.getMessage()); } - } + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "支付失败"); } catch (Exception e) { diff --git a/cweb/src/main/java/com/cweb/controller/TestController.java b/cweb/src/main/java/com/cweb/controller/TestController.java index 92a23c8..7387f3e 100644 --- a/cweb/src/main/java/com/cweb/controller/TestController.java +++ b/cweb/src/main/java/com/cweb/controller/TestController.java @@ -11,7 +11,9 @@ import com.hfkj.channel.saas.SaasActivityService; import com.hfkj.channel.saas.SaasMerService; import com.hfkj.channel.saas.utils.SaasCommon; import com.hfkj.channel.saas.utils.SaasMerRequest; +import com.hfkj.channel.tianque.service.TianQueMerElecSignService; import com.hfkj.channel.tianque.service.TianQueMerService; +import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.channel.weixin.WeiXinMerService; import com.hfkj.channel.weixin.utils.WxUtils; import com.hfkj.channel.weixin.utils.sdk.WXPayConstants; @@ -97,6 +99,9 @@ public class TestController { @Resource private LaKaLaLedgerService laKaLaLedgerService; + @Resource + private BsMerContractService merContractService; + @Resource private LaKaLaWalletService laKaLaWalletService; @@ -247,6 +252,10 @@ public class TestController { @Resource private TianQueMerService tianQueMerService; + @Resource + private TianQueTradeService tianQueTradeService; + @Resource + private TianQueMerElecSignService tianQueMerElecSignService; @RequestMapping(value="/tianQueTest",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "tianQueTest") @@ -254,7 +263,11 @@ public class TestController { try { // tianQueMerService.addMer(Long.parseLong(code)); return ResponseMsgUtil.success(tianQueMerService.queryMerchantInfo(code)); - // return ResponseMsgUtil.success(laKaLaTradeService.queryTrade(code)); + // return ResponseMsgUtil.success(tianQueTradeService.preorder(code)); + // return ResponseMsgUtil.success(tianQueTradeService.queryTrade(code)); + // return ResponseMsgUtil.success(tianQueTradeService.poundageQuery("399200427027644",code)); + // return ResponseMsgUtil.success(tianQueTradeService.refund(code, new BigDecimal("0.01"))); + // return ResponseMsgUtil.success(tianQueTradeService.refundQuery(code)); // return ResponseMsgUtil.success(""); // 1200 // return ResponseMsgUtil.success(saasCommon.fileUpload(new HashMap<>())); @@ -729,13 +742,13 @@ public class TestController { public ResponseData uniPush(@RequestParam(name = "storeId", required = true) Long storeId,@RequestParam(name = "price", required = true) BigDecimal price) { try { - - + // merContractService.addMerContract(storeId, null); + // tianQueMerService.queryMerchantInfo("75a7161a441f49568b55bca14c03e743"); JSONObject object = new JSONObject(); - +/* object.put("price", price); object.put("storeId", storeId); - bsStoreCidService.storePush(object); + bsStoreCidService.storePush(object);*/ return ResponseMsgUtil.success("成功"); diff --git a/cweb/src/main/java/com/cweb/notify/TianQueController.java b/cweb/src/main/java/com/cweb/notify/TianQueController.java index 69e99f8..a09cdce 100644 --- a/cweb/src/main/java/com/cweb/notify/TianQueController.java +++ b/cweb/src/main/java/com/cweb/notify/TianQueController.java @@ -1,9 +1,11 @@ package com.cweb.notify; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.hfkj.channel.lakala.LaKaLaLedgerService; import com.hfkj.channel.lakala.LaKaLaWalletService; import com.hfkj.channel.tianque.service.TianQueMerElecSignService; +import com.hfkj.common.utils.DateUtil; import com.hfkj.config.CommonSysConst; import com.hfkj.entity.*; import com.hfkj.service.*; @@ -22,6 +24,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.BufferedOutputStream; import java.math.BigDecimal; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -46,6 +49,8 @@ public class TianQueController { @Resource private BsMerPlatformNoService merPlatformNoService; @Resource + private BsMerPlatformTermService merPlatformTermService; + @Resource private BsStoreService storeService; @Resource private BsMerContractRecordService merContractRecordService; @@ -65,55 +70,40 @@ public class TianQueController { JSONObject body = JSONObject.parseObject(reqBody); // 请求记录 BsTradeOrderMsg orderMsg = new BsTradeOrderMsg(); - orderMsg.setOutTradeNo(body.getString("out_trade_no")); + orderMsg.setOutTradeNo(body.getString("ordNo")); orderMsg.setType(TradeOrderMsgTypeEnum.type2.getNumber()); orderMsg.setResponseContent(reqBody); tradeOrderMsgService.editTradeOrderMsg(orderMsg); // 查询订单 - BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(body.getString("out_trade_no")); + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(body.getString("ordNo")); if (order != null) { Map other = new HashMap<>(); - other.put("log_no", body.getString("log_no")); - other.put("acc_trade_no", body.getString("acc_trade_no")); - other.put("card_type", body.getString("card_type")); + other.put("acc_trade_no", body.getString("transactionId")); + other.put("card_type", body.getString("drType")); if (body.getString("acc_settle_amount") != null) { - other.put("acc_settle_amount", body.getBigDecimal("acc_settle_amount").divide(new BigDecimal("100"))); + other.put("acc_settle_amount", body.getBigDecimal("amt")); + } + if (body.getString("pointAmount") != null) { + other.put("acc_discount_amount", body.getBigDecimal("pointAmount")); } - if (body.getString("acc_discount_amount") != null) { - other.put("acc_discount_amount", body.getBigDecimal("acc_discount_amount").divide(new BigDecimal("100"))); + if (body.getString("clearDt") != null) { + other.put("settleDate", DateUtil.format(body.getString("clearDt"), "yyyyMMdd").getTime()); } - if (body.getString("acc_mdiscount_amount") != null) { - other.put("acc_mdiscount_amount", body.getBigDecimal("acc_mdiscount_amount").divide(new BigDecimal("100"))); + if (body.getString("settleAmt") != null) { + other.put("settleAmount", body.getBigDecimal("settleAmt")); } tradeOrderService.paySuccess( - body.getString("out_trade_no"), - body.getString("trade_no"), - PlatformTypeEnum.type1, - TradeOrderPayModeEnum.getNameByCode(body.getString("account_type")), - body.getBigDecimal("total_amount").divide(new BigDecimal("100")), - body.getString("merchant_no"), + body.getString("ordNo"), + body.getString("uuid"), + PlatformTypeEnum.type5, + TradeOrderPayModeEnum.getNameByCode(body.getString("payType")), + body.getBigDecimal("totalOffstAmt"), + body.getString("mno"), other ); - -/* order.setPayMode(body.getString("account_type")); - order.setPlatformType(PlatformTypeEnum.type1.getNumber()); - order.setPlatformTradeNo(body.getString("trade_no")); - order.setPlatformLogNo(body.getString("log_no")); - order.setAccTradeNo(body.getString("acc_trade_no")); - order.setTradeActualAmount(body.getBigDecimal("payer_amount").divide(new BigDecimal("100"))); - order.setCardType(body.getString("card_type")); - order.setStatus(TradeOrderStatusEnum.status3.getNumber()); - order.setPayTime(new Date()); - if (body.getString("acc_discount_amount") != null) { - order.setAccDiscountAmount(body.getBigDecimal("acc_discount_amount").divide(new BigDecimal("100"))); - } - if (body.getString("acc_mdiscount_amount") != null) { - order.setAccMdiscountAmount(body.getBigDecimal("acc_mdiscount_amount").divide(new BigDecimal("100"))); - } - tradeOrderService.editOrder(order);*/ } } catch (Exception e) { @@ -122,8 +112,8 @@ public class TianQueController { try { BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); JSONObject result = new JSONObject(); - result.put("code", "SUCCESS"); - result.put("message", "执行成功"); + result.put("code", "success"); + result.put("message", "成功"); out.write(result.toJSONString().getBytes()); out.flush(); out.close(); @@ -134,7 +124,7 @@ public class TianQueController { } } - @RequestMapping(value="/applyLedgerMer",method = RequestMethod.POST) + @RequestMapping(value="/merInbound",method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "商户进件通知") public void merInbound(@RequestBody String reqBody, HttpServletResponse response) { @@ -144,8 +134,8 @@ public class TianQueController { JSONObject respData = JSONObject.parseObject(reqBody); - BsMerContractRecord merContractRecord = merContractRecordService.getRecordByOrderNo(respData.getString("applicationId")); - if (merContractRecord != null) { + BsMerContractRecord merContractRecord = merContractRecordService.getRecordByContractId(respData.getString("applicationId")); + if (merContractRecord != null && merContractRecord.getStatus().equals(1)) { // 审核状态,枚举值 取值范围:1 入驻通过 2 入驻驳回 5 商户修改通过 6 商户修改驳回 if (respData.getString("taskStatus").equals("1") || respData.getString("taskStatus").equals("5")) { merContractRecord.setStatus(2); @@ -158,12 +148,13 @@ public class TianQueController { merContractRecordMsg.setOrderNo(merContractRecord.getOrderNo()); merContractRecordMsg.setType(1); merContractRecordMsg.setResponseCode(merContractRecord.getStatus().equals(2)?"SUCCESS":"REJECT"); + merContractRecordMsg.setResponseContent(reqBody); merContractRecordMsg.setResponseMsg(respData.getString("suggestion")); merContractRecordMsgService.insertRecordMsg(merContractRecordMsg); // 查询商户 BsMer mer = merService.getMer(merContractRecord.getMerId()); - if (mer != null && mer.getMerStatus().equals(MerStatusEnum.status3.getNumber())) { + if (mer != null) { if (merContractRecord.getStatus().equals(2)) { mer.setMerStatus(MerStatusEnum.status1.getNumber()); merService.editMer(mer); @@ -175,18 +166,32 @@ public class TianQueController { storeService.editStore(store); } - BsMerPlatformNo merPlatformNo = merPlatformNoService.getPlatformNo(mer.getId(), PlatformTypeEnum.type5); + BsMerPlatformNo merPlatformNo = merPlatformNoService.getPlatformNo(mer.getId(), PlatformTypeEnum.type5, MerPlatformNoStatusEnum.status2); if (merPlatformNo != null) { merPlatformNo.setStatus(MerPlatformNoStatusEnum.status1.getNumber()); merPlatformNoService.editMerPlatformNo(merPlatformNo); } + JSONArray repoInfoArray = respData.getJSONArray("repoInfo"); + for (Object obj : repoInfoArray) { + JSONObject repoInfo = (JSONObject) obj; + BsMerPlatformTerm merPlatformTerm = new BsMerPlatformTerm(); + merPlatformTerm.setMerPlatformNoId(merPlatformNo.getId()); + merPlatformTerm.setMerId(merPlatformNo.getMerId()); + merPlatformTerm.setBusiTypeCode(repoInfo.getString("childNoType")); + merPlatformTerm.setBusiTypeName(repoInfo.getString("childNoType")); + merPlatformTerm.setShopId(repoInfo.getString("channelId")); + merPlatformTerm.setTermNo(repoInfo.getString("childNo")); + merPlatformTermService.editMerPlatformTerm(merPlatformTerm); + } // 签署协议 tianQueMerElecSignService.openElecSignature(respData.getString("mno")); } else { - mer.setMerStatus(MerStatusEnum.status4.getNumber()); - merService.editMer(mer); + if (mer.getMerStatus().intValue() != MerStatusEnum.status1.getNumber().intValue()) { + mer.setMerStatus(MerStatusEnum.status4.getNumber()); + merService.editMer(mer); + } List storeList = storeService.getStoreByMerId(mer.getId(), StoreCreateTypeEnum.type1); if (storeList.size() > 0) { @@ -195,7 +200,7 @@ public class TianQueController { storeService.editStore(store); } - BsMerPlatformNo merPlatformNo = merPlatformNoService.getPlatformNo(mer.getId(), PlatformTypeEnum.type5); + BsMerPlatformNo merPlatformNo = merPlatformNoService.getPlatformNo(mer.getId(), PlatformTypeEnum.type5,MerPlatformNoStatusEnum.status2); if (merPlatformNo != null) { merPlatformNo.setStatus(MerPlatformNoStatusEnum.status3.getNumber()); merPlatformNo.setSuggestionReject(respData.getString("suggestion")); diff --git a/open-api/src/main/java/com/api/controller/v1/NotifyController.java b/open-api/src/main/java/com/api/controller/v1/NotifyController.java index 241117a..9c064df 100644 --- a/open-api/src/main/java/com/api/controller/v1/NotifyController.java +++ b/open-api/src/main/java/com/api/controller/v1/NotifyController.java @@ -1,6 +1,7 @@ package com.api.controller.v1; import com.alibaba.fastjson.JSONObject; +import com.hfkj.common.utils.DateUtil; import com.hfkj.common.utils.HttpsUtils; import com.hfkj.entity.BsTradeOrder; import com.hfkj.openapi.v1.model.response.ResponseQueryTradeModel; @@ -119,4 +120,86 @@ public class NotifyController { } } + @RequestMapping(value="/tianque",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "天阙【随行付】交易通知") + public void tianque(@RequestBody String reqBody, HttpServletResponse response) { + try { + log.info("========= Start 天阙【随行付】交易通知 Start ==========="); + log.info("平台接收天阙【随行付】交易通知:" + reqBody); + System.out.println(reqBody); + + JSONObject body = JSONObject.parseObject(reqBody); + // 查询订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(body.getString("ordNo")); + if (order != null && order.getStatus().equals(TradeOrderStatusEnum.status1.getNumber())) { + Map other = new HashMap<>(); + other.put("acc_trade_no", body.getString("transactionId")); + other.put("card_type", body.getString("drType")); + + if (body.getString("acc_settle_amount") != null) { + other.put("acc_settle_amount", body.getBigDecimal("amt")); + } + if (body.getString("pointAmount") != null) { + other.put("acc_discount_amount", body.getBigDecimal("pointAmount")); + } + if (body.getString("clearDt") != null) { + other.put("settleDate", DateUtil.format(body.getString("clearDt"), "yyyyMMdd").getTime()); + } + if (body.getString("settleAmt") != null) { + other.put("settleAmount", body.getBigDecimal("settleAmt")); + } + tradeOrderService.paySuccess( + body.getString("ordNo"), + body.getString("uuid"), + PlatformTypeEnum.type5, + TradeOrderPayModeEnum.getNameByCode(body.getString("payType")), + body.getBigDecimal("totalOffstAmt"), + body.getString("mno"), + other + ); + } + + if (StringUtils.isNotBlank(order.getPayNotifyUrl())) { + BsTradeOrder tradeOrder = openApiTradeOrderService.getOrderByOutTradeNo(order.getOutTradeNo()); + ResponseQueryTradeModel responseQueryTradeModel = new ResponseQueryTradeModel(); + responseQueryTradeModel.setMerchantNo(tradeOrder.getMerNo()); + responseQueryTradeModel.setOutTradeNo(tradeOrder.getOutTradeNo()); + responseQueryTradeModel.setAccTradeNo(tradeOrder.getAccTradeNo()); + responseQueryTradeModel.setUserId(tradeOrder.getPayUserId()); + responseQueryTradeModel.setPayMode(tradeOrder.getPayMode()); + responseQueryTradeModel.setTradeAmount(tradeOrder.getTradeAmount()); + responseQueryTradeModel.setTradeActualAmount(tradeOrder.getTradeActualAmount()); + responseQueryTradeModel.setStatus(tradeOrder.getStatus()); + responseQueryTradeModel.setCreateTime(tradeOrder.getCreateTime()); + responseQueryTradeModel.setPayTime(tradeOrder.getPayTime()); + responseQueryTradeModel.setAttach(tradeOrder.getAttach()); + responseQueryTradeModel.setSign(SignatureUtil.createSign(responseQueryTradeModel, merKeyService.getKeyByMerNo(tradeOrder.getMerNo()))); + + log.info("发送URL:" + order.getPayNotifyUrl()); + log.info("发送参数:" + JSONObject.toJSONString(responseQueryTradeModel)); + JSONObject result = HttpsUtils.doPost(order.getPayNotifyUrl(), JSONObject.toJSONString(responseQueryTradeModel)); + if (result != null) { + log.info("响应参数:" + result); + if (result.getString("code").equals("SUCCESS") + && result.getString("message").equals("执行成功")) { + result.put("code", "success"); + result.put("message", "成功"); + BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); + out.write(result.toJSONString().getBytes()); + out.flush(); + out.close(); + } + } else { + log.info("响应参数:null"); + } + } + + } catch (Exception e) { + log.info("出现异常", e); + } finally { + log.info("========= END 天阙【随行付】交易通知 END ==========="); + } + } + } diff --git a/open-api/src/main/resources/dev/application.yml b/open-api/src/main/resources/dev/application.yml index 2963541..ed2f5e7 100644 --- a/open-api/src/main/resources/dev/application.yml +++ b/open-api/src/main/resources/dev/application.yml @@ -9,7 +9,7 @@ debug: false #datasource数据源设置 spring: datasource: - url: jdbc:mysql://139.9.154.68:3306/gratia_pay_prod?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false + url: jdbc:mysql://139.9.154.68:3306/gratia_pay?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false username: root password: HF123456. type: com.alibaba.druid.pool.DruidDataSource diff --git a/schedule/src/main/java/com/hfkj/schedule/Merchant.java b/schedule/src/main/java/com/hfkj/schedule/Merchant.java index fbb6db4..0e23c46 100644 --- a/schedule/src/main/java/com/hfkj/schedule/Merchant.java +++ b/schedule/src/main/java/com/hfkj/schedule/Merchant.java @@ -192,9 +192,9 @@ public class Merchant { for (BsMerContractRecord contractRecord : list) { try { BsMer mer = merService.getMer(contractRecord.getMerId()); - if (mer != null && mer.getMerStatus().equals(MerStatusEnum.status3.getNumber())) { + if (mer != null) { if (contractRecord.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { - BsMerPlatformNo platform = merPlatformNoService.getPlatformNo(mer.getId(), PlatformTypeEnum.type1); + BsMerPlatformNo platform = merPlatformNoService.getPlatformNo(mer.getId(), PlatformTypeEnum.type1, MerPlatformNoStatusEnum.status2); if (platform != null) { JSONObject merchantInfo = saasMerService.merchantInfo(platform.getPlatformNo()); // 查询申请记录 @@ -219,6 +219,7 @@ public class Merchant { store.setStatus(StoreStatusEnum.status2.getNumber()); storeService.editStore(store); } + platform.setStatus(MerPlatformNoStatusEnum.status1.getNumber()); platform.setCupNo(customer.getString("externalCustomerNo")); merPlatformNoService.editMerPlatformNo(platform); @@ -271,11 +272,18 @@ public class Merchant { laKaLaLedgerService.applyLedgerReceiver(merLedger.getMerId()); } } else if (customer.getString("customerStatus").equals("REJECT")) { + contractRecord.setStatus(3); merContractRecordService.updateRecord(contractRecord); - mer.setMerStatus(MerStatusEnum.status4.getNumber()); - merService.editMer(mer); + if (!mer.getMerStatus().equals(MerStatusEnum.status1.getNumber())) { + mer.setMerStatus(MerStatusEnum.status4.getNumber()); + merService.editMer(mer); + } + + platform.setStatus(MerPlatformNoStatusEnum.status3.getNumber()); + platform.setSuggestionReject(customer.getString("auditRemark")); + merPlatformNoService.editMerPlatformNo(platform); BsMerContractRecordMsg merContractRecordMsg = new BsMerContractRecordMsg(); merContractRecordMsg.setOrderNo(contractRecord.getOrderNo()); diff --git a/schedule/src/main/java/com/hfkj/schedule/TradeOrderSchedule.java b/schedule/src/main/java/com/hfkj/schedule/TradeOrderSchedule.java index b313d88..695575a 100644 --- a/schedule/src/main/java/com/hfkj/schedule/TradeOrderSchedule.java +++ b/schedule/src/main/java/com/hfkj/schedule/TradeOrderSchedule.java @@ -3,6 +3,7 @@ package com.hfkj.schedule; import com.alibaba.fastjson.JSONObject; import com.hfkj.channel.lakala.LaKaLaTradeSeparateService; import com.hfkj.channel.lakala.LaKaLaTradeService; +import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.channel.weixin.utils.WxOrderConfig; import com.hfkj.common.utils.DateUtil; import com.hfkj.entity.*; @@ -41,6 +42,8 @@ public class TradeOrderSchedule { @Resource private LaKaLaTradeService laKaLaTradeService; @Resource + private TianQueTradeService tianQueTradeService; + @Resource private BsTradeSettleService tradeSettleService; /** @@ -259,7 +262,7 @@ public class TradeOrderSchedule { public void tradeOrderSettle() { Map param = new HashMap<>(); param.put("statusList", "3,6"); - param.put("settleAmountIsNull", true); + param.put("shdFeeAmtIsNull", true); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -2); @@ -268,13 +271,50 @@ public class TradeOrderSchedule { List tradeOrderList = tradeOrderService.getTradeOrderList(param); for (BsTradeOrder tradeOrder : tradeOrderList) { try { - // 查询手续费 - JSONObject queryTrans = laKaLaTradeService.queryTradeOrderTrans(tradeOrder.getOutTradeNo()); - if (queryTrans != null && queryTrans.getString("trade_state").equals("03")) { - tradeOrder.setShdFeeAmt(queryTrans.getBigDecimal("fee_amount")); - tradeOrder.setSettleAmount(new BigDecimal(queryTrans.getString("settle_amount").replace(",",""))); - tradeOrder.setSettleDate(queryTrans.getDate("clear_date")); - tradeOrder.setFeeRate(new BigDecimal(queryTrans.getString("fee_rate").split(",")[0])); + if (tradeOrder.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { + // 查询手续费 + JSONObject queryTrans = laKaLaTradeService.queryTradeOrderTrans(tradeOrder.getOutTradeNo()); + if (queryTrans != null && queryTrans.getString("trade_state").equals("03")) { + tradeOrder.setShdFeeAmt(queryTrans.getBigDecimal("fee_amount")); + tradeOrder.setSettleAmount(new BigDecimal(queryTrans.getString("settle_amount").replace(",",""))); + tradeOrder.setSettleDate(queryTrans.getDate("clear_date")); + tradeOrder.setFeeRate(new BigDecimal(queryTrans.getString("fee_rate").split(",")[0])); + tradeOrderService.editOrder(tradeOrder); + + BsTradeSettle tradeSettle = new BsTradeSettle(); + tradeSettle.setCompanyId(tradeOrder.getCompanyId()); + tradeSettle.setAgentId(tradeOrder.getAgentId()); + tradeSettle.setSalesmanId(tradeOrder.getSalesmanId()); + tradeSettle.setSalesmanName(tradeOrder.getSalesmanName()); + tradeSettle.setMerId(tradeOrder.getMerId()); + tradeSettle.setMerNo(tradeOrder.getMerNo()); + tradeSettle.setMerName(tradeOrder.getMerName()); + tradeSettle.setMerAbbreviate(tradeOrder.getMerAbbreviate()); + tradeSettle.setStoreId(tradeOrder.getStoreId()); + tradeSettle.setStoreName(tradeOrder.getStoreName()); + tradeSettle.setPlatformType(tradeOrder.getPlatformType()); + tradeSettle.setPlatformMerNo(tradeOrder.getPlatformMerNo()); + tradeSettle.setPlatformTradeNo(tradeOrder.getPlatformTradeNo()); + tradeSettle.setPlatformLogNo(tradeOrder.getPlatformLogNo()); + tradeSettle.setPayMode(tradeOrder.getPayMode()); + tradeSettle.setOutTradeNo(tradeOrder.getOutTradeNo()); + tradeSettle.setAccTradeNo(tradeOrder.getAccTradeNo()); + tradeSettle.setTradeAmount(tradeOrder.getAccSettleAmount()); + tradeSettle.setTradeType(TradeSettleTradeType.type1.getNumber()); + tradeSettle.setSettleAmount(tradeOrder.getAccSettleAmount()); + tradeSettle.setTradeTime(tradeOrder.getPayTime()); + tradeSettle.setShdFeeAmt(tradeOrder.getShdFeeAmt()); + tradeSettle.setSettleAmount(tradeOrder.getSettleAmount()); + tradeSettle.setSettleDate(tradeOrder.getSettleDate()); + tradeSettle.setFeeRate(tradeOrder.getFeeRate()); + tradeSettleService.editData(tradeSettle); + } + + } else if (tradeOrder.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())) { + // 查询手续费 + JSONObject queryTrans = tianQueTradeService.poundageQuery(tradeOrder.getPlatformMerNo(), tradeOrder.getOutTradeNo()); + tradeOrder.setShdFeeAmt(queryTrans.getBigDecimal("recFeeAmt")); + tradeOrder.setFeeRate(new BigDecimal(queryTrans.getString("recFeeRate"))); tradeOrderService.editOrder(tradeOrder); BsTradeSettle tradeSettle = new BsTradeSettle(); @@ -319,59 +359,100 @@ public class TradeOrderSchedule { public void tradeOrderRefundSettle() { Map param = new HashMap<>(); param.put("status", TradeOrderRefundStatusEnum.status2.getNumber()); - param.put("settleAmountIsNull", true); + param.put("shdFeeAmtIsNull", true); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -2); param.put("payTimeS", calendar.getTimeInMillis()); List tradeOrderRefundList = tradeOrderRefundService.getRefundList(param); - for (BsTradeOrderRefund tradeOrderRefund : tradeOrderRefundList) { try { // 查询交易 BsTradeOrder tradeOrder = tradeOrderService.getOrderByOutTradeNo(tradeOrderRefund.getOutTradeNo()); if (tradeOrder != null && tradeOrder.getSettleAmount() != null) { - // 查询手续费 - JSONObject queryTrans = laKaLaTradeService.queryTradeOrderRefundTrans(tradeOrderRefund.getRefundNo()); - if (queryTrans != null) { - tradeOrderRefund.setShdFeeAmt(new BigDecimal(queryTrans.getString("fee_amount").replace("-",""))); - tradeOrderRefund.setSettleAmount(new BigDecimal(queryTrans.getString("settle_amount").replace(",","").replace("-",""))); - tradeOrderRefund.setSettleDate(queryTrans.getDate("clear_date")); - tradeOrderRefundService.editOrderRefund(tradeOrderRefund); + if (tradeOrder.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { + // 查询手续费 + JSONObject queryTrans = laKaLaTradeService.queryTradeOrderRefundTrans(tradeOrderRefund.getRefundNo()); + if (queryTrans != null) { + tradeOrderRefund.setShdFeeAmt(new BigDecimal(queryTrans.getString("fee_amount").replace("-",""))); + tradeOrderRefund.setSettleAmount(new BigDecimal(queryTrans.getString("settle_amount").replace(",","").replace("-",""))); + tradeOrderRefund.setSettleDate(queryTrans.getDate("clear_date")); + tradeOrderRefundService.editOrderRefund(tradeOrderRefund); - BsTradeSettle tradeSettle = new BsTradeSettle(); - tradeSettle.setCompanyId(tradeOrder.getCompanyId()); - tradeSettle.setAgentId(tradeOrder.getAgentId()); - tradeSettle.setSalesmanId(tradeOrder.getSalesmanId()); - tradeSettle.setSalesmanName(tradeOrder.getSalesmanName()); - tradeSettle.setMerId(tradeOrder.getMerId()); - tradeSettle.setMerNo(tradeOrder.getMerNo()); - tradeSettle.setMerName(tradeOrder.getMerName()); - tradeSettle.setMerAbbreviate(tradeOrder.getMerAbbreviate()); - tradeSettle.setStoreId(tradeOrder.getStoreId()); - tradeSettle.setStoreName(tradeOrder.getStoreName()); - tradeSettle.setPlatformType(tradeOrder.getPlatformType()); - tradeSettle.setPlatformMerNo(tradeOrder.getPlatformMerNo()); - tradeSettle.setPlatformTradeNo(tradeOrderRefund.getPlatformOrderNo()); - tradeSettle.setPlatformLogNo(tradeOrderRefund.getPlatformLogNo()); - tradeSettle.setPayMode(tradeOrder.getPayMode()); - tradeSettle.setOutTradeNo(tradeOrderRefund.getRefundNo()); - tradeSettle.setAccTradeNo(tradeOrderRefund.getAccTradeNo()); - tradeSettle.setTradeType(TradeSettleTradeType.type2.getNumber()); - tradeSettle.setTradeAmount(tradeOrderRefund.getRefundAmount()); - tradeSettle.setTradeTime(tradeOrderRefund.getRefundTime()); - tradeSettle.setShdFeeAmt(tradeOrderRefund.getShdFeeAmt()); - tradeSettle.setSettleAmount(tradeOrderRefund.getSettleAmount()); - tradeSettle.setSettleDate(tradeOrderRefund.getSettleDate()); - tradeSettle.setFeeRate(tradeOrder.getFeeRate()); - tradeSettle.setOrgOutTradeNo(tradeOrder.getOutTradeNo()); - tradeSettleService.editData(tradeSettle); + BsTradeSettle tradeSettle = new BsTradeSettle(); + tradeSettle.setCompanyId(tradeOrder.getCompanyId()); + tradeSettle.setAgentId(tradeOrder.getAgentId()); + tradeSettle.setSalesmanId(tradeOrder.getSalesmanId()); + tradeSettle.setSalesmanName(tradeOrder.getSalesmanName()); + tradeSettle.setMerId(tradeOrder.getMerId()); + tradeSettle.setMerNo(tradeOrder.getMerNo()); + tradeSettle.setMerName(tradeOrder.getMerName()); + tradeSettle.setMerAbbreviate(tradeOrder.getMerAbbreviate()); + tradeSettle.setStoreId(tradeOrder.getStoreId()); + tradeSettle.setStoreName(tradeOrder.getStoreName()); + tradeSettle.setPlatformType(tradeOrder.getPlatformType()); + tradeSettle.setPlatformMerNo(tradeOrder.getPlatformMerNo()); + tradeSettle.setPlatformTradeNo(tradeOrderRefund.getPlatformOrderNo()); + tradeSettle.setPlatformLogNo(tradeOrderRefund.getPlatformLogNo()); + tradeSettle.setPayMode(tradeOrder.getPayMode()); + tradeSettle.setOutTradeNo(tradeOrderRefund.getRefundNo()); + tradeSettle.setAccTradeNo(tradeOrderRefund.getAccTradeNo()); + tradeSettle.setTradeType(TradeSettleTradeType.type2.getNumber()); + tradeSettle.setTradeAmount(tradeOrderRefund.getRefundAmount()); + tradeSettle.setTradeTime(tradeOrderRefund.getRefundTime()); + tradeSettle.setShdFeeAmt(tradeOrderRefund.getShdFeeAmt()); + tradeSettle.setSettleAmount(tradeOrderRefund.getSettleAmount()); + tradeSettle.setSettleDate(tradeOrderRefund.getSettleDate()); + tradeSettle.setFeeRate(tradeOrder.getFeeRate()); + tradeSettle.setOrgOutTradeNo(tradeOrder.getOutTradeNo()); + tradeSettleService.editData(tradeSettle); - tradeOrder.setShdFeeAmt(tradeOrder.getShdFeeAmt().subtract(tradeOrderRefund.getShdFeeAmt())); - tradeOrder.setSettleAmount(tradeOrder.getSettleAmount().subtract(tradeOrderRefund.getSettleAmount())); - tradeOrderService.editOrder(tradeOrder); + tradeOrder.setShdFeeAmt(tradeOrder.getShdFeeAmt().subtract(tradeOrderRefund.getShdFeeAmt())); + tradeOrder.setSettleAmount(tradeOrder.getSettleAmount().subtract(tradeOrderRefund.getSettleAmount())); + tradeOrderService.editOrder(tradeOrder); + } + } else if (tradeOrder.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())) { + // 查询手续费 + JSONObject queryTrans = tianQueTradeService.poundageQuery(tradeOrder.getPlatformMerNo(), tradeOrderRefund.getRefundNo()); + if (queryTrans != null) { + tradeOrderRefund.setShdFeeAmt(new BigDecimal(queryTrans.getString("recFeeAmt"))); + tradeOrderRefundService.editOrderRefund(tradeOrderRefund); + + BsTradeSettle tradeSettle = new BsTradeSettle(); + tradeSettle.setCompanyId(tradeOrder.getCompanyId()); + tradeSettle.setAgentId(tradeOrder.getAgentId()); + tradeSettle.setSalesmanId(tradeOrder.getSalesmanId()); + tradeSettle.setSalesmanName(tradeOrder.getSalesmanName()); + tradeSettle.setMerId(tradeOrder.getMerId()); + tradeSettle.setMerNo(tradeOrder.getMerNo()); + tradeSettle.setMerName(tradeOrder.getMerName()); + tradeSettle.setMerAbbreviate(tradeOrder.getMerAbbreviate()); + tradeSettle.setStoreId(tradeOrder.getStoreId()); + tradeSettle.setStoreName(tradeOrder.getStoreName()); + tradeSettle.setPlatformType(tradeOrder.getPlatformType()); + tradeSettle.setPlatformMerNo(tradeOrder.getPlatformMerNo()); + tradeSettle.setPlatformTradeNo(tradeOrderRefund.getPlatformOrderNo()); + tradeSettle.setPlatformLogNo(tradeOrderRefund.getPlatformLogNo()); + tradeSettle.setPayMode(tradeOrder.getPayMode()); + tradeSettle.setOutTradeNo(tradeOrderRefund.getRefundNo()); + tradeSettle.setAccTradeNo(tradeOrderRefund.getAccTradeNo()); + tradeSettle.setTradeType(TradeSettleTradeType.type2.getNumber()); + tradeSettle.setTradeAmount(tradeOrderRefund.getRefundAmount()); + tradeSettle.setTradeTime(tradeOrderRefund.getRefundTime()); + tradeSettle.setShdFeeAmt(tradeOrderRefund.getShdFeeAmt()); + tradeSettle.setSettleAmount(tradeOrderRefund.getSettleAmount()); + tradeSettle.setSettleDate(tradeOrderRefund.getSettleDate()); + tradeSettle.setFeeRate(tradeOrder.getFeeRate()); + tradeSettle.setOrgOutTradeNo(tradeOrder.getOutTradeNo()); + tradeSettleService.editData(tradeSettle); + + tradeOrder.setShdFeeAmt(tradeOrder.getShdFeeAmt().subtract(tradeOrderRefund.getShdFeeAmt())); + tradeOrder.setSettleAmount(tradeOrder.getSettleAmount().subtract(tradeOrderRefund.getSettleAmount())); + tradeOrderService.editOrder(tradeOrder); + } } + } } catch (Exception e) { System.out.println(e); diff --git a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java index b211856..5035266 100644 --- a/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java +++ b/service/src/main/java/com/hfkj/channel/lakala/LaKaLaTradeService.java @@ -243,6 +243,8 @@ public class LaKaLaTradeService { } else { accBusiFieldsMap.put("sub_appid", order.getPayAppid()); } + } else if (order.getPayMode().equals(TradeOrderPayModeEnum.UQRCODEPAY.getCode())) { + accBusiFieldsMap.put("customerIp", order.getPayAppid()); } accBusiFieldsMap.put("user_id", order.getPayUserId()); map.put("acc_busi_fields", accBusiFieldsMap); @@ -270,7 +272,6 @@ public class LaKaLaTradeService { log.info("响应参数:", JSONObject.toJSONString(responseBody)); orderMsg.setResponseContent(responseBody.toJSONString()); tradeOrderMsgService.editTradeOrderMsg(orderMsg); - if (!responseBody.getString("code").equals("BBS00000")) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, responseBody.getString("msg")); } diff --git a/service/src/main/java/com/hfkj/channel/saas/SaasMerService.java b/service/src/main/java/com/hfkj/channel/saas/SaasMerService.java index dabde7a..411f1d1 100644 --- a/service/src/main/java/com/hfkj/channel/saas/SaasMerService.java +++ b/service/src/main/java/com/hfkj/channel/saas/SaasMerService.java @@ -6,6 +6,7 @@ import com.hfkj.channel.saas.utils.GenerateAgreementUtil; import com.hfkj.channel.saas.utils.RSAUtil; import com.hfkj.channel.saas.utils.SaasCommon; import com.hfkj.channel.saas.utils.SaasMerRequest; +import com.hfkj.common.exception.BaseException; import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorHelp; import com.hfkj.common.exception.SysCode; @@ -60,6 +61,9 @@ public class SaasMerService { @Resource private BsMerPlatformNoService merPlatformNoService; + @Resource + private BsPlatformService platformService; + @Resource private BsMerAttachService merAttachService; @@ -77,212 +81,266 @@ public class SaasMerService { * @param merId * @throws Exception */ - public void addMer(Long merId) throws Exception { + public void addMer(Long merId) { + String resStr = ""; + String reqStr = ""; + BsMerPlatformNo platform = null; + + // 增加进件记录 + BsMerContractRecord record = new BsMerContractRecord(); + record.setMerId(merId); + record.setPlatformType(PlatformTypeEnum.type1.getNumber()); + record.setOrderNo(System.currentTimeMillis()+""); + record.setStatus(1); + merContractRecordService.insertRecord(record); + MerBasisModel basisModel = merService.getMerDetail(merId); + try { + platform = merPlatformNoService.getPlatformNo(merId, PlatformTypeEnum.type1, null); + if (platform != null) { + platform.setStatus(MerPlatformNoStatusEnum.status0.getNumber()); + merPlatformNoService.editMerPlatformNo(platform); + } + BsPlatform currentPlatform = platformService.getCurrentPlatform(); + platform = new BsMerPlatformNo(); + platform.setCompanyId(basisModel.getCompanyId()); + platform.setAgentId(basisModel.getAgentId()); + platform.setMerId(basisModel.getId()); + platform.setMerNo(basisModel.getMerNo()); + platform.setPlatformType(PlatformTypeEnum.type1.getNumber()); + platform.setStatus(MerPlatformNoStatusEnum.status2.getNumber()); + platform.setCurrentPlatform(currentPlatform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())); + merPlatformNoService.editMerPlatformNo(platform); - SecRegion province = commonService.getRegionsById(basisModel.getMerRegion().getProvinceCode()); - if (province == null || StringUtils.isBlank(province.getSaasCode())) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户地址未配置正确,请联系客服!"); - } - SecRegion city = commonService.getRegionsById(basisModel.getMerRegion().getCityCode()); - if (city == null || StringUtils.isBlank(city.getSaasCode())) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户地址未配置正确,请联系客服!"); - } - SecRegion area = commonService.getRegionsById(basisModel.getMerRegion().getAreaCode()); - if (area == null || StringUtils.isBlank(area.getSaasCode())) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户地址未配置正确,请联系客服!"); - } + SecRegion province = commonService.getRegionsById(basisModel.getMerRegion().getProvinceCode()); + if (province == null || StringUtils.isBlank(province.getSaasCode())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户地址未配置正确,请联系客服!"); + } + SecRegion city = commonService.getRegionsById(basisModel.getMerRegion().getCityCode()); + if (city == null || StringUtils.isBlank(city.getSaasCode())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户地址未配置正确,请联系客服!"); + } + SecRegion area = commonService.getRegionsById(basisModel.getMerRegion().getAreaCode()); + if (area == null || StringUtils.isBlank(area.getSaasCode())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户地址未配置正确,请联系客服!"); + } + // 经营内容 + BsIndustry industry = industryService.getDetailById(basisModel.getMerIndustry().getChildId()); + if (industry == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到经营范围"); + } + Map body = new HashMap<>(); + body.put("userNo",basisModel.getOrgNo()); + body.put("email", basisModel.getRegEmail()); + body.put("busiCode", "WECHAT_PAY"); + body.put("merRegName", basisModel.getMerName()); + body.put("merType", basisModel.getMerType().equals(MerTypeEnum.status2.getNumber())?"TP_MERCHANT":"TP_PERSONAL"); + body.put("merName", basisModel.getMerName()); + body.put("merAddr", SaasMerService.dislodge(basisModel.getMerRegion().getAddress())); + body.put("provinceCode", province.getSaasCode()); + body.put("cityCode", city.getSaasCode()); + body.put("countyCode", area.getSaasCode()); + body.put("licenseName", basisModel.getMerName()); + + // 小微商户可不传营业执照信息 + if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { + body.put("licenseNo", basisModel.getBlisNo()); + body.put("licenseDtStart", basisModel.getBlisPeriodStart().replace("年", "-").replace("月", "-").replace("日", "")); + if (basisModel.getBlisPeriodType().equals(2)) { + body.put("licenseDtEnd", "长期有效"); + } else { + body.put("licenseDtEnd", basisModel.getBlisPeriodEnd().replace("年", "-").replace("月", "-").replace("日", "")); + } + } - // 经营内容 - BsIndustry industry = industryService.getDetailById(basisModel.getMerIndustry().getChildId()); - if (industry == null) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到经营范围"); - } - Map body = new HashMap<>(); - body.put("userNo",basisModel.getOrgNo()); - body.put("email", basisModel.getRegEmail()); - body.put("busiCode", "WECHAT_PAY"); - body.put("merRegName", basisModel.getMerName()); - body.put("merType", basisModel.getMerType().equals(MerTypeEnum.status2.getNumber())?"TP_MERCHANT":"TP_PERSONAL"); - body.put("merName", basisModel.getMerName()); - body.put("merAddr", SaasMerService.dislodge(basisModel.getMerRegion().getAddress())); - body.put("provinceCode", province.getSaasCode()); - body.put("cityCode", city.getSaasCode()); - body.put("countyCode", area.getSaasCode()); - body.put("licenseName", basisModel.getMerName()); - - // 小微商户可不传营业执照信息 - if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { - body.put("licenseNo", basisModel.getBlisNo()); - body.put("licenseDtStart", basisModel.getBlisPeriodStart().replace("年", "-").replace("月", "-").replace("日", "")); - if (basisModel.getBlisPeriodType().equals(2)) { - body.put("licenseDtEnd", "长期有效"); + // 法人信息 + body.put("larName", basisModel.getLarName()); + body.put("larIdType", "01"); + body.put("larIdCard", basisModel.getLarIdCard()); + body.put("larIdCardStart", basisModel.getLarIdCardPeriodStart().replace(".", "-")); + if (basisModel.getLarIdCardPeriodType().equals(2)) { + Calendar larIdCardEnd = Calendar.getInstance(); + larIdCardEnd.set(Calendar.YEAR, 2099); + larIdCardEnd.set(Calendar.MONTH, 11); + larIdCardEnd.set(Calendar.DATE , 31); + body.put("larIdCardEnd", DateUtil.date2String(larIdCardEnd.getTime(), "yyyy-MM-dd")); } else { - body.put("licenseDtEnd", basisModel.getBlisPeriodEnd().replace("年", "-").replace("月", "-").replace("日", "")); + body.put("larIdCardEnd", basisModel.getLarIdCardPeriodEnd().replace(".", "-")); } - } + body.put("contactMobile", basisModel.getRegPhone()); + body.put("contactName", basisModel.getRegName()); - // 法人信息 - body.put("larName", basisModel.getLarName()); - body.put("larIdType", "01"); - body.put("larIdCard", basisModel.getLarIdCard()); - body.put("larIdCardStart", basisModel.getLarIdCardPeriodStart().replace(".", "-")); - if (basisModel.getLarIdCardPeriodType().equals(2)) { - Calendar larIdCardEnd = Calendar.getInstance(); - larIdCardEnd.set(Calendar.YEAR, 2099); - larIdCardEnd.set(Calendar.MONTH, 11); - larIdCardEnd.set(Calendar.DATE , 31); - body.put("larIdCardEnd", DateUtil.date2String(larIdCardEnd.getTime(), "yyyy-MM-dd")); - } else { - body.put("larIdCardEnd", basisModel.getLarIdCardPeriodEnd().replace(".", "-")); - } - body.put("contactMobile", basisModel.getRegPhone()); - body.put("contactName", basisModel.getRegName()); - - /** --------- 结算信息---------- **/ - SecRegion settleProvince = commonService.getRegionsById(basisModel.getMerSettleAcct().getOpenningBankProvinceCode()); - if (settleProvince == null || StringUtils.isBlank(settleProvince.getSaasCode())) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "结算地区未配置正确,请联系客服!"); - } - SecRegion settleCity = commonService.getRegionsById(basisModel.getMerSettleAcct().getOpenningBankCityCode()); - if (settleCity == null || StringUtils.isBlank(settleCity.getSaasCode())) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "结算地区未配置正确,请联系客服!"); - } - body.put("openningBankCode", basisModel.getMerSettleAcct().getOpenningBankCode()); - body.put("openningBankName", basisModel.getMerSettleAcct().getOpenningBankName()); - body.put("clearingBankCode", basisModel.getMerSettleAcct().getClearingBankCode()); - body.put("settleProvinceCode", settleProvince.getSaasCode()); - body.put("settleProvinceName", basisModel.getMerSettleAcct().getOpenningBankProvinceName()); - body.put("settleCityCode", settleCity.getSaasCode()); - body.put("settleCityName", basisModel.getMerSettleAcct().getOpenningBankCityName()); - body.put("accountNo", basisModel.getMerSettleAcct().getBankCardNo()); - body.put("accountName", basisModel.getMerSettleAcct().getBankName()); - - if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { - body.put("accountType", "57"); - } else { - body.put("accountType", "58"); - } - body.put("accountIdCard", basisModel.getMerSettleAcct().getSettleIdCardNo()); - - // 非法人结算 - if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status3.getNumber())) { - body.put("accountIdType", "01"); - body.put("accountName", basisModel.getMerSettleAcct().getSettleIdCardName()); - body.put("accountIdDtStart", basisModel.getMerSettleAcct().getSettleIdCardPeriodStart().replace(".", "-")); - if (basisModel.getMerSettleAcct().getSettleIdPeriodType().equals(2)) { - Calendar accountIdDtEnd = Calendar.getInstance(); - accountIdDtEnd.set(Calendar.YEAR, 2099); - accountIdDtEnd.set(Calendar.MONTH, 11); - accountIdDtEnd.set(Calendar.DATE , 31); - body.put("accountIdDtEnd", DateUtil.date2String(accountIdDtEnd.getTime(), "yyyy-MM-dd")); + /** --------- 结算信息---------- **/ + SecRegion settleProvince = commonService.getRegionsById(basisModel.getMerSettleAcct().getOpenningBankProvinceCode()); + if (settleProvince == null || StringUtils.isBlank(settleProvince.getSaasCode())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "结算地区未配置正确,请联系客服!"); + } + SecRegion settleCity = commonService.getRegionsById(basisModel.getMerSettleAcct().getOpenningBankCityCode()); + if (settleCity == null || StringUtils.isBlank(settleCity.getSaasCode())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "结算地区未配置正确,请联系客服!"); + } + body.put("openningBankCode", basisModel.getMerSettleAcct().getOpenningBankCode()); + body.put("openningBankName", basisModel.getMerSettleAcct().getOpenningBankName()); + body.put("clearingBankCode", basisModel.getMerSettleAcct().getClearingBankCode()); + body.put("settleProvinceCode", settleProvince.getSaasCode()); + body.put("settleProvinceName", basisModel.getMerSettleAcct().getOpenningBankProvinceName()); + body.put("settleCityCode", settleCity.getSaasCode()); + body.put("settleCityName", basisModel.getMerSettleAcct().getOpenningBankCityName()); + body.put("accountNo", basisModel.getMerSettleAcct().getBankCardNo()); + body.put("accountName", basisModel.getMerSettleAcct().getBankName()); + + if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { + body.put("accountType", "57"); } else { - body.put("accountIdDtEnd", basisModel.getMerSettleAcct().getSettleIdCardPeriodEnd().replace(".", "-")); + body.put("accountType", "58"); } - } - /** --------- 结算信息---------- **/ - Map bizContent = new HashMap<>(); - bizContent.put("termNum", "1"); - - Map feesMap; - List> feesMapList = new ArrayList<>(); - // 商户费率 - List rateList = merRateService.getRateListByMerId(merId); - for (BsMerRate rate : rateList) { - feesMap = new HashMap<>(); - feesMap.put("feeCode", rate.getRateSaasTypeCode()); - feesMap.put("feeValue", rate.getRatePct()); - if (StringUtils.isNotBlank(rate.getExt1())) { - feesMap.put("topFee", rate.getExt1()); + body.put("accountIdCard", basisModel.getMerSettleAcct().getSettleIdCardNo()); + + // 非法人结算 + if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status3.getNumber())) { + body.put("accountIdType", "01"); + body.put("accountName", basisModel.getMerSettleAcct().getSettleIdCardName()); + body.put("accountIdDtStart", basisModel.getMerSettleAcct().getSettleIdCardPeriodStart().replace(".", "-")); + if (basisModel.getMerSettleAcct().getSettleIdPeriodType().equals(2)) { + Calendar accountIdDtEnd = Calendar.getInstance(); + accountIdDtEnd.set(Calendar.YEAR, 2099); + accountIdDtEnd.set(Calendar.MONTH, 11); + accountIdDtEnd.set(Calendar.DATE , 31); + body.put("accountIdDtEnd", DateUtil.date2String(accountIdDtEnd.getTime(), "yyyy-MM-dd")); + } else { + body.put("accountIdDtEnd", basisModel.getMerSettleAcct().getSettleIdCardPeriodEnd().replace(".", "-")); + } + } + /** --------- 结算信息---------- **/ + Map bizContent = new HashMap<>(); + bizContent.put("termNum", "1"); + + Map feesMap; + List> feesMapList = new ArrayList<>(); + // 商户费率 + List rateList = merRateService.getRateListByMerId(merId); + for (BsMerRate rate : rateList) { + feesMap = new HashMap<>(); + feesMap.put("feeCode", rate.getRateSaasTypeCode()); + feesMap.put("feeValue", rate.getRatePct()); + if (StringUtils.isNotBlank(rate.getExt1())) { + feesMap.put("topFee", rate.getExt1()); + } + feesMapList.add(feesMap); + } + bizContent.put("fees", feesMapList); + bizContent.put("mcc", basisModel.getMerMccCode()); + bizContent.put("activityId", SaasConfig.activityId); + + Map attchMap; + List> attchMapList = new ArrayList<>(); + + List attachList = merAttachService.getAttachListByMer(merId, PlatformTypeEnum.type0, null); + for (BsMerAttach attach : attachList) { + attchMap = new HashMap<>(); + MerAttachType attachType = MerAttachType.getDataByNumber(attach.getType()); + if (attachType == null || StringUtils.isBlank(attachType.getLklSaasCode())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的附件类型"); + } + attchMap.put("type", attachType.getLklSaasCode()); + attchMap.put("id", saasCommon.fileUpload(new File(CommonSysConst.getSysConfig().getFile_url() +"/"+ attach.getFileUrl()), attachType.getLklSaasCode(), "0").getString("url")); + attchMapList.add(attchMap); } - feesMapList.add(feesMap); - } - bizContent.put("fees", feesMapList); - bizContent.put("mcc", basisModel.getMerMccCode()); - bizContent.put("activityId", SaasConfig.activityId); - - Map attchMap; - List> attchMapList = new ArrayList<>(); - List attachList = merAttachService.getAttachListByMer(merId, PlatformTypeEnum.type0, null); - for (BsMerAttach attach : attachList) { + // 协议 attchMap = new HashMap<>(); - MerAttachType attachType = MerAttachType.getDataByNumber(attach.getType()); - if (attachType == null || StringUtils.isBlank(attachType.getLklSaasCode())) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的附件类型"); - } - attchMap.put("type", attachType.getLklSaasCode()); - attchMap.put("id", saasCommon.fileUpload(new File(CommonSysConst.getSysConfig().getFile_url() +"/"+ attach.getFileUrl()), attachType.getLklSaasCode(), "0").getString("url")); + attchMap.put("type", MerAttachType.type11.getLklSaasCode()); + attchMap.put("id", saasCommon.fileUpload(new File(CommonSysConst.getSysConfig().getFile_url() +"/"+ generateAddContract(basisModel)), MerAttachType.type11.getLklSaasCode(), "0").getString("url")); attchMapList.add(attchMap); - } - // 协议 - attchMap = new HashMap<>(); - attchMap.put("type", MerAttachType.type11.getLklSaasCode()); - attchMap.put("id", saasCommon.fileUpload(new File(CommonSysConst.getSysConfig().getFile_url() +"/"+ generateAddContract(basisModel)), MerAttachType.type11.getLklSaasCode(), "0").getString("url")); - attchMapList.add(attchMap); - - body.put("bizContent", bizContent); - body.put("attchments", attchMapList); - body.put("businessContent", basisModel.getMerIndustry().getChildName()); - body.put("latitude", "0.0"); - body.put("longtude", "0.0"); - body.put("source", "H5"); - body.put("settleType", "D1"); - body.put("settlementType", "AUTOMATIC"); - saasMerRequest.addMerchant(body); + body.put("bizContent", bizContent); + body.put("attchments", attchMapList); + body.put("businessContent", basisModel.getMerIndustry().getChildName()); + body.put("latitude", "0.0"); + body.put("longtude", "0.0"); + body.put("source", "H5"); + body.put("settleType", "D1"); + body.put("settlementType", "AUTOMATIC"); + saasMerRequest.addMerchant(body); - Map header = new HashMap<>(); - header.put("Authorization", "bearer " + saasCommon.getToken()); + Map header = new HashMap<>(); + header.put("Authorization", "bearer " + saasCommon.getToken()); - JSONObject responseBody = HttpsUtils.doPost(SaasConfig.requestMerRegistrationCommonUrl+"merchant", body, header); - System.out.println("body:" + JSONObject.toJSONString(body)); - System.out.println("response:" + responseBody); - if (responseBody == null) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请求进件失败"); - } - if (StringUtils.isBlank(responseBody.getString("state"))) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, responseBody.getString("message")); - } - if (!responseBody.getString("state").equals("1")) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请求进件失败"); - } + JSONObject responseBody = HttpsUtils.doPost(SaasConfig.requestMerRegistrationCommonUrl+"merchant", body, header); + reqStr = JSONObject.toJSONString(body); + resStr = responseBody.toJSONString(); + System.out.println("body:" + reqStr); + System.out.println("response:" + responseBody); + if (responseBody == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请求进件失败"); + } + if (StringUtils.isBlank(responseBody.getString("state"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, responseBody.getString("message")); + } + if (!responseBody.getString("state").equals("1")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请求进件失败"); + } + platform.setStatus(MerPlatformNoStatusEnum.status2.getNumber()); + platform.setPlatformNo(responseBody.getString("merchantNo")); + merPlatformNoService.editMerPlatformNo(platform); + + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(JSONObject.toJSONString(body)); + recordMsg.setResponseCode(responseBody.getString("state")); + recordMsg.setResponseMsg(null); + recordMsg.setResponseContent(responseBody.toJSONString()); + merContractRecordMsgService.insertRecordMsg(recordMsg); + + } catch (BaseException baseException) { + if (basisModel.getMerStatus().intValue() != MerStatusEnum.status4.getNumber().intValue()) { + basisModel.setMerStatus(MerStatusEnum.status4.getNumber()); + merService.editMer(basisModel); + } - BsMerPlatformNo platform = merPlatformNoService.getPlatformNo(merId, PlatformTypeEnum.type1); - if (platform != null) { - platform.setStatus(0); + platform.setStatus(MerPlatformNoStatusEnum.status3.getNumber()); + platform.setSuggestionReject(baseException.getErrorMsg()); merPlatformNoService.editMerPlatformNo(platform); - } - platform = new BsMerPlatformNo(); - platform.setCompanyId(basisModel.getCompanyId()); - platform.setAgentId(basisModel.getAgentId()); - platform.setMerId(basisModel.getId()); - platform.setMerNo(basisModel.getMerNo()); - platform.setPlatformType(PlatformTypeEnum.type1.getNumber()); - platform.setPlatformNo(responseBody.getString("merchantNo")); - merPlatformNoService.editMerPlatformNo(platform); + record.setStatus(3); + merContractRecordService.updateRecord(record); - String orderNo = System.currentTimeMillis()+""; - // 增加进件记录 - BsMerContractRecord record = new BsMerContractRecord(); - record.setMerId(merId); - record.setPlatformType(PlatformTypeEnum.type1.getNumber()); - record.setOrderNo(orderNo); - record.setContractId(responseBody.toJSONString()); - record.setStatus(1); - merContractRecordService.insertRecord(record); + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(reqStr); + recordMsg.setResponseCode("REJECT"); + recordMsg.setResponseContent(resStr); + recordMsg.setResponseMsg(baseException.getErrorMsg()); + merContractRecordMsgService.insertRecordMsg(recordMsg); - // 增加进件记录消息 - BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); - recordMsg.setOrderNo(orderNo); - recordMsg.setType(1); - recordMsg.setRequestContent(JSONObject.toJSONString(body)); - recordMsg.setResponseCode(responseBody.getString("state")); - recordMsg.setResponseMsg(null); - recordMsg.setResponseContent(responseBody.toJSONString()); - merContractRecordMsgService.insertRecordMsg(recordMsg); + } catch (Exception e) { + if (basisModel.getMerStatus().intValue() != MerStatusEnum.status4.getNumber().intValue()) { + basisModel.setMerStatus(MerStatusEnum.status4.getNumber()); + merService.editMer(basisModel); + } + + platform.setStatus(MerPlatformNoStatusEnum.status3.getNumber()); + platform.setSuggestionReject("进件失败!未知错误"); + merPlatformNoService.editMerPlatformNo(platform); + + record.setStatus(3); + merContractRecordService.updateRecord(record); + + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(reqStr); + recordMsg.setResponseCode("REJECT"); + recordMsg.setResponseContent(resStr); + recordMsg.setResponseMsg("进件失败!未知错误"); + merContractRecordMsgService.insertRecordMsg(recordMsg); + } } /** diff --git a/service/src/main/java/com/hfkj/channel/saas/config/SaasConfig.java b/service/src/main/java/com/hfkj/channel/saas/config/SaasConfig.java index eef07e7..0fb6296 100644 --- a/service/src/main/java/com/hfkj/channel/saas/config/SaasConfig.java +++ b/service/src/main/java/com/hfkj/channel/saas/config/SaasConfig.java @@ -22,8 +22,11 @@ public class SaasConfig { // public static String username = "13200000001"; // public static String password = "12345qwert"; - public static String username = "13638395536"; - public static String password = "Huifu123456."; + // public static String username = "13638395536"; + // public static String password = "Huifu123456."; + + public static String username = "13072388036"; + public static String password = "Pzj1988220"; /* public static String requestMerRegistrationTokenUrl = "https://test.wsmsd.cn/sit/htkauth/oauth/token"; diff --git a/service/src/main/java/com/hfkj/channel/tianque/service/TianQueMerElecSignService.java b/service/src/main/java/com/hfkj/channel/tianque/service/TianQueMerElecSignService.java index c6865ce..2c95855 100644 --- a/service/src/main/java/com/hfkj/channel/tianque/service/TianQueMerElecSignService.java +++ b/service/src/main/java/com/hfkj/channel/tianque/service/TianQueMerElecSignService.java @@ -50,7 +50,7 @@ public class TianQueMerElecSignService { Map param = new HashMap<>(); param.put("mno", platformMerNo); param.put("signType", "01"); // 签署方式,取值范围:00 页面签署,01 接口签署 - param.put("signIp", InetAddress.getLocalHost().getAddress()); + param.put("signIp", InetAddress.getLocalHost().getHostAddress()); return RequestUtil.request(TianQueConfig.requestUrl + "/merchant/elecSignature/openElecSignature", param); } catch (Exception e) { return null; diff --git a/service/src/main/java/com/hfkj/channel/tianque/service/TianQueMerService.java b/service/src/main/java/com/hfkj/channel/tianque/service/TianQueMerService.java index 42fd14d..e4269e9 100644 --- a/service/src/main/java/com/hfkj/channel/tianque/service/TianQueMerService.java +++ b/service/src/main/java/com/hfkj/channel/tianque/service/TianQueMerService.java @@ -1,25 +1,19 @@ package com.hfkj.channel.tianque.service; import com.alibaba.fastjson.JSONObject; +import com.hfkj.channel.lakala.LaKaLaMerService; import com.hfkj.channel.tianque.config.TianQueConfig; import com.hfkj.channel.tianque.utils.RequestUtil; +import com.hfkj.common.exception.BaseException; import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorHelp; import com.hfkj.common.exception.SysCode; import com.hfkj.config.CommonSysConst; -import com.hfkj.entity.BsMerContractRecord; -import com.hfkj.entity.BsMerContractRecordMsg; -import com.hfkj.entity.BsMerPlatformNo; -import com.hfkj.entity.BsMerRate; +import com.hfkj.entity.*; import com.hfkj.model.MerBasisModel; -import com.hfkj.service.BsMerContractRecordMsgService; -import com.hfkj.service.BsMerContractRecordService; -import com.hfkj.service.BsMerPlatformNoService; -import com.hfkj.service.BsMerService; -import com.hfkj.sysenum.MerPlatformNoStatusEnum; -import com.hfkj.sysenum.MerSettleType; -import com.hfkj.sysenum.MerTypeEnum; -import com.hfkj.sysenum.PlatformTypeEnum; +import com.hfkj.service.*; +import com.hfkj.sysenum.*; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -45,6 +39,10 @@ public class TianQueMerService { private BsMerContractRecordService merContractRecordService; @Resource private BsMerContractRecordMsgService merContractRecordMsgService; + @Resource + private BsLklMccService mccService; + @Resource + private BsPlatformService platformService; /** * 商户进件 @@ -52,188 +50,256 @@ public class TianQueMerService { * @throws Exception */ public void addMer(Long merId) { - MerBasisModel basisModel = merService.getMerDetail(merId); + String resStr = ""; + String reqStr = ""; + BsMerPlatformNo platform = null; - Map param = new HashMap<>(); - param.put("mecDisNm", basisModel.getMerAbbreviate()); - param.put("mblNo", basisModel.getRegPhone()); - param.put("operationalType", "01"); - if (basisModel.getMerType().equals(MerTypeEnum.status1.getNumber())) { - param.put("haveLicenseNo", "02"); - } else if (basisModel.getMerType().equals(MerTypeEnum.status2.getNumber())) { - param.put("haveLicenseNo", "03"); - } else if (basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { - param.put("haveLicenseNo", "01"); + platform = merPlatformNoService.getPlatformNo(merId, PlatformTypeEnum.type5, null); + if (platform != null) { + if (StringUtils.isNotBlank(platform.getPlatformNo())) { + updateMerchantInfo(merId); + return; + } + platform.setStatus(MerPlatformNoStatusEnum.status0.getNumber()); + merPlatformNoService.editMerPlatformNo(platform); } - param.put("mecTypeFlag", "00"); - - param.put("cprRegAddr", basisModel.getMerRegion().getAddress()); - param.put("regProvCd", basisModel.getMerRegion().getProvinceCode() + "000000"); - param.put("regCityCd", basisModel.getMerRegion().getCityCode() + "000000"); - param.put("regDistCd", basisModel.getMerRegion().getAreaCode() + "000000"); - param.put("mccCd", basisModel.getMerMccCode()); - param.put("csTelNo", basisModel.getStoreModel().getTelephone()); - - /********* 功能类信息 ***********/ - List> qrcodeList = new ArrayList<>(); - Map qrcode; - for (BsMerRate merRate : basisModel.getMerSettleAcct().getMerRateList()) { - qrcode = new HashMap<>(); - - // 微信 - if (merRate.getRateTypeCode().equals(302)) { - qrcode.put("rateType", "01"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); - - // 支付宝 - } else if (merRate.getRateTypeCode().equals(303)) { - qrcode.put("rateType", "02"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); - - // 云闪付借记卡小于1000 - } else if (merRate.getRateTypeCode().equals(411)) { - qrcode.put("rateType", "061"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); - - // 云闪付借记卡大于1000 - } else if (merRate.getRateTypeCode().equals(315)) { - qrcode.put("rateType", "071"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); + // 增加进件记录 + BsMerContractRecord record = new BsMerContractRecord(); + record.setMerId(merId); + record.setPlatformType(PlatformTypeEnum.type5.getNumber()); + record.setOrderNo(System.currentTimeMillis()+""); + record.setStatus(1); + merContractRecordService.insertRecord(record); + + MerBasisModel basisModel = merService.getMerDetail(merId); + + try { + + platform = new BsMerPlatformNo(); + platform.setCompanyId(basisModel.getCompanyId()); + platform.setAgentId(basisModel.getAgentId()); + platform.setMerId(basisModel.getId()); + platform.setMerNo(basisModel.getMerNo()); + platform.setPlatformType(PlatformTypeEnum.type5.getNumber()); + platform.setStatus(MerPlatformNoStatusEnum.status2.getNumber()); + BsPlatform currentPlatform = platformService.getCurrentPlatform(); + platform.setCurrentPlatform(currentPlatform.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())); + merPlatformNoService.editMerPlatformNo(platform); + + Map param = new HashMap<>(); + param.put("mecDisNm", basisModel.getMerAbbreviate()); + param.put("mblNo", basisModel.getRegPhone()); + param.put("operationalType", basisModel.getMerOperateType().equals(MerOperateType.type1.getNumber())?"01":"02"); + if (basisModel.getMerOperateType().equals(MerOperateType.type2.getNumber())) { + param.put("onlineType", "0" + MerOnlineType.getDataByNumber(basisModel.getMerOnlineType()).getNumber()); + param.put("onlineName", basisModel.getMerOnlineName()); + } + if (basisModel.getMerType().equals(MerTypeEnum.status1.getNumber())) { + param.put("haveLicenseNo", "02"); + } else if (basisModel.getMerType().equals(MerTypeEnum.status2.getNumber())) { + param.put("haveLicenseNo", "03"); + } else if (basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { + param.put("haveLicenseNo", "01"); + } + param.put("mecTypeFlag", "00"); + + param.put("cprRegAddr", basisModel.getMerRegion().getAddress()); + param.put("regProvCd", basisModel.getMerRegion().getProvinceCode() + "000000"); + param.put("regCityCd", basisModel.getMerRegion().getCityCode() + "000000"); + param.put("regDistCd", basisModel.getMerRegion().getAreaCode() + "000000"); + param.put("mccCd", mccService.getMccByCode(basisModel.getMerMccCode()).getExt1()); + param.put("csTelNo", basisModel.getStoreModel().getTelephone()); + + /********* 功能类信息 ***********/ + List> qrcodeList = new ArrayList<>(); + Map qrcode; + for (BsMerRate merRate : basisModel.getMerSettleAcct().getMerRateList()) { qrcode = new HashMap<>(); - qrcode.put("rateType", "072"); - qrcode.put("rate", "20"); - qrcodeList.add(qrcode); - - // 云闪付贷记卡小于1000 - } else if (merRate.getRateTypeCode().equals(412)) { - qrcode.put("rateType", "06"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); - - // 云闪付贷记卡大于1000 - } else if (merRate.getRateTypeCode().equals(314)) { - qrcode.put("rateType", "07"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); + + // 微信 + if (merRate.getRateTypeCode().equals(302)) { + qrcode.put("rateType", "01"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + // 支付宝 + } else if (merRate.getRateTypeCode().equals(303)) { + qrcode.put("rateType", "02"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + // 云闪付借记卡小于1000 + } else if (merRate.getRateTypeCode().equals(411)) { + qrcode.put("rateType", "061"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + // 云闪付借记卡大于1000 + } else if (merRate.getRateTypeCode().equals(315)) { + qrcode.put("rateType", "071"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + qrcode = new HashMap<>(); + qrcode.put("rateType", "072"); + qrcode.put("rate", "20"); + qrcodeList.add(qrcode); + + // 云闪付贷记卡小于1000 + } else if (merRate.getRateTypeCode().equals(412)) { + qrcode.put("rateType", "06"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + // 云闪付贷记卡大于1000 + } else if (merRate.getRateTypeCode().equals(314)) { + qrcode.put("rateType", "07"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + } } - } - param.put("qrcodeList", qrcodeList); - param.put("callbackUrl", CommonSysConst.getSysConfig().getDomainName() + "/crest/tianqueNotify/applyLedgerMer"); - /********* 功能类信息 ***********/ - - /********* 资质证照信息 ***********/ - if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { - param.put("cprRegNmCn", basisModel.getBlisName()); - param.put("registCode", basisModel.getBlisNo()); - param.put("licenseMatch", "00"); - param.put("businessLicStt", basisModel.getBlisPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); - if (basisModel.getBlisPeriodType().equals(2)) { - param.put("businessLicEnt", "29991231"); + param.put("qrcodeList", qrcodeList); + param.put("callbackUrl", CommonSysConst.getSysConfig().getDomainName() + "/crest/tianqueNotify/merInbound"); + /********* 功能类信息 ***********/ + + /********* 资质证照信息 ***********/ + if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { + param.put("cprRegNmCn", basisModel.getBlisName()); + param.put("registCode", basisModel.getBlisNo()); + param.put("licenseMatch", "00"); + param.put("businessLicStt", basisModel.getBlisPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); + if (basisModel.getBlisPeriodType().equals(2)) { + param.put("businessLicEnt", "29991231"); + } else { + param.put("businessLicEnt", basisModel.getBlisPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); + } + } + + param.put("identityName", basisModel.getLarName()); + param.put("identityTyp", "00"); + param.put("identityNo", basisModel.getLarIdCard()); + param.put("legalPersonLicStt", basisModel.getLarIdCardPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); + if (basisModel.getLarIdCardPeriodType().equals(2)) { + param.put("businessLicStt", "29991231"); } else { - param.put("businessLicEnt", basisModel.getBlisPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); + param.put("legalPersonLicEnt", basisModel.getLarIdCardPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); } - } + /********* 资质证照信息 ***********/ - param.put("identityName", basisModel.getLarName()); - param.put("identityTyp", "00"); - param.put("identityNo", basisModel.getLarIdCard()); - param.put("legalPersonLicStt", basisModel.getLarIdCardPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); - if (basisModel.getLarIdCardPeriodType().equals(2)) { - param.put("businessLicStt", "29991231"); - } else { - param.put("legalPersonLicEnt", basisModel.getLarIdCardPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); - } - /********* 资质证照信息 ***********/ + /********* 结算信息 ***********/ + if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { + param.put("actNm", basisModel.getBlisName()); + } else { + param.put("actNm", basisModel.getMerSettleAcct().getBankCardHolder()); + } + param.put("actTyp",basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())?"00":"01"); + param.put("actNoType", "00"); + param.put("stmManIdNo", basisModel.getMerSettleAcct().getSettleIdCardNo()); + param.put("accountLicStt", basisModel.getMerSettleAcct().getSettleIdCardPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); + if (basisModel.getMerSettleAcct().getSettleIdPeriodType().equals(2)) { + param.put("accountLicEnt", "29991231"); + } else { + param.put("accountLicEnt", basisModel.getMerSettleAcct().getSettleIdCardPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); + } + param.put("actNo", basisModel.getMerSettleAcct().getBankCardNo()); + param.put("lbnkNo", basisModel.getMerSettleAcct().getOpenningBankCode()); + /********* 结算信息 ***********/ + + /********* 图片信息 ***********/ + param.put("legalPersonidPositivePic", RequestUtil.requestUpload("02", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getLarIdCardPortraitImg())).getString("PhotoUrl")); + param.put("legalPersonidOppositePic", RequestUtil.requestUpload("03", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getLarIdCardNationalEmblemImg())).getString("PhotoUrl")); + param.put("storePic", RequestUtil.requestUpload("10", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getStoreModel().getDoorHeadImg())).getString("PhotoUrl")); + param.put("insideScenePic", RequestUtil.requestUpload("11", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getStoreModel().getInternalImg())).getString("PhotoUrl")); + + if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { + param.put("licensePic", RequestUtil.requestUpload("13", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getBlisUrl())).getString("PhotoUrl")); + } - /********* 结算信息 ***********/ - if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { - param.put("actNm", basisModel.getBlisName()); - } else { - param.put("actNm", basisModel.getMerSettleAcct().getBankCardHolder()); - } - param.put("actTyp",basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())?"00":"01"); - param.put("actNoType", "00"); - param.put("stmManIdNo", basisModel.getMerSettleAcct().getSettleIdCardNo()); - param.put("accountLicStt", basisModel.getMerSettleAcct().getSettleIdCardPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); - if (basisModel.getMerSettleAcct().getSettleIdPeriodType().equals(2)) { - param.put("accountLicEnt", "29991231"); - } else { - param.put("accountLicEnt", basisModel.getMerSettleAcct().getSettleIdCardPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); - } - param.put("actNo", basisModel.getMerSettleAcct().getBankCardNo()); - param.put("lbnkNo", basisModel.getMerSettleAcct().getOpenningBankCode()); - /********* 结算信息 ***********/ - - /********* 图片信息 ***********/ - param.put("legalPersonidPositivePic", RequestUtil.requestUpload("02", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getLarIdCardPortraitImg())).getString("PhotoUrl")); - param.put("legalPersonidOppositePic", RequestUtil.requestUpload("03", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getLarIdCardNationalEmblemImg())).getString("PhotoUrl")); - param.put("storePic", RequestUtil.requestUpload("10", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getStoreModel().getDoorHeadImg())).getString("PhotoUrl")); - param.put("insideScenePic", RequestUtil.requestUpload("11", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getStoreModel().getInternalImg())).getString("PhotoUrl")); - - if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { - param.put("licensePic", RequestUtil.requestUpload("13", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getBlisUrl())).getString("PhotoUrl")); - } + if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { + param.put("openingAccountLicensePic", RequestUtil.requestUpload("65", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getOpenningBankLicenseUrl())).getString("PhotoUrl")); + } + if (!basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { + param.put("settlePersonIdcardPositive", RequestUtil.requestUpload("08", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getSettleIdCardPortraitImg())).getString("PhotoUrl")); + param.put("settlePersonIdcardOpposite", RequestUtil.requestUpload("07", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getSettleIdCardNationalEmblemImg())).getString("PhotoUrl")); + param.put("bankCardPositivePic", RequestUtil.requestUpload("05", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getBankCardImg())).getString("PhotoUrl")); + } + if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status3.getNumber())) { + param.put("letterOfAuthPic", RequestUtil.requestUpload("26", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getCommissionImg())).getString("PhotoUrl")); + } + /********* 图片信息 ***********/ - if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { - param.put("openingAccountLicensePic", RequestUtil.requestUpload("65", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getOpenningBankLicenseUrl())).getString("PhotoUrl")); - } - if (!basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { - param.put("settlePersonIdcardPositive", RequestUtil.requestUpload("08", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getSettleIdCardPortraitImg())).getString("PhotoUrl")); - param.put("settlePersonIdcardOpposite", RequestUtil.requestUpload("07", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getSettleIdCardNationalEmblemImg())).getString("PhotoUrl")); - param.put("bankCardPositivePic", RequestUtil.requestUpload("05", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getBankCardImg())).getString("PhotoUrl")); - } - if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status3.getNumber())) { - param.put("letterOfAuthPic", RequestUtil.requestUpload("26", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getCommissionImg())).getString("PhotoUrl")); - } - /********* 图片信息 ***********/ + JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/merchant/income", param); + reqStr = JSONObject.toJSONString(param); + resStr = response.toJSONString(); + if (!"0000".equals(response.getString("bizCode"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); + } + platform.setStatus(MerPlatformNoStatusEnum.status2.getNumber()); + platform.setPlatformNo(response.getString("mno")); + platform.setCupNo(response.getString("mno")); + merPlatformNoService.editMerPlatformNo(platform); - JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/merchant/income", param); - if (!"0000".equals(response.getString("bizCode"))) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); - } - response.getString("mno"); - response.getString("applicationId"); + // 增加进件记录 + record.setContractId(response.getString("applicationId")); + merContractRecordService.updateRecord(record); + + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(JSONObject.toJSONString(param)); + recordMsg.setResponseMsg(null); + recordMsg.setResponseContent(response.toJSONString()); + merContractRecordMsgService.insertRecordMsg(recordMsg); + + } catch (BaseException baseException) { + if (basisModel.getMerStatus().intValue() != MerStatusEnum.status4.getNumber().intValue()) { + basisModel.setMerStatus(MerStatusEnum.status4.getNumber()); + merService.editMer(basisModel); + } - BsMerPlatformNo platform = merPlatformNoService.getPlatformNo(merId, PlatformTypeEnum.type5); - if (platform != null) { - platform.setStatus(0); + platform.setStatus(MerPlatformNoStatusEnum.status3.getNumber()); + platform.setSuggestionReject(baseException.getErrorMsg()); merPlatformNoService.editMerPlatformNo(platform); - } - - platform = new BsMerPlatformNo(); - platform.setCompanyId(basisModel.getCompanyId()); - platform.setAgentId(basisModel.getAgentId()); - platform.setMerId(basisModel.getId()); - platform.setMerNo(basisModel.getMerNo()); - platform.setPlatformType(PlatformTypeEnum.type5.getNumber()); - platform.setPlatformNo(response.getString("mno")); - platform.setStatus(MerPlatformNoStatusEnum.status2.getNumber()); - merPlatformNoService.editMerPlatformNo(platform); - // 增加进件记录 - BsMerContractRecord record = new BsMerContractRecord(); - record.setMerId(merId); - record.setPlatformType(PlatformTypeEnum.type5.getNumber()); - record.setOrderNo(response.getString("applicationId")); - record.setContractId(response.toJSONString()); - record.setStatus(1); - merContractRecordService.insertRecord(record); + record.setStatus(3); + merContractRecordService.updateRecord(record); + + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(reqStr); + recordMsg.setResponseCode("REJECT"); + recordMsg.setResponseContent(resStr); + recordMsg.setResponseMsg(baseException.getErrorMsg()); + merContractRecordMsgService.insertRecordMsg(recordMsg); + + } catch (Exception e) { + if (basisModel.getMerStatus().intValue() != MerStatusEnum.status4.getNumber().intValue()) { + basisModel.setMerStatus(MerStatusEnum.status4.getNumber()); + merService.editMer(basisModel); + } - // 增加进件记录消息 - BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); - recordMsg.setOrderNo(record.getOrderNo()); - recordMsg.setType(1); - recordMsg.setRequestContent(JSONObject.toJSONString(param)); - recordMsg.setResponseMsg(null); - recordMsg.setResponseContent(response.toJSONString()); - merContractRecordMsgService.insertRecordMsg(recordMsg); + platform.setStatus(MerPlatformNoStatusEnum.status3.getNumber()); + platform.setSuggestionReject("进件失败!未知错误"); + merPlatformNoService.editMerPlatformNo(platform); + record.setStatus(3); + merContractRecordService.updateRecord(record); + + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(reqStr); + recordMsg.setResponseCode("REJECT"); + recordMsg.setResponseContent(resStr); + recordMsg.setResponseMsg("进件失败!未知错误"); + merContractRecordMsgService.insertRecordMsg(recordMsg); + } } /** @@ -243,186 +309,240 @@ public class TianQueMerService { * @throws Exception */ public void updateMerchantInfo(Long merId) { + String resStr = ""; + String reqStr = ""; + + BsMerPlatformNo platform = merPlatformNoService.getPlatformNo(merId, PlatformTypeEnum.type5); + + // 增加进件记录 + BsMerContractRecord record = new BsMerContractRecord(); + record.setMerId(merId); + record.setPlatformType(PlatformTypeEnum.type5.getNumber()); + record.setOrderNo(System.currentTimeMillis()+""); + record.setStatus(1); + merContractRecordService.insertRecord(record); + MerBasisModel basisModel = merService.getMerDetail(merId); - Map param = new HashMap<>(); - param.put("mecDisNm", basisModel.getMerAbbreviate()); - param.put("mblNo", basisModel.getRegPhone()); - param.put("operationalType", "01"); - if (basisModel.getMerType().equals(MerTypeEnum.status1.getNumber())) { - param.put("haveLicenseNo", "02"); - } else if (basisModel.getMerType().equals(MerTypeEnum.status2.getNumber())) { - param.put("haveLicenseNo", "03"); - } else if (basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { - param.put("haveLicenseNo", "01"); - } - param.put("mecTypeFlag", "00"); - - param.put("cprRegAddr", basisModel.getMerRegion().getAddress()); - param.put("regProvCd", basisModel.getMerRegion().getProvinceCode() + "000000"); - param.put("regCityCd", basisModel.getMerRegion().getCityCode() + "000000"); - param.put("regDistCd", basisModel.getMerRegion().getAreaCode() + "000000"); - param.put("mccCd", basisModel.getMerMccCode()); - param.put("csTelNo", basisModel.getStoreModel().getTelephone()); - - /********* 功能类信息 ***********/ - List> qrcodeList = new ArrayList<>(); - Map qrcode; - for (BsMerRate merRate : basisModel.getMerSettleAcct().getMerRateList()) { - qrcode = new HashMap<>(); - - // 微信 - if (merRate.getRateTypeCode().equals(302)) { - qrcode.put("rateType", "01"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); - - // 支付宝 - } else if (merRate.getRateTypeCode().equals(303)) { - qrcode.put("rateType", "02"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); - - // 云闪付借记卡小于1000 - } else if (merRate.getRateTypeCode().equals(411)) { - qrcode.put("rateType", "061"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); - - // 云闪付借记卡大于1000 - } else if (merRate.getRateTypeCode().equals(315)) { - qrcode.put("rateType", "071"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); + try { + platform.setStatus(MerPlatformNoStatusEnum.status2.getNumber()); + merPlatformNoService.editMerPlatformNo(platform); + Map param = new HashMap<>(); + param.put("mno", platform.getPlatformNo()); + param.put("mecDisNm", basisModel.getMerAbbreviate()); + param.put("mblNo", basisModel.getRegPhone()); + param.put("operationalType", basisModel.getMerOperateType().equals(MerOperateType.type1.getNumber())?"01":"02"); + if (basisModel.getMerOperateType().equals(MerOperateType.type2.getNumber())) { + param.put("onlineType", "0" + MerOnlineType.getDataByNumber(basisModel.getMerOnlineType()).getNumber()); + param.put("onlineName", basisModel.getMerOnlineName()); + } + if (basisModel.getMerType().equals(MerTypeEnum.status1.getNumber())) { + param.put("haveLicenseNo", "02"); + } else if (basisModel.getMerType().equals(MerTypeEnum.status2.getNumber())) { + param.put("haveLicenseNo", "03"); + } else if (basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { + param.put("haveLicenseNo", "01"); + } + param.put("mecTypeFlag", "00"); + + param.put("cprRegAddr", basisModel.getMerRegion().getAddress()); + param.put("regProvCd", basisModel.getMerRegion().getProvinceCode() + "000000"); + param.put("regCityCd", basisModel.getMerRegion().getCityCode() + "000000"); + param.put("regDistCd", basisModel.getMerRegion().getAreaCode() + "000000"); + param.put("mccCd", mccService.getMccByCode(basisModel.getMerMccCode()).getExt1()); + param.put("csTelNo", basisModel.getStoreModel().getTelephone()); + + /********* 功能类信息 ***********/ + List> qrcodeList = new ArrayList<>(); + Map qrcode; + for (BsMerRate merRate : basisModel.getMerSettleAcct().getMerRateList()) { qrcode = new HashMap<>(); - qrcode.put("rateType", "072"); - qrcode.put("rate", "20"); - qrcodeList.add(qrcode); - - // 云闪付贷记卡小于1000 - } else if (merRate.getRateTypeCode().equals(412)) { - qrcode.put("rateType", "06"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); - - // 云闪付贷记卡大于1000 - } else if (merRate.getRateTypeCode().equals(314)) { - qrcode.put("rateType", "07"); - qrcode.put("rate", merRate.getRatePct()+""); - qrcodeList.add(qrcode); + + // 微信 + if (merRate.getRateTypeCode().equals(302)) { + qrcode.put("rateType", "01"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + // 支付宝 + } else if (merRate.getRateTypeCode().equals(303)) { + qrcode.put("rateType", "02"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + // 云闪付借记卡小于1000 + } else if (merRate.getRateTypeCode().equals(411)) { + qrcode.put("rateType", "061"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + // 云闪付借记卡大于1000 + } else if (merRate.getRateTypeCode().equals(315)) { + qrcode.put("rateType", "071"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + qrcode = new HashMap<>(); + qrcode.put("rateType", "072"); + qrcode.put("rate", "20"); + qrcodeList.add(qrcode); + + // 云闪付贷记卡小于1000 + } else if (merRate.getRateTypeCode().equals(412)) { + qrcode.put("rateType", "06"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + + // 云闪付贷记卡大于1000 + } else if (merRate.getRateTypeCode().equals(314)) { + qrcode.put("rateType", "07"); + qrcode.put("rate", merRate.getRatePct()+""); + qrcodeList.add(qrcode); + } } - } - param.put("qrcodeList", qrcodeList); - param.put("callbackUrl", CommonSysConst.getSysConfig().getDomainName() + "/crest/tianqueNotify"); - /********* 功能类信息 ***********/ - - /********* 资质证照信息 ***********/ - if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { - param.put("cprRegNmCn", basisModel.getBlisName()); - param.put("registCode", basisModel.getBlisNo()); - param.put("licenseMatch", "00"); - param.put("businessLicStt", basisModel.getBlisPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); - if (basisModel.getBlisPeriodType().equals(2)) { - param.put("businessLicEnt", "29991231"); + param.put("qrcodeList", qrcodeList); + param.put("callbackUrl", CommonSysConst.getSysConfig().getDomainName() + "/crest/tianqueNotify/merInbound"); + /********* 功能类信息 ***********/ + + /********* 资质证照信息 ***********/ + if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { + param.put("cprRegNmCn", basisModel.getBlisName()); + param.put("registCode", basisModel.getBlisNo()); + param.put("licenseMatch", "00"); + param.put("businessLicStt", basisModel.getBlisPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); + if (basisModel.getBlisPeriodType().equals(2)) { + param.put("businessLicEnt", "29991231"); + } else { + param.put("businessLicEnt", basisModel.getBlisPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); + } + } + + param.put("identityName", basisModel.getLarName()); + param.put("identityTyp", "00"); + param.put("identityNo", basisModel.getLarIdCard()); + param.put("legalPersonLicStt", basisModel.getLarIdCardPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); + if (basisModel.getLarIdCardPeriodType().equals(2)) { + param.put("businessLicStt", "29991231"); } else { - param.put("businessLicEnt", basisModel.getBlisPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); + param.put("legalPersonLicEnt", basisModel.getLarIdCardPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); } - } + /********* 资质证照信息 ***********/ - param.put("identityName", basisModel.getLarName()); - param.put("identityTyp", "00"); - param.put("identityNo", basisModel.getLarIdCard()); - param.put("legalPersonLicStt", basisModel.getLarIdCardPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); - if (basisModel.getLarIdCardPeriodType().equals(2)) { - param.put("businessLicStt", "29991231"); - } else { - param.put("legalPersonLicEnt", basisModel.getLarIdCardPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); - } - /********* 资质证照信息 ***********/ + /********* 结算信息 ***********/ + if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { + param.put("actNm", basisModel.getBlisName()); + } else { + param.put("actNm", basisModel.getMerSettleAcct().getBankCardHolder()); + } + param.put("actTyp",basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())?"00":"01"); + param.put("actNoType", "00"); + param.put("stmManIdNo", basisModel.getMerSettleAcct().getSettleIdCardNo()); + param.put("accountLicStt", basisModel.getMerSettleAcct().getSettleIdCardPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); + if (basisModel.getMerSettleAcct().getSettleIdPeriodType().equals(2)) { + param.put("accountLicEnt", "29991231"); + } else { + param.put("accountLicEnt", basisModel.getMerSettleAcct().getSettleIdCardPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); + } + param.put("actNo", basisModel.getMerSettleAcct().getBankCardNo()); + param.put("lbnkNo", basisModel.getMerSettleAcct().getOpenningBankCode()); + /********* 结算信息 ***********/ + + /********* 图片信息 ***********/ + param.put("legalPersonidPositivePic", RequestUtil.requestUpload("02", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getLarIdCardPortraitImg())).getString("PhotoUrl")); + param.put("legalPersonidOppositePic", RequestUtil.requestUpload("03", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getLarIdCardNationalEmblemImg())).getString("PhotoUrl")); + param.put("storePic", RequestUtil.requestUpload("10", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getStoreModel().getDoorHeadImg())).getString("PhotoUrl")); + param.put("insideScenePic", RequestUtil.requestUpload("11", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getStoreModel().getInternalImg())).getString("PhotoUrl")); + + if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { + param.put("licensePic", RequestUtil.requestUpload("13", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getBlisUrl())).getString("PhotoUrl")); + } - /********* 结算信息 ***********/ - if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { - param.put("actNm", basisModel.getBlisName()); - } else { - param.put("actNm", basisModel.getMerSettleAcct().getBankCardHolder()); - } - param.put("actTyp",basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())?"00":"01"); - param.put("actNoType", "00"); - param.put("stmManIdNo", basisModel.getMerSettleAcct().getSettleIdCardNo()); - param.put("accountLicStt", basisModel.getMerSettleAcct().getSettleIdCardPeriodStart().replace(".", "").replace("年","").replace("月","").replace("日","")); - if (basisModel.getMerSettleAcct().getSettleIdPeriodType().equals(2)) { - param.put("accountLicEnt", "29991231"); - } else { - param.put("accountLicEnt", basisModel.getMerSettleAcct().getSettleIdCardPeriodEnd().replace(".", "").replace("年","").replace("月","").replace("日","")); - } - param.put("actNo", basisModel.getMerSettleAcct().getBankCardNo()); - param.put("lbnkNo", basisModel.getMerSettleAcct().getOpenningBankCode()); - /********* 结算信息 ***********/ - - /********* 图片信息 ***********/ - param.put("legalPersonidPositivePic", RequestUtil.requestUpload("02", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getLarIdCardPortraitImg())).getString("PhotoUrl")); - param.put("legalPersonidOppositePic", RequestUtil.requestUpload("03", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getLarIdCardNationalEmblemImg())).getString("PhotoUrl")); - param.put("storePic", RequestUtil.requestUpload("10", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getStoreModel().getDoorHeadImg())).getString("PhotoUrl")); - param.put("insideScenePic", RequestUtil.requestUpload("11", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getStoreModel().getInternalImg())).getString("PhotoUrl")); - - if (!basisModel.getMerType().equals(MerTypeEnum.status3.getNumber())) { - param.put("licensePic", RequestUtil.requestUpload("13", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getBlisUrl())).getString("PhotoUrl")); - } + if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { + param.put("openingAccountLicensePic", RequestUtil.requestUpload("65", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getOpenningBankLicenseUrl())).getString("PhotoUrl")); + } + if (!basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { + param.put("settlePersonIdcardPositive", RequestUtil.requestUpload("08", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getSettleIdCardPortraitImg())).getString("PhotoUrl")); + param.put("settlePersonIdcardOpposite", RequestUtil.requestUpload("07", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getSettleIdCardNationalEmblemImg())).getString("PhotoUrl")); + param.put("bankCardPositivePic", RequestUtil.requestUpload("05", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getBankCardImg())).getString("PhotoUrl")); + } + if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status3.getNumber())) { + param.put("letterOfAuthPic", RequestUtil.requestUpload("26", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getCommissionImg())).getString("PhotoUrl")); + } + /********* 图片信息 ***********/ - if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { - param.put("openingAccountLicensePic", RequestUtil.requestUpload("65", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getOpenningBankLicenseUrl())).getString("PhotoUrl")); - } - if (!basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status1.getNumber())) { - param.put("settlePersonIdcardPositive", RequestUtil.requestUpload("08", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getSettleIdCardPortraitImg())).getString("PhotoUrl")); - param.put("settlePersonIdcardOpposite", RequestUtil.requestUpload("07", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getSettleIdCardNationalEmblemImg())).getString("PhotoUrl")); - param.put("bankCardPositivePic", RequestUtil.requestUpload("05", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getBankCardImg())).getString("PhotoUrl")); - } - if (basisModel.getMerSettleAcct().getSettleType().equals(MerSettleType.status3.getNumber())) { - param.put("letterOfAuthPic", RequestUtil.requestUpload("26", new File(CommonSysConst.getSysConfig().getFile_url() + "/" + basisModel.getMerSettleAcct().getCommissionImg())).getString("PhotoUrl")); - } - /********* 图片信息 ***********/ + JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/merchant/updateMerchantInfo", param); + reqStr = JSONObject.toJSONString(param); + resStr = response.toJSONString(); + if (!"0000".equals(response.getString("bizCode"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); + } + response.getString("mno"); + response.getString("applicationId"); - JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/merchant/income", param); - if (!"0000".equals(response.getString("bizCode"))) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); - } - response.getString("mno"); - response.getString("applicationId"); + platform.setStatus(MerPlatformNoStatusEnum.status2.getNumber()); + platform.setPlatformNo(response.getString("mno")); + merPlatformNoService.editMerPlatformNo(platform); - BsMerPlatformNo platform = merPlatformNoService.getPlatformNo(merId, PlatformTypeEnum.type5); - if (platform != null) { - platform.setStatus(0); + // 增加进件记录 + record.setContractId(response.getString("applicationId")); + merContractRecordService.updateRecord(record); + + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(JSONObject.toJSONString(param)); + recordMsg.setResponseMsg(null); + recordMsg.setResponseContent(response.toJSONString()); + merContractRecordMsgService.insertRecordMsg(recordMsg); + + } catch (BaseException baseException) { + if (basisModel.getMerStatus().intValue() != MerStatusEnum.status4.getNumber().intValue()) { + basisModel.setMerStatus(MerStatusEnum.status4.getNumber()); + merService.editMer(basisModel); + } + platform.setStatus(MerPlatformNoStatusEnum.status3.getNumber()); + platform.setSuggestionReject(baseException.getErrorMsg()); merPlatformNoService.editMerPlatformNo(platform); - } - platform = new BsMerPlatformNo(); - platform.setCompanyId(basisModel.getCompanyId()); - platform.setAgentId(basisModel.getAgentId()); - platform.setMerId(basisModel.getId()); - platform.setMerNo(basisModel.getMerNo()); - platform.setPlatformType(PlatformTypeEnum.type5.getNumber()); - platform.setPlatformNo(response.getString("mno")); - merPlatformNoService.editMerPlatformNo(platform); + record.setStatus(3); + merContractRecordService.updateRecord(record); + + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(reqStr); + recordMsg.setResponseCode("REJECT"); + recordMsg.setResponseContent(resStr); + recordMsg.setResponseMsg(baseException.getErrorMsg()); + merContractRecordMsgService.insertRecordMsg(recordMsg); + + } catch (Exception e) { + if (basisModel.getMerStatus().intValue() != MerStatusEnum.status4.getNumber().intValue()) { + basisModel.setMerStatus(MerStatusEnum.status4.getNumber()); + merService.editMer(basisModel); + } - // 增加进件记录 - BsMerContractRecord record = new BsMerContractRecord(); - record.setMerId(merId); - record.setPlatformType(PlatformTypeEnum.type5.getNumber()); - record.setOrderNo(response.getString("applicationId")); - record.setContractId(response.toJSONString()); - record.setStatus(1); - merContractRecordService.insertRecord(record); + platform.setStatus(MerPlatformNoStatusEnum.status3.getNumber()); + platform.setSuggestionReject("进件失败!未知错误"); + merPlatformNoService.editMerPlatformNo(platform); - // 增加进件记录消息 - BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); - recordMsg.setOrderNo(record.getOrderNo()); - recordMsg.setType(1); - recordMsg.setRequestContent(JSONObject.toJSONString(param)); - recordMsg.setResponseMsg(null); - recordMsg.setResponseContent(response.toJSONString()); - merContractRecordMsgService.insertRecordMsg(recordMsg); + record.setStatus(3); + merContractRecordService.updateRecord(record); + + // 增加进件记录消息 + BsMerContractRecordMsg recordMsg = new BsMerContractRecordMsg(); + recordMsg.setOrderNo(record.getOrderNo()); + recordMsg.setType(1); + recordMsg.setRequestContent(reqStr); + recordMsg.setResponseCode("REJECT"); + recordMsg.setResponseContent(resStr); + recordMsg.setResponseMsg("进件失败!未知错误"); + merContractRecordMsgService.insertRecordMsg(recordMsg); + } } diff --git a/service/src/main/java/com/hfkj/channel/tianque/service/TianQueTradeService.java b/service/src/main/java/com/hfkj/channel/tianque/service/TianQueTradeService.java new file mode 100644 index 0000000..ac54225 --- /dev/null +++ b/service/src/main/java/com/hfkj/channel/tianque/service/TianQueTradeService.java @@ -0,0 +1,326 @@ +package com.hfkj.channel.tianque.service; + +import com.alibaba.fastjson.JSONObject; +import com.hfkj.channel.tianque.config.TianQueConfig; +import com.hfkj.channel.tianque.utils.RequestUtil; +import com.hfkj.common.exception.ErrorCode; +import com.hfkj.common.exception.ErrorHelp; +import com.hfkj.common.exception.SysCode; +import com.hfkj.common.utils.DateUtil; +import com.hfkj.config.CommonSysConst; +import com.hfkj.entity.*; +import com.hfkj.service.*; +import com.hfkj.sysenum.*; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * @className: TianQueTradeService + * @author: HuRui + * @date: 2023/9/4 + **/ +@Component +public class TianQueTradeService { + + private static Logger log = LoggerFactory.getLogger(TianQueTradeService.class); + @Resource + private BsTradeOrderService tradeOrderService; + @Resource + private BsTradeOrderMsgService tradeOrderMsgService; + @Resource + private BsMerPlatformNoService merPlatformNoService; + @Resource + private BsTradeOrderRefundService tradeOrderRefundService; + @Resource + private BsMerService merService; + + /** + * 交易【主扫】 + * @param tradeNo 订单号 + * @return + */ + public Map preorder(String tradeNo) { + log.info("========= Start 交易【主扫】 Start ==========="); + // 查询交易订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(tradeNo); + if (order == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + if (!order.getStatus().equals(TradeOrderStatusEnum.status1.getNumber())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单不处于待支付状态"); + } + // 查询商户号 + BsMerPlatformNo platformNo = merPlatformNoService.getPlatformNo(order.getMerId(), PlatformTypeEnum.type5); + if (platformNo == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户号"); + } + // 查询商户 + BsMer mer = merService.getMer(order.getMerId()); + if (mer == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的商户信息"); + } + Map param = new HashMap<>(); + param.put("mno", platformNo.getPlatformNo()); + param.put("ordNo", order.getOutTradeNo()); + param.put("amt", order.getTradeActualAmount()); + param.put("payType", order.getPayMode()); + param.put("payWay", "02"); + if (StringUtils.isNotBlank(order.getSubject())) { + param.put("subject", order.getSubject()); + } else { + param.put("subject", mer.getMerAbbreviate()); + } + if (StringUtils.isNotBlank(order.getRequestIp())) { + param.put("trmIp", order.getRequestIp()); + } else { + param.put("trmIp", "0.0.0.0"); + } + if (order.getTimeoutExpress() != null) { + param.put("timeExpire", order.getTimeoutExpress()); + } + if (order.getPayMode().equals(TradeOrderPayModeEnum.WECHAT.getCode())) { + if (StringUtils.isBlank(order.getPayAppid())) { + param.put("subAppid", "wxa075e8509802f826"); + } else { + param.put("subAppid", order.getPayAppid()); + } + } + param.put("userId", order.getPayUserId()); + param.put("ledgerAccountFlag", "01"); // 异步分账类型 00 异步分账,01 不分账,04 多次分账 + if (order.getCreateType() != null && order.getCreateType().equals(TradeOrderCreateTypeEnum.type3.getCode())) { + param.put("notifyUrl", CommonSysConst.getSysConfig().getTianque_open_api_pay_notify_url()); + } else { + param.put("notifyUrl", CommonSysConst.getSysConfig().getTianque_micro_pay_ret_url()); + } + + // 请求记录 + log.info("请求参数:", JSONObject.toJSONString(param)); + BsTradeOrderMsg orderMsg = new BsTradeOrderMsg(); + orderMsg.setOutTradeNo(tradeNo); + orderMsg.setType(TradeOrderMsgTypeEnum.type1.getNumber()); + orderMsg.setRequestContent(JSONObject.toJSONString(param)); + tradeOrderMsgService.editTradeOrderMsg(orderMsg); + + JSONObject response = null; + if (order.getTransType().equals("JSAPI")) { + response = RequestUtil.request(TianQueConfig.requestUrl + "/order/jsapiScan", param); + + } else if (order.getTransType().equals("NATIVE")) { + response = RequestUtil.request(TianQueConfig.requestUrl + "/order/activePlusScan", param); + } + orderMsg.setResponseContent(response.toJSONString()); + tradeOrderMsgService.editTradeOrderMsg(orderMsg); + if (!"0000".equals(response.getString("bizCode"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); + } + + Map returnMap = new HashMap<>(); + returnMap.put("order", order); + returnMap.put("payMode", order.getPayMode()); + returnMap.put("platformType", PlatformTypeEnum.type5.getNumber()); + + Map payParam = new HashMap<>(); + + Map accRespFields = new HashMap<>(); + accRespFields.put("nonce_str", StringUtils.isNotBlank(response.getString("paynonceStr"))?response.getString("paynonceStr"):""); + accRespFields.put("code", StringUtils.isNotBlank(response.getString("payUrl"))?response.getString("payUrl"):""); + accRespFields.put("package", StringUtils.isNotBlank(response.getString("payPackage"))?response.getString("payPackage"):""); + accRespFields.put("form_data", ""); + accRespFields.put("time_stamp", StringUtils.isNotBlank(response.getString("payTimeStamp"))?response.getString("payTimeStamp"):""); + accRespFields.put("code_image", ""); + accRespFields.put("app_id", StringUtils.isNotBlank(response.getString("payAppId"))?response.getString("payAppId"):""); + accRespFields.put("sign_type", StringUtils.isNotBlank(response.getString("paySignType"))?response.getString("paySignType"):""); + accRespFields.put("redirect_url", StringUtils.isNotBlank(response.getString("redirectUrl"))?response.getString("redirectUrl"):""); + accRespFields.put("best_pay_info", ""); + String prepay_id = ""; + if (StringUtils.isNotBlank(response.getString("prepayId"))) { + prepay_id = response.getString("prepayId"); + + } else if (StringUtils.isNotBlank(response.getString("source"))) { + prepay_id = response.getString("source"); + + } + accRespFields.put("prepay_id", prepay_id); + accRespFields.put("pay_sign", StringUtils.isNotBlank(response.getString("paySign"))?response.getString("paySign"):""); + payParam.put("acc_resp_fields", accRespFields); + + returnMap.put("payParam", JSONObject.parseObject(JSONObject.toJSONString(payParam))); + log.info("========= END 交易【主扫】 END ==========="); + + return returnMap; + } + + /** + * 查询交易 + * @param tradeNo 订单号 + */ + public JSONObject queryTrade(String tradeNo) { + log.info("========= Start 交易查询 Start ==========="); + try { + // 查询交易订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(tradeNo); + if (order == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + Map param = new HashMap<>(); + param.put("mno", order.getPlatformMerNo()); + param.put("ordNo", order.getOutTradeNo()); + JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/query/tradeQuery", param); + if (!"0000".equals(response.getString("bizCode"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); + } + return response; + } catch (Exception e) { + return null; + } finally { + log.info("========= END 交易查询 END ==========="); + } + } + + /** + * 手续费查询 + * @param tradeNo 订单号 + */ + public JSONObject poundageQuery(String merNo,String tradeNo) { + log.info("========= Start 手续费查询 Start ==========="); + try { + Map param = new HashMap<>(); + param.put("mno", merNo); + param.put("ordNo", tradeNo); + JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/query/poundageQuery", param); + if (!"0000".equals(response.getString("bizCode"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); + } + return response; + } catch (Exception e) { + return null; + } finally { + log.info("========= END 手续费查询 END ==========="); + } + } + + /** + * 退款 + * @param refundNo 订单号 + */ + public Map refund(String refundNo, BigDecimal refundAmount) { + log.info("========= Start 交易退款 Start ==========="); + // 查询交易订单 + BsTradeOrderRefund orderRefund = tradeOrderRefundService.getRefundByRefundNo(refundNo); + if (orderRefund == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到订单"); + } + if (!orderRefund.getStatus().equals(TradeOrderRefundStatusEnum.status1.getNumber())) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "订单不处于退款中状态"); + } + // 查询交易订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(orderRefund.getOutTradeNo()); + if (order == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + + Map param = new HashMap<>(); + param.put("mno", order.getPlatformMerNo()); + param.put("ordNo", orderRefund.getRefundNo()); + param.put("origOrderNo", order.getOutTradeNo()); + param.put("amt", refundAmount); + param.put("refundReason", orderRefund.getRefundReason()); + // param.put("notifyUrl", orderRefund.getRefundReason()); + JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/order/refund", param); + // 请求记录 + BsTradeOrderMsg orderMsg = new BsTradeOrderMsg(); + orderMsg.setOutTradeNo(refundNo); + orderMsg.setType(TradeOrderMsgTypeEnum.type1.getNumber()); + orderMsg.setRequestContent(JSONObject.toJSONString(param)); + orderMsg.setResponseContent(response.toJSONString()); + tradeOrderMsgService.editTradeOrderMsg(orderMsg); + + if (!"0000".equals(response.getString("bizCode"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); + } + /* // 是否分账 + if (order.getProfitSharingStatus().equals(true)) { + // 查询分账记录 + BsTradeOrderProfitSharing tradeOrderProfitSharing = tradeOrderProfitSharingService.getProfitSharingByTradeOrderId(ProfitSharingCmdTypeEnum.CMD_TYPE_1, order.getId()); + if (tradeOrderProfitSharing != null && tradeOrderProfitSharing.getStatus().equals(ProfitSharingStatusEnum.status3.getNumber())) { + laKaLaTradeSeparateService.cancel(tradeOrderProfitSharing.getProfitSharingOrderNo()); + } + }*/ + + orderRefund.setPlatformOrderNo(response.getString("uuid")); + orderRefund.setAccTradeNo(response.getString("transactionId")); + orderRefund.setTotalAmount(order.getTradeActualAmount()); + orderRefund.setRefundAmount(response.getBigDecimal("amt")); + orderRefund.setPayerAmount(response.getBigDecimal("amt")); + orderRefund.setSettleAmount(response.getBigDecimal("realRefundAmount")); + orderRefund.setSettleDate(DateUtil.format(response.getString("clearDt"), "yyyyMMdd")); + orderRefund.setRefundTime(new Date()); + orderRefund.setStatus(TradeOrderRefundStatusEnum.status2.getNumber()); + tradeOrderRefundService.editOrderRefund(orderRefund); + + order.setStatus(TradeOrderStatusEnum.status6.getNumber()); + tradeOrderService.editOrder(order); + + Map returnMap = new HashMap<>(); + returnMap.put("order", order); + returnMap.put("orderRefund", orderRefund); + log.info("========= END 交易退款 END ==========="); + return returnMap; + } + + + /** + * 退款查询 + * @param refundNo 订单号 + */ + public Map refundQuery(String refundNo) { + log.info("========= Start 退款查询 Start ==========="); + // 查询交易订单 + BsTradeOrderRefund orderRefund = tradeOrderRefundService.getRefundByRefundNo(refundNo); + if (orderRefund == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到订单"); + } + // 查询交易订单 + BsTradeOrder order = tradeOrderService.getOrderByOutTradeNo(orderRefund.getOutTradeNo()); + if (order == null) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到交易订单"); + } + Map param = new HashMap<>(); + param.put("mno", order.getPlatformMerNo()); + param.put("ordNo", orderRefund.getRefundNo()); + JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/query/refundQuery", param); + if (!"0000".equals(response.getString("bizCode"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); + } + log.info("========= END 退款查询 END ==========="); + return response; + } + + /** + * 获取银联用户标识 + * @param userAuthCode 授权码 + * @param paymentApp 银联支付标识 + */ + public JSONObject getUnionInfo(String userAuthCode,String paymentApp) { + log.info("========= Start 获取银联用户标识 Start ==========="); + // 查询交易订单 + Map param = new HashMap<>(); + param.put("userAuthCode", userAuthCode); + param.put("paymentApp", paymentApp); + JSONObject response = RequestUtil.request(TianQueConfig.requestUrl + "/query/getUnionInfo", param); + if (!"0000".equals(response.getString("bizCode"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, response.getString("bizMsg")); + } + log.info("========= END 获取银联用户标识 END ==========="); + return response; + } + +} diff --git a/service/src/main/java/com/hfkj/config/CommonSysConfig.java b/service/src/main/java/com/hfkj/config/CommonSysConfig.java index 5d562dc..cbd49b6 100644 --- a/service/src/main/java/com/hfkj/config/CommonSysConfig.java +++ b/service/src/main/java/com/hfkj/config/CommonSysConfig.java @@ -122,6 +122,16 @@ public class CommonSysConfig { */ private String tianque_public_key; + /** + * 【随行付】天阙支付回调地址 + */ + private String tianque_micro_pay_ret_url; + + /** + * 【随行付】天阙支付api回调地址 + */ + private String tianque_open_api_pay_notify_url; + /** * 域名 */ diff --git a/service/src/main/java/com/hfkj/dao/BsMerContractRecordMsgMapperExt.java b/service/src/main/java/com/hfkj/dao/BsMerContractRecordMsgMapperExt.java index a3eb382..9c19f36 100644 --- a/service/src/main/java/com/hfkj/dao/BsMerContractRecordMsgMapperExt.java +++ b/service/src/main/java/com/hfkj/dao/BsMerContractRecordMsgMapperExt.java @@ -10,10 +10,12 @@ import java.util.Map; */ public interface BsMerContractRecordMsgMapperExt { - @Select({"select order_no,response_code,response_msg,response_content,create_time from bs_mer_contract_record_msg" + - " where order_no = (SELECT order_no FROM `bs_mer_contract_record` where mer_id = #{merId} ORDER BY create_time desc LIMIT 1)" + + @Select({""}) + Map selectMerContractRecordMsg(@Param("merId") Long merId, @Param("platformType") Integer platformType); } diff --git a/service/src/main/java/com/hfkj/dao/BsMerMapper.java b/service/src/main/java/com/hfkj/dao/BsMerMapper.java index 163d009..94c35e4 100644 --- a/service/src/main/java/com/hfkj/dao/BsMerMapper.java +++ b/service/src/main/java/com/hfkj/dao/BsMerMapper.java @@ -46,19 +46,21 @@ public interface BsMerMapper extends BsMerMapperExt { "reg_phone, reg_name, ", "reg_email, mer_type, ", "mer_no, mer_name, ", - "mer_abbreviate, mer_mcc_code, ", - "mer_mcc_name, blis_url, ", - "blis_name, blis_no, ", - "blis_reg_address, blis_period_type, ", - "blis_period_start, blis_period_end, ", - "lar_name, lar_id_card, ", - "lar_id_card_portrait_img, lar_id_card_national_emblem_img, ", - "lar_id_card_address, lar_id_card_period_type, ", - "lar_id_card_period_start, lar_id_card_period_end, ", - "complete_status, mer_status, ", - "create_salesman_id, create_salesman_name, ", - "create_time, update_time, ", - "ext_1, ext_2, ext_3)", + "mer_abbreviate, mer_operate_type, ", + "mer_online_type, mer_online_name, ", + "mer_mcc_code, mer_mcc_name, ", + "blis_url, blis_name, ", + "blis_no, blis_reg_address, ", + "blis_period_type, blis_period_start, ", + "blis_period_end, lar_name, ", + "lar_id_card, lar_id_card_portrait_img, ", + "lar_id_card_national_emblem_img, lar_id_card_address, ", + "lar_id_card_period_type, lar_id_card_period_start, ", + "lar_id_card_period_end, complete_status, ", + "mer_status, create_salesman_id, ", + "create_salesman_name, create_time, ", + "update_time, ext_1, ", + "ext_2, ext_3)", "values (#{orgNo,jdbcType=VARCHAR}, #{orgName,jdbcType=VARCHAR}, ", "#{companyId,jdbcType=BIGINT}, #{companyName,jdbcType=VARCHAR}, ", "#{agentId,jdbcType=BIGINT}, #{agentName,jdbcType=VARCHAR}, ", @@ -66,19 +68,21 @@ public interface BsMerMapper extends BsMerMapperExt { "#{regPhone,jdbcType=VARCHAR}, #{regName,jdbcType=VARCHAR}, ", "#{regEmail,jdbcType=VARCHAR}, #{merType,jdbcType=INTEGER}, ", "#{merNo,jdbcType=VARCHAR}, #{merName,jdbcType=VARCHAR}, ", - "#{merAbbreviate,jdbcType=VARCHAR}, #{merMccCode,jdbcType=VARCHAR}, ", - "#{merMccName,jdbcType=VARCHAR}, #{blisUrl,jdbcType=VARCHAR}, ", - "#{blisName,jdbcType=VARCHAR}, #{blisNo,jdbcType=VARCHAR}, ", - "#{blisRegAddress,jdbcType=VARCHAR}, #{blisPeriodType,jdbcType=INTEGER}, ", - "#{blisPeriodStart,jdbcType=VARCHAR}, #{blisPeriodEnd,jdbcType=VARCHAR}, ", - "#{larName,jdbcType=VARCHAR}, #{larIdCard,jdbcType=VARCHAR}, ", - "#{larIdCardPortraitImg,jdbcType=VARCHAR}, #{larIdCardNationalEmblemImg,jdbcType=VARCHAR}, ", - "#{larIdCardAddress,jdbcType=VARCHAR}, #{larIdCardPeriodType,jdbcType=INTEGER}, ", - "#{larIdCardPeriodStart,jdbcType=VARCHAR}, #{larIdCardPeriodEnd,jdbcType=VARCHAR}, ", - "#{completeStatus,jdbcType=INTEGER}, #{merStatus,jdbcType=INTEGER}, ", - "#{createSalesmanId,jdbcType=BIGINT}, #{createSalesmanName,jdbcType=VARCHAR}, ", - "#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, ", - "#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" + "#{merAbbreviate,jdbcType=VARCHAR}, #{merOperateType,jdbcType=INTEGER}, ", + "#{merOnlineType,jdbcType=INTEGER}, #{merOnlineName,jdbcType=VARCHAR}, ", + "#{merMccCode,jdbcType=VARCHAR}, #{merMccName,jdbcType=VARCHAR}, ", + "#{blisUrl,jdbcType=VARCHAR}, #{blisName,jdbcType=VARCHAR}, ", + "#{blisNo,jdbcType=VARCHAR}, #{blisRegAddress,jdbcType=VARCHAR}, ", + "#{blisPeriodType,jdbcType=INTEGER}, #{blisPeriodStart,jdbcType=VARCHAR}, ", + "#{blisPeriodEnd,jdbcType=VARCHAR}, #{larName,jdbcType=VARCHAR}, ", + "#{larIdCard,jdbcType=VARCHAR}, #{larIdCardPortraitImg,jdbcType=VARCHAR}, ", + "#{larIdCardNationalEmblemImg,jdbcType=VARCHAR}, #{larIdCardAddress,jdbcType=VARCHAR}, ", + "#{larIdCardPeriodType,jdbcType=INTEGER}, #{larIdCardPeriodStart,jdbcType=VARCHAR}, ", + "#{larIdCardPeriodEnd,jdbcType=VARCHAR}, #{completeStatus,jdbcType=INTEGER}, ", + "#{merStatus,jdbcType=INTEGER}, #{createSalesmanId,jdbcType=BIGINT}, ", + "#{createSalesmanName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ", + "#{updateTime,jdbcType=TIMESTAMP}, #{ext1,jdbcType=VARCHAR}, ", + "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" }) @Options(useGeneratedKeys=true,keyProperty="id") int insert(BsMer record); @@ -105,6 +109,9 @@ public interface BsMerMapper extends BsMerMapperExt { @Result(column="mer_no", property="merNo", jdbcType=JdbcType.VARCHAR), @Result(column="mer_name", property="merName", jdbcType=JdbcType.VARCHAR), @Result(column="mer_abbreviate", property="merAbbreviate", jdbcType=JdbcType.VARCHAR), + @Result(column="mer_operate_type", property="merOperateType", jdbcType=JdbcType.INTEGER), + @Result(column="mer_online_type", property="merOnlineType", jdbcType=JdbcType.INTEGER), + @Result(column="mer_online_name", property="merOnlineName", jdbcType=JdbcType.VARCHAR), @Result(column="mer_mcc_code", property="merMccCode", jdbcType=JdbcType.VARCHAR), @Result(column="mer_mcc_name", property="merMccName", jdbcType=JdbcType.VARCHAR), @Result(column="blis_url", property="blisUrl", jdbcType=JdbcType.VARCHAR), @@ -138,12 +145,12 @@ public interface BsMerMapper extends BsMerMapperExt { "select", "id, org_no, org_name, company_id, company_name, agent_id, agent_name, salesman_id, ", "salesman_name, reg_phone, reg_name, reg_email, mer_type, mer_no, mer_name, mer_abbreviate, ", - "mer_mcc_code, mer_mcc_name, blis_url, blis_name, blis_no, blis_reg_address, ", - "blis_period_type, blis_period_start, blis_period_end, lar_name, lar_id_card, ", - "lar_id_card_portrait_img, lar_id_card_national_emblem_img, lar_id_card_address, ", - "lar_id_card_period_type, lar_id_card_period_start, lar_id_card_period_end, complete_status, ", - "mer_status, create_salesman_id, create_salesman_name, create_time, update_time, ", - "ext_1, ext_2, ext_3", + "mer_operate_type, mer_online_type, mer_online_name, mer_mcc_code, mer_mcc_name, ", + "blis_url, blis_name, blis_no, blis_reg_address, blis_period_type, blis_period_start, ", + "blis_period_end, lar_name, lar_id_card, lar_id_card_portrait_img, lar_id_card_national_emblem_img, ", + "lar_id_card_address, lar_id_card_period_type, lar_id_card_period_start, lar_id_card_period_end, ", + "complete_status, mer_status, create_salesman_id, create_salesman_name, create_time, ", + "update_time, ext_1, ext_2, ext_3", "from bs_mer", "where id = #{id,jdbcType=BIGINT}" }) @@ -164,6 +171,9 @@ public interface BsMerMapper extends BsMerMapperExt { @Result(column="mer_no", property="merNo", jdbcType=JdbcType.VARCHAR), @Result(column="mer_name", property="merName", jdbcType=JdbcType.VARCHAR), @Result(column="mer_abbreviate", property="merAbbreviate", jdbcType=JdbcType.VARCHAR), + @Result(column="mer_operate_type", property="merOperateType", jdbcType=JdbcType.INTEGER), + @Result(column="mer_online_type", property="merOnlineType", jdbcType=JdbcType.INTEGER), + @Result(column="mer_online_name", property="merOnlineName", jdbcType=JdbcType.VARCHAR), @Result(column="mer_mcc_code", property="merMccCode", jdbcType=JdbcType.VARCHAR), @Result(column="mer_mcc_name", property="merMccName", jdbcType=JdbcType.VARCHAR), @Result(column="blis_url", property="blisUrl", jdbcType=JdbcType.VARCHAR), @@ -219,6 +229,9 @@ public interface BsMerMapper extends BsMerMapperExt { "mer_no = #{merNo,jdbcType=VARCHAR},", "mer_name = #{merName,jdbcType=VARCHAR},", "mer_abbreviate = #{merAbbreviate,jdbcType=VARCHAR},", + "mer_operate_type = #{merOperateType,jdbcType=INTEGER},", + "mer_online_type = #{merOnlineType,jdbcType=INTEGER},", + "mer_online_name = #{merOnlineName,jdbcType=VARCHAR},", "mer_mcc_code = #{merMccCode,jdbcType=VARCHAR},", "mer_mcc_name = #{merMccName,jdbcType=VARCHAR},", "blis_url = #{blisUrl,jdbcType=VARCHAR},", diff --git a/service/src/main/java/com/hfkj/dao/BsMerPlatformNoMapper.java b/service/src/main/java/com/hfkj/dao/BsMerPlatformNoMapper.java index fe7af86..115f652 100644 --- a/service/src/main/java/com/hfkj/dao/BsMerPlatformNoMapper.java +++ b/service/src/main/java/com/hfkj/dao/BsMerPlatformNoMapper.java @@ -46,9 +46,9 @@ public interface BsMerPlatformNoMapper extends BsMerPlatformNoMapperExt { "mer_public_key, platform_operator_id, ", "platform_operator_pwd, refund_cert_url, ", "refund_cert_pwd, `status`, ", - "suggestion_reject, create_time, ", - "update_time, ext_1, ", - "ext_2, ext_3)", + "suggestion_reject, current_platform, ", + "create_time, update_time, ", + "ext_1, ext_2, ext_3)", "values (#{companyId,jdbcType=BIGINT}, #{agentId,jdbcType=BIGINT}, ", "#{merId,jdbcType=BIGINT}, #{merNo,jdbcType=VARCHAR}, #{platformType,jdbcType=INTEGER}, ", "#{platformNo,jdbcType=VARCHAR}, #{cupNo,jdbcType=VARCHAR}, ", @@ -56,9 +56,9 @@ public interface BsMerPlatformNoMapper extends BsMerPlatformNoMapperExt { "#{merPublicKey,jdbcType=VARCHAR}, #{platformOperatorId,jdbcType=VARCHAR}, ", "#{platformOperatorPwd,jdbcType=VARCHAR}, #{refundCertUrl,jdbcType=VARCHAR}, ", "#{refundCertPwd,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, ", - "#{suggestionReject,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ", - "#{updateTime,jdbcType=TIMESTAMP}, #{ext1,jdbcType=VARCHAR}, ", - "#{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" + "#{suggestionReject,jdbcType=VARCHAR}, #{currentPlatform,jdbcType=BIT}, ", + "#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, ", + "#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" }) @Options(useGeneratedKeys=true,keyProperty="id") int insert(BsMerPlatformNo record); @@ -86,6 +86,7 @@ public interface BsMerPlatformNoMapper extends BsMerPlatformNoMapperExt { @Result(column="refund_cert_pwd", property="refundCertPwd", jdbcType=JdbcType.VARCHAR), @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), @Result(column="suggestion_reject", property="suggestionReject", jdbcType=JdbcType.VARCHAR), + @Result(column="current_platform", property="currentPlatform", jdbcType=JdbcType.BIT), @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR), @@ -98,8 +99,8 @@ public interface BsMerPlatformNoMapper extends BsMerPlatformNoMapperExt { "select", "id, company_id, agent_id, mer_id, mer_no, platform_type, platform_no, cup_no, ", "pos_id, branch_id, mer_public_key, platform_operator_id, platform_operator_pwd, ", - "refund_cert_url, refund_cert_pwd, `status`, suggestion_reject, create_time, ", - "update_time, ext_1, ext_2, ext_3", + "refund_cert_url, refund_cert_pwd, `status`, suggestion_reject, current_platform, ", + "create_time, update_time, ext_1, ext_2, ext_3", "from bs_mer_platform_no", "where id = #{id,jdbcType=BIGINT}" }) @@ -121,6 +122,7 @@ public interface BsMerPlatformNoMapper extends BsMerPlatformNoMapperExt { @Result(column="refund_cert_pwd", property="refundCertPwd", jdbcType=JdbcType.VARCHAR), @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), @Result(column="suggestion_reject", property="suggestionReject", jdbcType=JdbcType.VARCHAR), + @Result(column="current_platform", property="currentPlatform", jdbcType=JdbcType.BIT), @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP), @Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR), @@ -156,6 +158,7 @@ public interface BsMerPlatformNoMapper extends BsMerPlatformNoMapperExt { "refund_cert_pwd = #{refundCertPwd,jdbcType=VARCHAR},", "`status` = #{status,jdbcType=INTEGER},", "suggestion_reject = #{suggestionReject,jdbcType=VARCHAR},", + "current_platform = #{currentPlatform,jdbcType=BIT},", "create_time = #{createTime,jdbcType=TIMESTAMP},", "update_time = #{updateTime,jdbcType=TIMESTAMP},", "ext_1 = #{ext1,jdbcType=VARCHAR},", diff --git a/service/src/main/java/com/hfkj/dao/BsMerPlatformNoSqlProvider.java b/service/src/main/java/com/hfkj/dao/BsMerPlatformNoSqlProvider.java index c7d1d2a..9af486f 100644 --- a/service/src/main/java/com/hfkj/dao/BsMerPlatformNoSqlProvider.java +++ b/service/src/main/java/com/hfkj/dao/BsMerPlatformNoSqlProvider.java @@ -92,6 +92,10 @@ public class BsMerPlatformNoSqlProvider { sql.VALUES("suggestion_reject", "#{suggestionReject,jdbcType=VARCHAR}"); } + if (record.getCurrentPlatform() != null) { + sql.VALUES("current_platform", "#{currentPlatform,jdbcType=BIT}"); + } + if (record.getCreateTime() != null) { sql.VALUES("create_time", "#{createTime,jdbcType=TIMESTAMP}"); } @@ -138,6 +142,7 @@ public class BsMerPlatformNoSqlProvider { sql.SELECT("refund_cert_pwd"); sql.SELECT("`status`"); sql.SELECT("suggestion_reject"); + sql.SELECT("current_platform"); sql.SELECT("create_time"); sql.SELECT("update_time"); sql.SELECT("ext_1"); @@ -228,6 +233,10 @@ public class BsMerPlatformNoSqlProvider { sql.SET("suggestion_reject = #{record.suggestionReject,jdbcType=VARCHAR}"); } + if (record.getCurrentPlatform() != null) { + sql.SET("current_platform = #{record.currentPlatform,jdbcType=BIT}"); + } + if (record.getCreateTime() != null) { sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); } @@ -273,6 +282,7 @@ public class BsMerPlatformNoSqlProvider { sql.SET("refund_cert_pwd = #{record.refundCertPwd,jdbcType=VARCHAR}"); sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); sql.SET("suggestion_reject = #{record.suggestionReject,jdbcType=VARCHAR}"); + sql.SET("current_platform = #{record.currentPlatform,jdbcType=BIT}"); sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); sql.SET("update_time = #{record.updateTime,jdbcType=TIMESTAMP}"); sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}"); @@ -352,6 +362,10 @@ public class BsMerPlatformNoSqlProvider { sql.SET("suggestion_reject = #{suggestionReject,jdbcType=VARCHAR}"); } + if (record.getCurrentPlatform() != null) { + sql.SET("current_platform = #{currentPlatform,jdbcType=BIT}"); + } + if (record.getCreateTime() != null) { sql.SET("create_time = #{createTime,jdbcType=TIMESTAMP}"); } diff --git a/service/src/main/java/com/hfkj/dao/BsMerSqlProvider.java b/service/src/main/java/com/hfkj/dao/BsMerSqlProvider.java index 2f588d0..d0c857c 100644 --- a/service/src/main/java/com/hfkj/dao/BsMerSqlProvider.java +++ b/service/src/main/java/com/hfkj/dao/BsMerSqlProvider.java @@ -88,6 +88,18 @@ public class BsMerSqlProvider { sql.VALUES("mer_abbreviate", "#{merAbbreviate,jdbcType=VARCHAR}"); } + if (record.getMerOperateType() != null) { + sql.VALUES("mer_operate_type", "#{merOperateType,jdbcType=INTEGER}"); + } + + if (record.getMerOnlineType() != null) { + sql.VALUES("mer_online_type", "#{merOnlineType,jdbcType=INTEGER}"); + } + + if (record.getMerOnlineName() != null) { + sql.VALUES("mer_online_name", "#{merOnlineName,jdbcType=VARCHAR}"); + } + if (record.getMerMccCode() != null) { sql.VALUES("mer_mcc_code", "#{merMccCode,jdbcType=VARCHAR}"); } @@ -217,6 +229,9 @@ public class BsMerSqlProvider { sql.SELECT("mer_no"); sql.SELECT("mer_name"); sql.SELECT("mer_abbreviate"); + sql.SELECT("mer_operate_type"); + sql.SELECT("mer_online_type"); + sql.SELECT("mer_online_name"); sql.SELECT("mer_mcc_code"); sql.SELECT("mer_mcc_name"); sql.SELECT("blis_url"); @@ -324,6 +339,18 @@ public class BsMerSqlProvider { sql.SET("mer_abbreviate = #{record.merAbbreviate,jdbcType=VARCHAR}"); } + if (record.getMerOperateType() != null) { + sql.SET("mer_operate_type = #{record.merOperateType,jdbcType=INTEGER}"); + } + + if (record.getMerOnlineType() != null) { + sql.SET("mer_online_type = #{record.merOnlineType,jdbcType=INTEGER}"); + } + + if (record.getMerOnlineName() != null) { + sql.SET("mer_online_name = #{record.merOnlineName,jdbcType=VARCHAR}"); + } + if (record.getMerMccCode() != null) { sql.SET("mer_mcc_code = #{record.merMccCode,jdbcType=VARCHAR}"); } @@ -452,6 +479,9 @@ public class BsMerSqlProvider { sql.SET("mer_no = #{record.merNo,jdbcType=VARCHAR}"); sql.SET("mer_name = #{record.merName,jdbcType=VARCHAR}"); sql.SET("mer_abbreviate = #{record.merAbbreviate,jdbcType=VARCHAR}"); + sql.SET("mer_operate_type = #{record.merOperateType,jdbcType=INTEGER}"); + sql.SET("mer_online_type = #{record.merOnlineType,jdbcType=INTEGER}"); + sql.SET("mer_online_name = #{record.merOnlineName,jdbcType=VARCHAR}"); sql.SET("mer_mcc_code = #{record.merMccCode,jdbcType=VARCHAR}"); sql.SET("mer_mcc_name = #{record.merMccName,jdbcType=VARCHAR}"); sql.SET("blis_url = #{record.blisUrl,jdbcType=VARCHAR}"); @@ -548,6 +578,18 @@ public class BsMerSqlProvider { sql.SET("mer_abbreviate = #{merAbbreviate,jdbcType=VARCHAR}"); } + if (record.getMerOperateType() != null) { + sql.SET("mer_operate_type = #{merOperateType,jdbcType=INTEGER}"); + } + + if (record.getMerOnlineType() != null) { + sql.SET("mer_online_type = #{merOnlineType,jdbcType=INTEGER}"); + } + + if (record.getMerOnlineName() != null) { + sql.SET("mer_online_name = #{merOnlineName,jdbcType=VARCHAR}"); + } + if (record.getMerMccCode() != null) { sql.SET("mer_mcc_code = #{merMccCode,jdbcType=VARCHAR}"); } diff --git a/service/src/main/java/com/hfkj/entity/BsMer.java b/service/src/main/java/com/hfkj/entity/BsMer.java index 6c6698d..a48b6df 100644 --- a/service/src/main/java/com/hfkj/entity/BsMer.java +++ b/service/src/main/java/com/hfkj/entity/BsMer.java @@ -93,6 +93,21 @@ public class BsMer implements Serializable { */ private String merAbbreviate; + /** + * 商户经营类型 1:线下 2:线上 + */ + private Integer merOperateType; + + /** + * 商户线上产品类型 1:APP 2:网站 3:公众号/小程序/服务窗 + */ + private Integer merOnlineType; + + /** + * 商户线上产品名称 + */ + private String merOnlineName; + /** * 商户MCC编号 */ @@ -344,6 +359,30 @@ public class BsMer implements Serializable { this.merAbbreviate = merAbbreviate; } + public Integer getMerOperateType() { + return merOperateType; + } + + public void setMerOperateType(Integer merOperateType) { + this.merOperateType = merOperateType; + } + + public Integer getMerOnlineType() { + return merOnlineType; + } + + public void setMerOnlineType(Integer merOnlineType) { + this.merOnlineType = merOnlineType; + } + + public String getMerOnlineName() { + return merOnlineName; + } + + public void setMerOnlineName(String merOnlineName) { + this.merOnlineName = merOnlineName; + } + public String getMerMccCode() { return merMccCode; } @@ -580,6 +619,9 @@ public class BsMer implements Serializable { && (this.getMerNo() == null ? other.getMerNo() == null : this.getMerNo().equals(other.getMerNo())) && (this.getMerName() == null ? other.getMerName() == null : this.getMerName().equals(other.getMerName())) && (this.getMerAbbreviate() == null ? other.getMerAbbreviate() == null : this.getMerAbbreviate().equals(other.getMerAbbreviate())) + && (this.getMerOperateType() == null ? other.getMerOperateType() == null : this.getMerOperateType().equals(other.getMerOperateType())) + && (this.getMerOnlineType() == null ? other.getMerOnlineType() == null : this.getMerOnlineType().equals(other.getMerOnlineType())) + && (this.getMerOnlineName() == null ? other.getMerOnlineName() == null : this.getMerOnlineName().equals(other.getMerOnlineName())) && (this.getMerMccCode() == null ? other.getMerMccCode() == null : this.getMerMccCode().equals(other.getMerMccCode())) && (this.getMerMccName() == null ? other.getMerMccName() == null : this.getMerMccName().equals(other.getMerMccName())) && (this.getBlisUrl() == null ? other.getBlisUrl() == null : this.getBlisUrl().equals(other.getBlisUrl())) @@ -628,6 +670,9 @@ public class BsMer implements Serializable { result = prime * result + ((getMerNo() == null) ? 0 : getMerNo().hashCode()); result = prime * result + ((getMerName() == null) ? 0 : getMerName().hashCode()); result = prime * result + ((getMerAbbreviate() == null) ? 0 : getMerAbbreviate().hashCode()); + result = prime * result + ((getMerOperateType() == null) ? 0 : getMerOperateType().hashCode()); + result = prime * result + ((getMerOnlineType() == null) ? 0 : getMerOnlineType().hashCode()); + result = prime * result + ((getMerOnlineName() == null) ? 0 : getMerOnlineName().hashCode()); result = prime * result + ((getMerMccCode() == null) ? 0 : getMerMccCode().hashCode()); result = prime * result + ((getMerMccName() == null) ? 0 : getMerMccName().hashCode()); result = prime * result + ((getBlisUrl() == null) ? 0 : getBlisUrl().hashCode()); @@ -679,6 +724,9 @@ public class BsMer implements Serializable { sb.append(", merNo=").append(merNo); sb.append(", merName=").append(merName); sb.append(", merAbbreviate=").append(merAbbreviate); + sb.append(", merOperateType=").append(merOperateType); + sb.append(", merOnlineType=").append(merOnlineType); + sb.append(", merOnlineName=").append(merOnlineName); sb.append(", merMccCode=").append(merMccCode); sb.append(", merMccName=").append(merMccName); sb.append(", blisUrl=").append(blisUrl); diff --git a/service/src/main/java/com/hfkj/entity/BsMerExample.java b/service/src/main/java/com/hfkj/entity/BsMerExample.java index 39f6601..4834734 100644 --- a/service/src/main/java/com/hfkj/entity/BsMerExample.java +++ b/service/src/main/java/com/hfkj/entity/BsMerExample.java @@ -1195,6 +1195,196 @@ public class BsMerExample { return (Criteria) this; } + public Criteria andMerOperateTypeIsNull() { + addCriterion("mer_operate_type is null"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeIsNotNull() { + addCriterion("mer_operate_type is not null"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeEqualTo(Integer value) { + addCriterion("mer_operate_type =", value, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeNotEqualTo(Integer value) { + addCriterion("mer_operate_type <>", value, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeGreaterThan(Integer value) { + addCriterion("mer_operate_type >", value, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeGreaterThanOrEqualTo(Integer value) { + addCriterion("mer_operate_type >=", value, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeLessThan(Integer value) { + addCriterion("mer_operate_type <", value, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeLessThanOrEqualTo(Integer value) { + addCriterion("mer_operate_type <=", value, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeIn(List values) { + addCriterion("mer_operate_type in", values, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeNotIn(List values) { + addCriterion("mer_operate_type not in", values, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeBetween(Integer value1, Integer value2) { + addCriterion("mer_operate_type between", value1, value2, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOperateTypeNotBetween(Integer value1, Integer value2) { + addCriterion("mer_operate_type not between", value1, value2, "merOperateType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeIsNull() { + addCriterion("mer_online_type is null"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeIsNotNull() { + addCriterion("mer_online_type is not null"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeEqualTo(Integer value) { + addCriterion("mer_online_type =", value, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeNotEqualTo(Integer value) { + addCriterion("mer_online_type <>", value, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeGreaterThan(Integer value) { + addCriterion("mer_online_type >", value, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeGreaterThanOrEqualTo(Integer value) { + addCriterion("mer_online_type >=", value, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeLessThan(Integer value) { + addCriterion("mer_online_type <", value, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeLessThanOrEqualTo(Integer value) { + addCriterion("mer_online_type <=", value, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeIn(List values) { + addCriterion("mer_online_type in", values, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeNotIn(List values) { + addCriterion("mer_online_type not in", values, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeBetween(Integer value1, Integer value2) { + addCriterion("mer_online_type between", value1, value2, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineTypeNotBetween(Integer value1, Integer value2) { + addCriterion("mer_online_type not between", value1, value2, "merOnlineType"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameIsNull() { + addCriterion("mer_online_name is null"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameIsNotNull() { + addCriterion("mer_online_name is not null"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameEqualTo(String value) { + addCriterion("mer_online_name =", value, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameNotEqualTo(String value) { + addCriterion("mer_online_name <>", value, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameGreaterThan(String value) { + addCriterion("mer_online_name >", value, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameGreaterThanOrEqualTo(String value) { + addCriterion("mer_online_name >=", value, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameLessThan(String value) { + addCriterion("mer_online_name <", value, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameLessThanOrEqualTo(String value) { + addCriterion("mer_online_name <=", value, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameLike(String value) { + addCriterion("mer_online_name like", value, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameNotLike(String value) { + addCriterion("mer_online_name not like", value, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameIn(List values) { + addCriterion("mer_online_name in", values, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameNotIn(List values) { + addCriterion("mer_online_name not in", values, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameBetween(String value1, String value2) { + addCriterion("mer_online_name between", value1, value2, "merOnlineName"); + return (Criteria) this; + } + + public Criteria andMerOnlineNameNotBetween(String value1, String value2) { + addCriterion("mer_online_name not between", value1, value2, "merOnlineName"); + return (Criteria) this; + } + public Criteria andMerMccCodeIsNull() { addCriterion("mer_mcc_code is null"); return (Criteria) this; diff --git a/service/src/main/java/com/hfkj/entity/BsMerPlatformNo.java b/service/src/main/java/com/hfkj/entity/BsMerPlatformNo.java index 4760032..5522733 100644 --- a/service/src/main/java/com/hfkj/entity/BsMerPlatformNo.java +++ b/service/src/main/java/com/hfkj/entity/BsMerPlatformNo.java @@ -98,6 +98,11 @@ public class BsMerPlatformNo implements Serializable { */ private String suggestionReject; + /** + * 当前支付平台 1:是 0:否 + */ + private Boolean currentPlatform; + /** * 创建时间 */ @@ -252,6 +257,14 @@ public class BsMerPlatformNo implements Serializable { this.suggestionReject = suggestionReject; } + public Boolean getCurrentPlatform() { + return currentPlatform; + } + + public void setCurrentPlatform(Boolean currentPlatform) { + this.currentPlatform = currentPlatform; + } + public Date getCreateTime() { return createTime; } @@ -321,6 +334,7 @@ public class BsMerPlatformNo implements Serializable { && (this.getRefundCertPwd() == null ? other.getRefundCertPwd() == null : this.getRefundCertPwd().equals(other.getRefundCertPwd())) && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) && (this.getSuggestionReject() == null ? other.getSuggestionReject() == null : this.getSuggestionReject().equals(other.getSuggestionReject())) + && (this.getCurrentPlatform() == null ? other.getCurrentPlatform() == null : this.getCurrentPlatform().equals(other.getCurrentPlatform())) && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime())) && (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1())) @@ -349,6 +363,7 @@ public class BsMerPlatformNo implements Serializable { result = prime * result + ((getRefundCertPwd() == null) ? 0 : getRefundCertPwd().hashCode()); result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); result = prime * result + ((getSuggestionReject() == null) ? 0 : getSuggestionReject().hashCode()); + result = prime * result + ((getCurrentPlatform() == null) ? 0 : getCurrentPlatform().hashCode()); result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode()); result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode()); @@ -380,6 +395,7 @@ public class BsMerPlatformNo implements Serializable { sb.append(", refundCertPwd=").append(refundCertPwd); sb.append(", status=").append(status); sb.append(", suggestionReject=").append(suggestionReject); + sb.append(", currentPlatform=").append(currentPlatform); sb.append(", createTime=").append(createTime); sb.append(", updateTime=").append(updateTime); sb.append(", ext1=").append(ext1); diff --git a/service/src/main/java/com/hfkj/entity/BsMerPlatformNoExample.java b/service/src/main/java/com/hfkj/entity/BsMerPlatformNoExample.java index 5b19c51..edb17c5 100644 --- a/service/src/main/java/com/hfkj/entity/BsMerPlatformNoExample.java +++ b/service/src/main/java/com/hfkj/entity/BsMerPlatformNoExample.java @@ -1255,6 +1255,66 @@ public class BsMerPlatformNoExample { return (Criteria) this; } + public Criteria andCurrentPlatformIsNull() { + addCriterion("current_platform is null"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformIsNotNull() { + addCriterion("current_platform is not null"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformEqualTo(Boolean value) { + addCriterion("current_platform =", value, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformNotEqualTo(Boolean value) { + addCriterion("current_platform <>", value, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformGreaterThan(Boolean value) { + addCriterion("current_platform >", value, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformGreaterThanOrEqualTo(Boolean value) { + addCriterion("current_platform >=", value, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformLessThan(Boolean value) { + addCriterion("current_platform <", value, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformLessThanOrEqualTo(Boolean value) { + addCriterion("current_platform <=", value, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformIn(List values) { + addCriterion("current_platform in", values, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformNotIn(List values) { + addCriterion("current_platform not in", values, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformBetween(Boolean value1, Boolean value2) { + addCriterion("current_platform between", value1, value2, "currentPlatform"); + return (Criteria) this; + } + + public Criteria andCurrentPlatformNotBetween(Boolean value1, Boolean value2) { + addCriterion("current_platform not between", value1, value2, "currentPlatform"); + return (Criteria) this; + } + public Criteria andCreateTimeIsNull() { addCriterion("create_time is null"); return (Criteria) this; diff --git a/service/src/main/java/com/hfkj/model/StoreModel.java b/service/src/main/java/com/hfkj/model/StoreModel.java index 3d57c47..2a60178 100644 --- a/service/src/main/java/com/hfkj/model/StoreModel.java +++ b/service/src/main/java/com/hfkj/model/StoreModel.java @@ -10,6 +10,11 @@ import lombok.Data; @Data public class StoreModel extends BsStore { + /** + * 平台类型 + */ + private Integer merPlatformType; + /** * 账户信息 */ diff --git a/service/src/main/java/com/hfkj/openapi/v1/service/impl/OpenApiTradeOrderServiceImpl.java b/service/src/main/java/com/hfkj/openapi/v1/service/impl/OpenApiTradeOrderServiceImpl.java index fb4d31a..1b6a7e0 100644 --- a/service/src/main/java/com/hfkj/openapi/v1/service/impl/OpenApiTradeOrderServiceImpl.java +++ b/service/src/main/java/com/hfkj/openapi/v1/service/impl/OpenApiTradeOrderServiceImpl.java @@ -2,10 +2,12 @@ package com.hfkj.openapi.v1.service.impl; import com.alibaba.fastjson.JSONObject; import com.hfkj.channel.lakala.LaKaLaTradeService; +import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.common.exception.ErrorCode; import com.hfkj.common.exception.ErrorHelp; import com.hfkj.common.exception.SysCode; import com.hfkj.common.utils.DateUtil; +import com.hfkj.entity.BsMerPlatformNo; import com.hfkj.entity.BsTradeOrder; import com.hfkj.entity.BsTradeOrderRefund; import com.hfkj.dao.OpenApiTradeOrderMapper; @@ -17,8 +19,10 @@ import com.hfkj.openapi.v1.model.TradeBillsModel; import com.hfkj.openapi.v1.service.OpenApiTradeOrderService; import com.hfkj.openapi.v1.utils.SignatureUtil; import com.hfkj.service.BsMerKeyService; +import com.hfkj.service.BsMerPlatformNoService; import com.hfkj.service.BsTradeOrderRefundService; import com.hfkj.service.BsTradeOrderService; +import com.hfkj.sysenum.PlatformTypeEnum; import com.hfkj.sysenum.TradeOrderRefundStatusEnum; import com.hfkj.sysenum.TradeOrderRefundTypeEnum; import com.hfkj.sysenum.TradeOrderStatusEnum; @@ -43,25 +47,39 @@ public class OpenApiTradeOrderServiceImpl implements OpenApiTradeOrderService { @Resource private OpenApiTradeOrderMapper openApiTradeOrderMapper; - @Resource private BsTradeOrderService bsTradeOrderService; - @Resource private BsTradeOrderRefundService bsTradeOrderRefundService; - @Resource private BsMerKeyService merKeyService; - @Resource private LaKaLaTradeService laKaLaTradeService; + @Resource + private TianQueTradeService tianQueTradeService; + @Resource + private BsMerPlatformNoService merPlatformNoService; @Override @Transactional(propagation= Propagation.REQUIRES_NEW) public Map createOrder(BsTradeOrder tradeOrder) throws Exception { bsTradeOrderService.editOrder(tradeOrder); - Map preorder = laKaLaTradeService.preorder(tradeOrder.getOutTradeNo()); + BsMerPlatformNo platform = merPlatformNoService.getCurrentPlatform(tradeOrder.getMerId()); + if (platform == null) { + throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未配置支付渠道"); + } + Map preorder; + if (platform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { + preorder = laKaLaTradeService.preorder(tradeOrder.getOutTradeNo()); + + } else if (platform.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())) { + preorder = tianQueTradeService.preorder(tradeOrder.getOutTradeNo()); + + } else { + throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未知的支付渠道"); + } + preorder.put("merchantNo", tradeOrder.getMerNo()); preorder.put("outTradeNo", tradeOrder.getOutTradeNo()); diff --git a/service/src/main/java/com/hfkj/openapi/v1/utils/SignatureUtil.java b/service/src/main/java/com/hfkj/openapi/v1/utils/SignatureUtil.java index d7196d1..51f93a0 100644 --- a/service/src/main/java/com/hfkj/openapi/v1/utils/SignatureUtil.java +++ b/service/src/main/java/com/hfkj/openapi/v1/utils/SignatureUtil.java @@ -85,51 +85,17 @@ public class SignatureUtil { public static void main(String[] args) throws Exception { String paramStr = "{\n" + " \"merchantNo\": \"2023041916292112804\",\n" + - " \"outTradeNo\": \"ZF1130202305051459532538970028\",\n" + - " \"payMode\": \"ALIPAY\",\n" + + " \"outTradeNo\": \"ZF1130202305051459532538970034\",\n" + + " \"payMode\": \"WECHAT\",\n" + " \"totalAmount\": 0.01,\n" + - " \"transType\": \"NATIVE\",\n" + + " \"transType\": \"JSAPI\",\n" + + " \"subAppid\": \"wx52bbabe89258602a\",\n" + + " \"userId\": \"oz6S35CrEuPfBbpta6DuLninz2tA\",\n" + " \"profitSharing\": 0,\n" + " \"specialField\": \"测试\"" + "}"; - String sign = createSign(JSONObject.parseObject(paramStr), "2jLO2WjXcSRSzTCaca0Kmv0OFrfYBbrA"); + String sign = createSign(JSONObject.parseObject(paramStr), "cj0XLsFuryluIXiopa25IwvsurWzBeUW"); System.out.println(sign); - - /*// 创建一个线程池,设置最大线程数为10 - ExecutorService executor = Executors.newFixedThreadPool(10); - - // 提交10个查询任务 - for (int i = 0; i < 10; i++) { - executor.submit(new QueryTask(i)); - } - - // 关闭线程池 - executor.shutdown();*/ } - static class QueryTask implements Runnable { - private int taskId; - - public QueryTask(int taskId) { - this.taskId = taskId; - } - - @Override - public void run() { - // 执行查询任务 - String result = queryData(taskId); - System.out.println("Task " + taskId + " result: " + result); - } - - private String queryData(int taskId) { - // 模拟查询数据的过程 - /*try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - }*/ - - return "data " + taskId; - } - } } diff --git a/service/src/main/java/com/hfkj/service/BsMerContractRecordMsgService.java b/service/src/main/java/com/hfkj/service/BsMerContractRecordMsgService.java index dfb8faa..161e621 100644 --- a/service/src/main/java/com/hfkj/service/BsMerContractRecordMsgService.java +++ b/service/src/main/java/com/hfkj/service/BsMerContractRecordMsgService.java @@ -1,6 +1,7 @@ package com.hfkj.service; import com.hfkj.entity.BsMerContractRecordMsg; +import com.hfkj.sysenum.PlatformTypeEnum; import java.util.Map; @@ -21,5 +22,5 @@ public interface BsMerContractRecordMsgService { * @param merId * @return */ - Map getMerContractRecordMsg(Long merId); + Map getMerContractRecordMsg(Long merId, PlatformTypeEnum platformType); } diff --git a/service/src/main/java/com/hfkj/service/BsMerContractRecordService.java b/service/src/main/java/com/hfkj/service/BsMerContractRecordService.java index caaa9a7..3c1a2f6 100644 --- a/service/src/main/java/com/hfkj/service/BsMerContractRecordService.java +++ b/service/src/main/java/com/hfkj/service/BsMerContractRecordService.java @@ -30,6 +30,13 @@ public interface BsMerContractRecordService { */ BsMerContractRecord getRecordByOrderNo(String orderNo); + /** + * 根据订单号 查询记录 + * @param contractId + * @return + */ + BsMerContractRecord getRecordByContractId(String contractId); + /** * 查询进件记录 * @param param diff --git a/service/src/main/java/com/hfkj/service/BsMerContractService.java b/service/src/main/java/com/hfkj/service/BsMerContractService.java index 4021f40..500030c 100644 --- a/service/src/main/java/com/hfkj/service/BsMerContractService.java +++ b/service/src/main/java/com/hfkj/service/BsMerContractService.java @@ -1,6 +1,7 @@ package com.hfkj.service; import com.hfkj.entity.BsMerContractRecord; +import com.hfkj.sysenum.PlatformTypeEnum; import java.util.List; import java.util.Map; @@ -15,7 +16,7 @@ public interface BsMerContractService { * 商户进件 * @param merId */ - void addMerContract(Long merId) throws Exception; + void addMerContract(Long merId, PlatformTypeEnum platformType) throws Exception; /** * 复议提交 diff --git a/service/src/main/java/com/hfkj/service/BsMerPlatformNoService.java b/service/src/main/java/com/hfkj/service/BsMerPlatformNoService.java index af3fd1f..f9f6cb9 100644 --- a/service/src/main/java/com/hfkj/service/BsMerPlatformNoService.java +++ b/service/src/main/java/com/hfkj/service/BsMerPlatformNoService.java @@ -1,6 +1,7 @@ package com.hfkj.service; import com.hfkj.entity.BsMerPlatformNo; +import com.hfkj.sysenum.MerPlatformNoStatusEnum; import com.hfkj.sysenum.PlatformTypeEnum; import java.util.List; @@ -26,6 +27,15 @@ public interface BsMerPlatformNoService { */ BsMerPlatformNo getPlatformNo(Long merId, PlatformTypeEnum type); + /** + * 当前商户平台 + * @param merId + * @return + */ + BsMerPlatformNo getCurrentPlatform(Long merId); + + BsMerPlatformNo getPlatformNo(Long merId, PlatformTypeEnum type, MerPlatformNoStatusEnum status); + BsMerPlatformNo getPlatformNoByCupNo(String merCupNo); /** @@ -34,4 +44,11 @@ public interface BsMerPlatformNoService { * @return */ List getMerPlatformNoList(Map param); + + /** + * 切换平台 + * @param merId + * @param type + */ + void switchPlatform(Long merId, PlatformTypeEnum type); } diff --git a/service/src/main/java/com/hfkj/service/impl/BsMerContractRecordMsgServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsMerContractRecordMsgServiceImpl.java index e1a9ccf..47a0945 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsMerContractRecordMsgServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsMerContractRecordMsgServiceImpl.java @@ -3,6 +3,7 @@ package com.hfkj.service.impl; import com.hfkj.dao.BsMerContractRecordMsgMapper; import com.hfkj.entity.BsMerContractRecordMsg; import com.hfkj.service.BsMerContractRecordMsgService; +import com.hfkj.sysenum.PlatformTypeEnum; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -22,7 +23,7 @@ public class BsMerContractRecordMsgServiceImpl implements BsMerContractRecordMsg } @Override - public Map getMerContractRecordMsg(Long merId) { - return merContractRecordMsgMapper.selectMerContractRecordMsg(merId); + public Map getMerContractRecordMsg(Long merId, PlatformTypeEnum platformType) { + return merContractRecordMsgMapper.selectMerContractRecordMsg(merId, platformType!=null?platformType.getNumber():null); } } diff --git a/service/src/main/java/com/hfkj/service/impl/BsMerContractRecordServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsMerContractRecordServiceImpl.java index 0447deb..e621ddb 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsMerContractRecordServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsMerContractRecordServiceImpl.java @@ -43,6 +43,17 @@ public class BsMerContractRecordServiceImpl implements BsMerContractRecordServic return null; } + @Override + public BsMerContractRecord getRecordByContractId(String contractId) { + BsMerContractRecordExample example = new BsMerContractRecordExample(); + example.createCriteria().andContractIdEqualTo(contractId); + List list = merContractRecordMapper.selectByExample(example); + if (list.size() > 0) { + return list.get(0); + } + return null; + } + @Override public List getContractRecordList(Map param) { BsMerContractRecordExample example = new BsMerContractRecordExample(); diff --git a/service/src/main/java/com/hfkj/service/impl/BsMerContractServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsMerContractServiceImpl.java index 1dbc0ce..87bfadf 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsMerContractServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsMerContractServiceImpl.java @@ -16,6 +16,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @Service("merContractService") public class BsMerContractServiceImpl implements BsMerContractService { @@ -39,7 +41,7 @@ public class BsMerContractServiceImpl implements BsMerContractService { private SaasMerService saasMerService; @Override - public void addMerContract(Long merId) throws Exception { + public void addMerContract(Long merId, PlatformTypeEnum platformType) throws Exception { BsMer mer = merService.getMer(merId); if (mer == null) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到商户"); @@ -48,18 +50,29 @@ public class BsMerContractServiceImpl implements BsMerContractService { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "商户资料未完善"); } - // 当前的进件平台 - BsPlatform platform = platformService.getCurrentPlatform(); - if (platform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { - // laKaLaMerService.addMer(merId); - saasMerService.addMer(merId); + if (platformType == null) { + // 当前的进件平台 + List platformList = platformService.getPlatformList(); + for (BsPlatform platform : platformList) { + if (platform.getPlatformType().equals(PlatformTypeEnum.type1.getNumber())) { - } else if (platform.getPlatformType().equals(PlatformTypeEnum.type4.getNumber())) { - weiXinMerService.addMer(merId); + new Thread(() -> saasMerService.addMer(merId)).start(); - } else if (platform.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())) { - tianQueMerService.addMer(merId); + } else if (platform.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())) { + new Thread(() -> tianQueMerService.addMer(merId)).start(); + + } + } + } else { + // 进固定的平台 + if (PlatformTypeEnum.type1.getNumber().equals(platformType.getNumber())) { + new Thread(() -> saasMerService.addMer(merId)).start(); + + } else if (PlatformTypeEnum.type5.getNumber().equals(platformType.getNumber())) { + new Thread(() -> tianQueMerService.addMer(merId)).start(); + } } + } @Override diff --git a/service/src/main/java/com/hfkj/service/impl/BsMerPlatformNoServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsMerPlatformNoServiceImpl.java index a784fc8..d226a3e 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsMerPlatformNoServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsMerPlatformNoServiceImpl.java @@ -4,12 +4,14 @@ import com.hfkj.dao.BsMerPlatformNoMapper; import com.hfkj.entity.BsMerPlatformNo; import com.hfkj.entity.BsMerPlatformNoExample; import com.hfkj.service.BsMerPlatformNoService; +import com.hfkj.sysenum.MerPlatformNoStatusEnum; import com.hfkj.sysenum.PlatformTypeEnum; import org.apache.commons.collections4.MapUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -22,7 +24,6 @@ public class BsMerPlatformNoServiceImpl implements BsMerPlatformNoService { @Override public void editMerPlatformNo(BsMerPlatformNo merPlatformNo) { if (merPlatformNo.getId() == null) { - merPlatformNo.setStatus(1); merPlatformNo.setCreateTime(new Date()); merPlatformNo.setUpdateTime(new Date()); merPlatformNoMapper.insert(merPlatformNo); @@ -43,6 +44,37 @@ public class BsMerPlatformNoServiceImpl implements BsMerPlatformNoService { return null; } + @Override + public BsMerPlatformNo getCurrentPlatform(Long merId) { + BsMerPlatformNoExample example = new BsMerPlatformNoExample(); + example.createCriteria() + .andMerIdEqualTo(merId) + .andStatusNotEqualTo(MerPlatformNoStatusEnum.status0.getNumber()) + .andCurrentPlatformEqualTo(true); + List list = merPlatformNoMapper.selectByExample(example); + if (list.size() > 0) { + return list.get(0); + } + return null; + } + + @Override + public BsMerPlatformNo getPlatformNo(Long merId, PlatformTypeEnum type, MerPlatformNoStatusEnum status) { + BsMerPlatformNoExample example = new BsMerPlatformNoExample(); + BsMerPlatformNoExample.Criteria criteria = example.createCriteria() + .andMerIdEqualTo(merId) + .andPlatformTypeEqualTo(type.getNumber()) + .andStatusNotEqualTo(MerPlatformNoStatusEnum.status0.getNumber()); + if (status != null) { + criteria.andStatusEqualTo(status.getNumber()); + } + List list = merPlatformNoMapper.selectByExample(example); + if (list.size() > 0) { + return list.get(0); + } + return null; + } + @Override public BsMerPlatformNo getPlatformNoByCupNo(String merCupNo) { BsMerPlatformNoExample example = new BsMerPlatformNoExample(); @@ -78,4 +110,19 @@ public class BsMerPlatformNoServiceImpl implements BsMerPlatformNoService { example.setOrderByClause("create_time desc"); return merPlatformNoMapper.selectByExample(example); } + + @Override + public void switchPlatform(Long merId, PlatformTypeEnum type) { + Map param = new HashMap<>(); + param.put("merId", merId); + List platformNoList = getMerPlatformNoList(param); + for (BsMerPlatformNo platform : platformNoList) { + if (platform.getPlatformType().equals(type.getNumber())) { + platform.setCurrentPlatform(true); + } else { + platform.setCurrentPlatform(false); + } + editMerPlatformNo(platform); + } + } } diff --git a/service/src/main/java/com/hfkj/service/impl/BsMerServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsMerServiceImpl.java index abc5dba..59cd79b 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsMerServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsMerServiceImpl.java @@ -422,7 +422,11 @@ public class BsMerServiceImpl implements BsMerService { /**** 场所收银台照片 ****/ // 进件 - merContractService.addMerContract(mer.getId()); + PlatformTypeEnum platformType = null; + if (storeModel.getMerPlatformType() != null) { + platformType = PlatformTypeEnum.getDataByNumber(storeModel.getMerPlatformType()); + } + merContractService.addMerContract(mer.getId(), platformType); } @Override @@ -519,12 +523,6 @@ public class BsMerServiceImpl implements BsMerService { basisModel.setStoreModel(storeService.getStoreDetail(store.get(0).getId())); } - // 查询错误消息 - if (basisModel.getMerStatus().equals(MerStatusEnum.status4.getNumber())) { - Map recordMsg = merContractRecordMsgService.getMerContractRecordMsg(bsMer.getId()); - recordMsg.put("response_msg", recordMsg.get("response_msg")); - basisModel.setMerContractFailMsg(recordMsg); - } return basisModel; } diff --git a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderRefundServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderRefundServiceImpl.java index cae7930..9f1bba8 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderRefundServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderRefundServiceImpl.java @@ -2,6 +2,7 @@ package com.hfkj.service.impl; import com.hfkj.channel.ccb.CCBTradeService; import com.hfkj.channel.hsg.HsgIntegralService; +import com.hfkj.channel.tianque.service.TianQueTradeService; import com.hfkj.channel.weixin.WeiXinPayService; import com.hfkj.common.exception.BizException; import com.hfkj.common.exception.ErrorCode; @@ -51,6 +52,9 @@ public class BsTradeOrderRefundServiceImpl implements BsTradeOrderRefundService @Resource private WeiXinPayService weiXinPayService; + @Resource + private TianQueTradeService tianQueTradeService; + @Override public void editOrderRefund(BsTradeOrderRefund tradeOrderRefund) { if (tradeOrderRefund.getId() == null) { @@ -93,6 +97,10 @@ public class BsTradeOrderRefundServiceImpl implements BsTradeOrderRefundService } else if (tradeOrderRefund.getPlatformType().equals(PlatformTypeEnum.type4.getNumber())) { refund = weiXinPayService.refund(tradeOrderRefund.getRefundNo(), tradeOrderRefund.getRefundAmount()); refundStatus = true; + + } else if (tradeOrderRefund.getPlatformType().equals(PlatformTypeEnum.type5.getNumber())) { + refund = tianQueTradeService.refund(tradeOrderRefund.getRefundNo(), tradeOrderRefund.getRefundAmount()); + refundStatus = true; } if (tradeOrder != null) { @@ -175,6 +183,10 @@ public class BsTradeOrderRefundServiceImpl implements BsTradeOrderRefundService criteria.andSettleAmountIsNull(); } + if (MapUtils.getBoolean(param, "shdFeeAmtIsNull") != null) { + criteria.andShdFeeAmtIsNull(); + } + example.setOrderByClause("create_time desc"); return tradeOrderRefundMapper.selectByExample(example); } diff --git a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java index eeb7c0b..6f07434 100644 --- a/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/impl/BsTradeOrderServiceImpl.java @@ -250,6 +250,16 @@ public class BsTradeOrderServiceImpl implements BsTradeOrderService { ?new BigDecimal(MapUtils.getString(other, "acc_mdiscount_amount")) :new BigDecimal("0")); + tradeOrder.setSettleAmount( + StringUtils.isNotBlank(MapUtils.getString(other, "settleAmount")) + ?new BigDecimal(MapUtils.getString(other, "settleAmount")) + :null); + + tradeOrder.setSettleDate( + MapUtils.getLong(other, "settleDate")!=null + ?new Date(MapUtils.getLong(other, "settleDate")) + :null); + editOrder(tradeOrder); if (tradeOrder.getCreateType() != null && !tradeOrder.getCreateType().equals(TradeOrderCreateTypeEnum.type3.getCode())) { @@ -415,6 +425,10 @@ public class BsTradeOrderServiceImpl implements BsTradeOrderService { criteria.andSettleAmountIsNull(); } + if (StringUtils.isNotBlank(MapUtils.getString(param, "shdFeeAmtIsNull"))) { + criteria.andShdFeeAmtIsNull(); + } + if (StringUtils.isNotBlank(MapUtils.getString(param, "specialField"))) { criteria.andSpecialFieldLike("%"+MapUtils.getString(param, "specialField")+"%"); } diff --git a/service/src/main/java/com/hfkj/sysenum/MerOnlineType.java b/service/src/main/java/com/hfkj/sysenum/MerOnlineType.java new file mode 100644 index 0000000..e2ad9a5 --- /dev/null +++ b/service/src/main/java/com/hfkj/sysenum/MerOnlineType.java @@ -0,0 +1,51 @@ +package com.hfkj.sysenum; + +import java.util.Objects; + +/** + * 结算类型 + * @author hurui + */ + +public enum MerOnlineType { + type1(1, "APP"), + type2(2, "网站"), + type3(3, "公众号/小程序/服务窗"), + ; + + private Integer number; + + private String name; + + + MerOnlineType(int number, String name) { + this.number = number; + this.name = name; + } + + public static MerOnlineType getDataByNumber(Integer number) { + for (MerOnlineType ele : values()) { + if (Objects.equals(number,ele.getNumber())) { + return ele; + } + } + return null; + } + + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/service/src/main/java/com/hfkj/sysenum/MerOperateType.java b/service/src/main/java/com/hfkj/sysenum/MerOperateType.java new file mode 100644 index 0000000..fab0681 --- /dev/null +++ b/service/src/main/java/com/hfkj/sysenum/MerOperateType.java @@ -0,0 +1,49 @@ +package com.hfkj.sysenum; + +import java.util.Objects; + +/** + * 结算类型 + * @author hurui + */ + +public enum MerOperateType { + type1(1, "线下"), + type2(2, "线上"), + ; + + private Integer number; + + private String name; + + MerOperateType(int number, String name) { + this.number = number; + this.name = name; + } + + public static MerOperateType getDataByNumber(Integer number) { + for (MerOperateType ele : values()) { + if (Objects.equals(number,ele.getNumber())) { + return ele; + } + } + return null; + } + + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/service/src/main/resources/dev/commonConfig.properties b/service/src/main/resources/dev/commonConfig.properties index 43b118f..3220b8f 100644 --- a/service/src/main/resources/dev/commonConfig.properties +++ b/service/src/main/resources/dev/commonConfig.properties @@ -21,37 +21,39 @@ lkl_mer_contract_ret_url=https://gratia-pay.dctpay.com/brest/laKaLaNotify/merCon lkl_micro_pay_ret_url=https://gratia-pay.dctpay.com/crest/laKaLaNotify/microPay lkl_open_api_pay_notify_url=https://gratia-pay.dctpay.com/openApi/v1/payNotify/lakala -lkl_saas_client_id=testsit -lkl_saas_client_secret=EguwEckByf2I6u6z -lkl_saas_activity_id=37 -lkl_saas_user_no=20000101 -lkl_saas_request_url=https://test.wsmsd.cn/sit/ -lkl_saas_request_mer_registration_token_url=https://test.wsmsd.cn/sit/htkauth/oauth/token -lkl_saas_request_mer_registration_url=https://test.wsmsd.cn/sit/htkregistration/merchant/ -lkl_saas_request_mer_update_url=https://test.wsmsd.cn/sit/htk-api/ -lkl_saas_request_mer_registration_common_url=https://test.wsmsd.cn/sit/htkregistration/ -lkl_saas_request_mer_url=https://test.wsmsd.cn/sit/htkmerchants/ -lkl_saas_public_key=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCp5aV3ZiXG2R8Yd8Nxocv+cF7VAUHBc0TF4MNne7mI8wM2yEP2QgI+rK1qDf6G7ZFPhutpIHKQchpolbSuC0vgaHpSjO9OUs1fpnK/JjZq9o8DatUsA0n4Fccec9NBbV5dy5yrwro7xmDpsevp1/IeiIssi1+iD+nBWqqVFx7GVQIDAQAB -lkl_saas_private_key="MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKnlpXdmJcbZHxh3w3Ghy/5wXtUBQcFzRMXgw2d7uYjzAzbIQ/ZCAj6srWoN/obtkU+G62kgcpByGmiVtK4LS+BoelKM705SzV+mcr8mNmr2jwNq1SwDSfgVxx5z00FtXl3LnKvCujvGYOmx6+nX8h6IiyyLX6IP6cFaqpUXHsZVAgMBAAECgYA4NpeM7etJ48T6H4Y3LsWEJkH6UDQlgbIblsaQkstMmLtTgOebrzN28UNfd8njcu9FVOrHGclOKbK7L+1cOLiduWsZKc/c/gAy9wAR4EhoLvlerH9EEPiPWFxdEDbMxPqlkpqLOo+PxHrhTn4vU4CaPdJtL2ujKn7nmsUdUDWo8QJBANS1TlM6nhPt2XlzN5kGfsJ4kBYNjuLXNA2YdNuC2ttYvEXHJ9T70FN/GnRBBIZu47uHH3Ie5nfep+qMk6a8RP8CQQDMecIyI0z1kVt+tOfWKw2ZFLsi74708qTaeR4W1ABtkngj1+bxoWWXr3KqhjqJkWxnhioSfXqu7CScNzjdM1CrAkAQd+ESjI1EmbumrYb2cAxMXi05p98SLPs4uj8B58WuCda5yEuLL9vXOxX/PjFtfxRepn2GxmGtki2J+UxNMnJdAkAFoORjlO0tZU7rcfdfwdeh+xwbnhSFUZiQGv1lC3jnizybX/oPdK3jOwUhBIjf+IzPXLYTxDh4UC/BzRNXo235AkEAhgYBk6H7RU2iIuvwz1c6CtE1gJ8DvEp1F0KOMWMFB0KCpDXUToix0dlMz962FozYENi4X4zYQo6nFwlXeS3Pfw== - -# lkl_saas_client_id=huifu -# lkl_saas_client_secret=f65VVjqJfLtc177F -# lkl_saas_activity_id=12 -# lkl_saas_user_no=22206482 -# lkl_saas_request_url=https://tkapi.lakala.com/ -# lkl_saas_request_mer_registration_token_url=https://tkapi.lakala.com/auth/oauth/token -# lkl_saas_request_mer_registration_url=https://htkactvi.lakala.com/registration/merchant/ -# lkl_saas_request_mer_update_url=https://htkapi.lakala.com/api/ -# lkl_saas_request_mer_registration_common_url=https://htkactvi.lakala.com/registration/ -# lkl_saas_request_mer_url=https://tkapi.lakala.com/htkmerchants/ -# lkl_saas_public_key=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAUkzRA+4GOS5OzYqxD/UJwM6p9to1dPvetL/7RbMa93o46qToPlPtaW61EvblOldHcBEHo7AGXXKmIYr7t2Up1PZC0g7UMpno/b5WkT6ieJ601Xreuj8hhyf2/xoej5vpi4/+lAr9YF+5GcyaVf4gfzTNJrmKj9PfvX5B3rUH2QIDAQAB -# lkl_saas_private_key=MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMBSTNED7gY5Lk7NirEP9QnAzqn22jV0+960v/tFsxr3ejjqpOg+U+1pbrUS9uU6V0dwEQejsAZdcqYhivu3ZSnU9kLSDtQymej9vlaRPqJ4nrTVet66PyGHJ/b/Gh6Pm+mLj/6UCv1gX7kZzJpV/iB/NM0muYqP09+9fkHetQfZAgMBAAECgYB42D3kaC+8QVnTsluffoNeKYSyT6Y1SNiqy7CGVvl/zFlEQkx0khVybHlf1hbFWq9U+Bn7TuNgXH+Z3CHUoRwy4Ap/kMx637iRatoC8F/kcPaiB7JFQfdrxhgK858dSyHCQ2OXXQDJgJdth+oF9FylVsrDu5Sw3ha4OuzrmufuwQJBAPnPPSeFr1wu7kH6I+A5E49fMbAm7EU+3TYVzxNH1lr3X/LWuK9pi/LVPrSR4eNgAypyQWREIqdpBIiJ9bOnwa0CQQDFFl0zTQTVTWf5r/hwgCUMo4gHr2y/q7XMNe6n5fh4SQuQ+o4gW+BGHzDrT97G5hFGPL+w5niGuEBHWSo5/9xdAkEAnrxdM7vzDjSUGUCFg3lBQJ1QyYoyIF4t2qxJBQtk3jDKu1hNysjasNdoHP2F+CGOYW5wtvHEw3Qr+UcQ5bP3kQJABPAcga6KUnXQBxd7mAX956UpQVgJ13uL4IPxaM+APDNIUOeWLAVhRyB870hfAoi9Ig9fliUQG//9zEvVnQJmGQJBAOb8Z0mGMEbEeAyEKjqoNiQkkIcoBdmPKNFUoUJ6ohcBNOoMfklvNsf2+BPfuhs26tvhYDBRgCAfOVhqTQcGj6I= +# lkl_saas_client_id=testsit +# lkl_saas_client_secret=EguwEckByf2I6u6z +# lkl_saas_activity_id=37 +# lkl_saas_user_no=20000101 +# lkl_saas_request_url=https://test.wsmsd.cn/sit/ +# lkl_saas_request_mer_registration_token_url=https://test.wsmsd.cn/sit/htkauth/oauth/token +# lkl_saas_request_mer_registration_url=https://test.wsmsd.cn/sit/htkregistration/merchant/ +# lkl_saas_request_mer_update_url=https://test.wsmsd.cn/sit/htk-api/ +# lkl_saas_request_mer_registration_common_url=https://test.wsmsd.cn/sit/htkregistration/ +# lkl_saas_request_mer_url=https://test.wsmsd.cn/sit/htkmerchants/ +# lkl_saas_public_key=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCp5aV3ZiXG2R8Yd8Nxocv+cF7VAUHBc0TF4MNne7mI8wM2yEP2QgI+rK1qDf6G7ZFPhutpIHKQchpolbSuC0vgaHpSjO9OUs1fpnK/JjZq9o8DatUsA0n4Fccec9NBbV5dy5yrwro7xmDpsevp1/IeiIssi1+iD+nBWqqVFx7GVQIDAQAB +# lkl_saas_private_key="MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKnlpXdmJcbZHxh3w3Ghy/5wXtUBQcFzRMXgw2d7uYjzAzbIQ/ZCAj6srWoN/obtkU+G62kgcpByGmiVtK4LS+BoelKM705SzV+mcr8mNmr2jwNq1SwDSfgVxx5z00FtXl3LnKvCujvGYOmx6+nX8h6IiyyLX6IP6cFaqpUXHsZVAgMBAAECgYA4NpeM7etJ48T6H4Y3LsWEJkH6UDQlgbIblsaQkstMmLtTgOebrzN28UNfd8njcu9FVOrHGclOKbK7L+1cOLiduWsZKc/c/gAy9wAR4EhoLvlerH9EEPiPWFxdEDbMxPqlkpqLOo+PxHrhTn4vU4CaPdJtL2ujKn7nmsUdUDWo8QJBANS1TlM6nhPt2XlzN5kGfsJ4kBYNjuLXNA2YdNuC2ttYvEXHJ9T70FN/GnRBBIZu47uHH3Ie5nfep+qMk6a8RP8CQQDMecIyI0z1kVt+tOfWKw2ZFLsi74708qTaeR4W1ABtkngj1+bxoWWXr3KqhjqJkWxnhioSfXqu7CScNzjdM1CrAkAQd+ESjI1EmbumrYb2cAxMXi05p98SLPs4uj8B58WuCda5yEuLL9vXOxX/PjFtfxRepn2GxmGtki2J+UxNMnJdAkAFoORjlO0tZU7rcfdfwdeh+xwbnhSFUZiQGv1lC3jnizybX/oPdK3jOwUhBIjf+IzPXLYTxDh4UC/BzRNXo235AkEAhgYBk6H7RU2iIuvwz1c6CtE1gJ8DvEp1F0KOMWMFB0KCpDXUToix0dlMz962FozYENi4X4zYQo6nFwlXeS3Pfw== + +lkl_saas_client_id=huifu +lkl_saas_client_secret=f65VVjqJfLtc177F +lkl_saas_activity_id=13 +lkl_saas_user_no=22206482 +lkl_saas_request_url=https://tkapi.lakala.com/ +lkl_saas_request_mer_registration_token_url=https://tkapi.lakala.com/auth/oauth/token +lkl_saas_request_mer_registration_url=https://htkactvi.lakala.com/registration/merchant/ +lkl_saas_request_mer_update_url=https://htkapi.lakala.com/api/ +lkl_saas_request_mer_registration_common_url=https://htkactvi.lakala.com/registration/ +lkl_saas_request_mer_url=https://tkapi.lakala.com/htkmerchants/ +lkl_saas_public_key=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAUkzRA+4GOS5OzYqxD/UJwM6p9to1dPvetL/7RbMa93o46qToPlPtaW61EvblOldHcBEHo7AGXXKmIYr7t2Up1PZC0g7UMpno/b5WkT6ieJ601Xreuj8hhyf2/xoej5vpi4/+lAr9YF+5GcyaVf4gfzTNJrmKj9PfvX5B3rUH2QIDAQAB +lkl_saas_private_key=MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMBSTNED7gY5Lk7NirEP9QnAzqn22jV0+960v/tFsxr3ejjqpOg+U+1pbrUS9uU6V0dwEQejsAZdcqYhivu3ZSnU9kLSDtQymej9vlaRPqJ4nrTVet66PyGHJ/b/Gh6Pm+mLj/6UCv1gX7kZzJpV/iB/NM0muYqP09+9fkHetQfZAgMBAAECgYB42D3kaC+8QVnTsluffoNeKYSyT6Y1SNiqy7CGVvl/zFlEQkx0khVybHlf1hbFWq9U+Bn7TuNgXH+Z3CHUoRwy4Ap/kMx637iRatoC8F/kcPaiB7JFQfdrxhgK858dSyHCQ2OXXQDJgJdth+oF9FylVsrDu5Sw3ha4OuzrmufuwQJBAPnPPSeFr1wu7kH6I+A5E49fMbAm7EU+3TYVzxNH1lr3X/LWuK9pi/LVPrSR4eNgAypyQWREIqdpBIiJ9bOnwa0CQQDFFl0zTQTVTWf5r/hwgCUMo4gHr2y/q7XMNe6n5fh4SQuQ+o4gW+BGHzDrT97G5hFGPL+w5niGuEBHWSo5/9xdAkEAnrxdM7vzDjSUGUCFg3lBQJ1QyYoyIF4t2qxJBQtk3jDKu1hNysjasNdoHP2F+CGOYW5wtvHEw3Qr+UcQ5bP3kQJABPAcga6KUnXQBxd7mAX956UpQVgJ13uL4IPxaM+APDNIUOeWLAVhRyB870hfAoi9Ig9fliUQG//9zEvVnQJmGQJBAOb8Z0mGMEbEeAyEKjqoNiQkkIcoBdmPKNFUoUJ6ohcBNOoMfklvNsf2+BPfuhs26tvhYDBRgCAfOVhqTQcGj6I= # TianQue config tianque_request_url=https://openapi-test.tianquetech.com tianque_org_id=00205462 tianque_private_key=MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQD7amtTqsq2cKBv5YpAL49dEXyx76LB2c6G9tGPfOVBk5skOxmII1bFIvUyrQsmLtM+sRg0tzi6EXBu40YW7scTKqe6UA1XHSVYHvooDL1P6E3luJu0eNh7x2yiS8vqq4v8xceRVjXBf1aBe/bPuEqG3W1v76Gw8PqNn+QUeLQrv6QCYBJC5I3Vg2AHrN4udFKnzvIZjV92gx/D9FWTpwU338I1Mw5twRbCCu8f91kmRsOa9atWbN3kM/fZI+uzaEFf9soolKNfhlP7Qhbm0/e6sciv6UDHgpSuXNl/uCYDxZ9YsSyUTJR0Ep+M7l8b4AITFjyE26jqSkUYHcGBRy5ZAgMBAAECggEAfCMMgVA4LSKpJPbab1zMVbC3uAfRfhO0NNGToVySufFOzfHcZmrEgiwDk5T7h0vhg/ffMtAw0zafJDFVvycA5obOMGEsZRIACWWqMLIxm03hgIbJYq+0fFF4Yx43vlQbl6B0LF+7xSHBrcdukxu0uKiGS5mvZXVm0RzcefsrQtmvcGFMcAAeC34aBMOnA/rfSGU82aKoy5A4WcAUSU8r6fOwQMV3aUsyI1z3QbG0RJeE1qPNAs/cVjSVlepLo0BgmePl4DDmBP21AOxnoE70XbVJdFEYGjiF/A1bZID5DEo0rqnvWCUQdWaBUT1QwDFoMITv7CgsaQyG1rlKewaJ/QKBgQD/y7qCsQjpKLHR8Y1tTIDOPedaJTaysWVadTxaVAtjlWnik1V5q+VHtOYN/14p7X587CtTD5MiN6PHRjAWTPHIr8Y87Z2ipqljscDkZb5sOsN3RzriZERLg8bcB6GRlcHkeNUNGLpBPTObIvpWTLvL+mnt4cTF/1ck2li/fX/fywKBgQD7ncutu6QK7FAlkGjX3cBSTT76sBOJYZe7LmvsJJBM+7nmly3/WO1OF/dAFrWqTXjP6PTtCPQ1+z2/kNtgJLJMJVPYeTZauq9OfT+4Ls1318vEr9KXSm/E3rTZLmpxSzgKEzDoYVeyrPh0QdaWvaP5k3BUGl3Scd5cHJKsxshd6wKBgAq+wyH0T9yDghzAmeFKgmqnfQ1zXL3a59gJ7rQYrbXMM/t5lvCagPInLjbOUGVQfay/uv4tPFAGqFGZqDF3n/x/LcOnc6S+fYUblW/CumIPgeCD1HxoG9pUOclKZMYZ1WBElyaKsGBHMuDEcmGnrYffCA4fGsX6eO2qYmoA2ptLAoGBALpQTdGHcCDmezJVjEzL1u0aZdgbKVxA96mS5jclm/RlMXKd32GE57M768l5B2vjkeHiDfq29p5CO6buDINUqPHZcgyJNMZaFhV4iQZJIbvr/ubVioqcg8azYhavWAIsQIK1UzG/YsDbc94iIlPceN8FXdfo7jA2QQDT54goaZWhAoGAQPk/qXBTzJzE6yeDVSC6edYzrVMRTqqNR70HgSY+7GqDsNWb+9otKUkyhCSDOMT8GOFQzNqPRgPBC9LD/Jf8owPExjdl3x/lmmnnc+WeaYyPYpbRuaz1eMmsCLXBMcPmLgj+xOp7J/xtLFGXTfIk7ozRDGJ2BFUJvBOUFLSSNeY= tianque_public_key=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOmsrFtFPTnEzfpJ/hDl5RODBxw4i9Ex3NmmG/N7A1+by032zZZgLLpdNh8y5otjFY0E37Nyr4FGKFRSSuDiTk8vfx3pv6ImS1Rxjjg4qdVHIfqhCeB0Z2ZPuBD3Gbj8hHFEtXZq8+msAFu/5ZQjiVhgs5WWBjh54LYWSum+d9+wIDAQAB +tianque_micro_pay_ret_url=https://gratia-pay.dctpay.com/crest/tianqueNotify/microPay +tianque_open_api_pay_notify_url=https://gratia-pay.dctpay.com/openApi/v1/payNotify/tianque wechat_pay_notify_url=https://gratia-pay.dctpay.com/crest/weiXinNotify/jsapiPay diff --git a/service/src/main/resources/prod-9606/commonConfig.properties b/service/src/main/resources/prod-9606/commonConfig.properties index e8089ca..501c779 100644 --- a/service/src/main/resources/prod-9606/commonConfig.properties +++ b/service/src/main/resources/prod-9606/commonConfig.properties @@ -31,6 +31,14 @@ lkl_saas_request_mer_url=https://tkapi.lakala.com/htkmerchants/ lkl_saas_public_key=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAUkzRA+4GOS5OzYqxD/UJwM6p9to1dPvetL/7RbMa93o46qToPlPtaW61EvblOldHcBEHo7AGXXKmIYr7t2Up1PZC0g7UMpno/b5WkT6ieJ601Xreuj8hhyf2/xoej5vpi4/+lAr9YF+5GcyaVf4gfzTNJrmKj9PfvX5B3rUH2QIDAQAB lkl_saas_private_key=MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMBSTNED7gY5Lk7NirEP9QnAzqn22jV0+960v/tFsxr3ejjqpOg+U+1pbrUS9uU6V0dwEQejsAZdcqYhivu3ZSnU9kLSDtQymej9vlaRPqJ4nrTVet66PyGHJ/b/Gh6Pm+mLj/6UCv1gX7kZzJpV/iB/NM0muYqP09+9fkHetQfZAgMBAAECgYB42D3kaC+8QVnTsluffoNeKYSyT6Y1SNiqy7CGVvl/zFlEQkx0khVybHlf1hbFWq9U+Bn7TuNgXH+Z3CHUoRwy4Ap/kMx637iRatoC8F/kcPaiB7JFQfdrxhgK858dSyHCQ2OXXQDJgJdth+oF9FylVsrDu5Sw3ha4OuzrmufuwQJBAPnPPSeFr1wu7kH6I+A5E49fMbAm7EU+3TYVzxNH1lr3X/LWuK9pi/LVPrSR4eNgAypyQWREIqdpBIiJ9bOnwa0CQQDFFl0zTQTVTWf5r/hwgCUMo4gHr2y/q7XMNe6n5fh4SQuQ+o4gW+BGHzDrT97G5hFGPL+w5niGuEBHWSo5/9xdAkEAnrxdM7vzDjSUGUCFg3lBQJ1QyYoyIF4t2qxJBQtk3jDKu1hNysjasNdoHP2F+CGOYW5wtvHEw3Qr+UcQ5bP3kQJABPAcga6KUnXQBxd7mAX956UpQVgJ13uL4IPxaM+APDNIUOeWLAVhRyB870hfAoi9Ig9fliUQG//9zEvVnQJmGQJBAOb8Z0mGMEbEeAyEKjqoNiQkkIcoBdmPKNFUoUJ6ohcBNOoMfklvNsf2+BPfuhs26tvhYDBRgCAfOVhqTQcGj6I= +# TianQue config +tianque_request_url=https://openapi.tianquetech.com +tianque_org_id=65749201 +tianque_private_key=MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDlAa7Xw1w16H6xmZgxwEN+UPm72s7PisVkbWFbDexeqQkpSvrouHVswte1qlQyOivhZU21KbuklCOMAuJ4/kcZJ4KlvSckzpAnOrFmA7M3x76zK+GWmOfgHvT208XAGx9mjh5mXHmOUZcyhXmgMnHMQdwTUi0vdk2ni/yHQqBUK1fH8jGI5eWwuzP6oSu7/gqaF/vZyF7TP0dvjgDPuDI6iMRVb4At10yxcZIvFTKuKsMksf2YKgtlvhidvHicnr93RksclSaVbw9VjuXrdYd1hlLJson3xTUr+l96aGMfefiK94f0Jrx81zWqD7BaKtgdE+x0VXPuaM0Tv5HBdCHxAgMBAAECggEABeX9MuF9RoYufTSPjvh8xIwhYo1INmBEpUmL8GRzahzAd6fOvp/BpoN+OtegQ4rsBmotjjT8+Eg4giqw2pzyB9vUqaAtme0YGWqRlycRPqaOat7+eHqHvmYNuS3LMh+At4uBjPFk0B2Z31tAvreN5szrdjPvpgFODrq0TmeQ6ZoHtSTYM90zkhH7NyDKBbul4d0XkjDuE1Y/vN1FkTXxJI0FV76HxCgckPj3Jd3cut1S9Prhwvx9sMWjWiy6rd6m9AR6d+31GJVzYeXz6Y3/cG6MFrDO/bVc8oK5ltjNFPEkz28b04LKmFZhAHBFqEuLC5jFYOqciJVcpkPaGQ3RYQKBgQD8DW+5+N0az5l2p1w5CniFhva3rk92jOZKxHvoPGpwA6qlhGGn96gqdTpjY5gAonaGiJbjwnubProe9JafSnOP2Pj3yfLfhp4CtkoDk1bvBZJUW3CWTOHWPsT8Xae6wZ8qd7hkjRoHqf5Ub+0JyA/h/CfYLZS1Xtf5i5G4Gk/rBwKBgQDol9kC+zIhIc5vgfrDmZwGDwn/H0N7pYpDx23vjesgeKmpnrj9al+ODUW5SOjIYYjjsQ8ot51Zg+65YsQNGPFuTbSu3OHRl4emzmJVrfjVVsehbYPR676R5zEgJOIIjqeU9r9AH60lLuhy/7SIJyfNAgL7wUtxo+djXGzinXK1RwKBgGwaJy0P+2SgXSVyqi8cuowqUm59KD+kNrEijDISl2PrbqkGmgu8QDfVh3FRKcQ76bHRq0WMCA+RW6ojJOa0u9OaL023I5+S0PpAzIW0D7j8HsJnZWZRGxsUWNAUKvgCSw2fw0n86okW86mrR3LGh2lZCI3DHuCbCO5SWfEn99bJAoGAdM81tDKVJWCF/Sgo2Ky/V6eb3J1F1cX4Hzv7sQ/z4nXWtxG4U8RlQsDVoEzGY0PgbIESXN+BzV/dtwqr7Ov26+9oa10Qp6LTBGmnpuHdEr8nOKH4Tqd3KG0UFdGQFr4V2VDmEX0XBpJ9OKvEbZBEg8eb2fVkPykSXqsfH9v0rKcCgYEAmRagAvycwGeD0hGehj6gRYegt4NqcU895Ce7J85u9QrO03Wn7l77ToktCcl9GRI7ZZwJOzCIsUntoGJHc3VbXnio7qixdm4oYo4TvNV3lUI1NKisszrFJCCXemZHeesW3t3RFzYwDGX/MJrBw7q8qsAnio0fc0ubcNVc67LNZ38= +tianque_public_key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjo1+KBcvwDSIo+nMYLeOJ19Ju4ii0xH66ZxFd869EWFWk/EJa3xIA2+4qGf/Ic7m7zi/NHuCnfUtUDmUdP0JfaZiYwn+1Ek7tYAOc1+1GxhzcexSJLyJlR2JLMfEM+rZooW4Ei7q3a8jdTWUNoak/bVPXnLEVLrbIguXABERQ0Ze0X9Fs0y/zkQFg8UjxUN88g2CRfMC6LldHm7UBo+d+WlpOYH7u0OTzoLLiP/04N1cfTgjjtqTBI7qkOGxYs6aBZHG1DJ6WdP+5w+ho91sBTVajsCxAaMoExWQM2ipf/1qGdsWmkZScPflBqg7m0olOD87ymAVP/3Tcbvi34bDfwIDAQAB +tianque_micro_pay_ret_url=https://pay.dctpay.com/crest/tianqueNotify/microPay +tianque_open_api_pay_notify_url=https://pay.dctpay.com/openApi/v1/payNotify/tianque + wechat_pay_notify_url=https://pay.dctpay.com/crest/weiXinNotify/jsapiPay file_url=/home/project/gratia-pay/file diff --git a/service/src/main/resources/prod/commonConfig.properties b/service/src/main/resources/prod/commonConfig.properties index 970845c..2e9e6c3 100644 --- a/service/src/main/resources/prod/commonConfig.properties +++ b/service/src/main/resources/prod/commonConfig.properties @@ -31,6 +31,14 @@ lkl_saas_request_mer_url=https://tkapi.lakala.com/htkmerchants/ lkl_saas_public_key=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAUkzRA+4GOS5OzYqxD/UJwM6p9to1dPvetL/7RbMa93o46qToPlPtaW61EvblOldHcBEHo7AGXXKmIYr7t2Up1PZC0g7UMpno/b5WkT6ieJ601Xreuj8hhyf2/xoej5vpi4/+lAr9YF+5GcyaVf4gfzTNJrmKj9PfvX5B3rUH2QIDAQAB lkl_saas_private_key=MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMBSTNED7gY5Lk7NirEP9QnAzqn22jV0+960v/tFsxr3ejjqpOg+U+1pbrUS9uU6V0dwEQejsAZdcqYhivu3ZSnU9kLSDtQymej9vlaRPqJ4nrTVet66PyGHJ/b/Gh6Pm+mLj/6UCv1gX7kZzJpV/iB/NM0muYqP09+9fkHetQfZAgMBAAECgYB42D3kaC+8QVnTsluffoNeKYSyT6Y1SNiqy7CGVvl/zFlEQkx0khVybHlf1hbFWq9U+Bn7TuNgXH+Z3CHUoRwy4Ap/kMx637iRatoC8F/kcPaiB7JFQfdrxhgK858dSyHCQ2OXXQDJgJdth+oF9FylVsrDu5Sw3ha4OuzrmufuwQJBAPnPPSeFr1wu7kH6I+A5E49fMbAm7EU+3TYVzxNH1lr3X/LWuK9pi/LVPrSR4eNgAypyQWREIqdpBIiJ9bOnwa0CQQDFFl0zTQTVTWf5r/hwgCUMo4gHr2y/q7XMNe6n5fh4SQuQ+o4gW+BGHzDrT97G5hFGPL+w5niGuEBHWSo5/9xdAkEAnrxdM7vzDjSUGUCFg3lBQJ1QyYoyIF4t2qxJBQtk3jDKu1hNysjasNdoHP2F+CGOYW5wtvHEw3Qr+UcQ5bP3kQJABPAcga6KUnXQBxd7mAX956UpQVgJ13uL4IPxaM+APDNIUOeWLAVhRyB870hfAoi9Ig9fliUQG//9zEvVnQJmGQJBAOb8Z0mGMEbEeAyEKjqoNiQkkIcoBdmPKNFUoUJ6ohcBNOoMfklvNsf2+BPfuhs26tvhYDBRgCAfOVhqTQcGj6I= +# TianQue config +tianque_request_url=https://openapi.tianquetech.com +tianque_org_id=65749201 +tianque_private_key=MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDlAa7Xw1w16H6xmZgxwEN+UPm72s7PisVkbWFbDexeqQkpSvrouHVswte1qlQyOivhZU21KbuklCOMAuJ4/kcZJ4KlvSckzpAnOrFmA7M3x76zK+GWmOfgHvT208XAGx9mjh5mXHmOUZcyhXmgMnHMQdwTUi0vdk2ni/yHQqBUK1fH8jGI5eWwuzP6oSu7/gqaF/vZyF7TP0dvjgDPuDI6iMRVb4At10yxcZIvFTKuKsMksf2YKgtlvhidvHicnr93RksclSaVbw9VjuXrdYd1hlLJson3xTUr+l96aGMfefiK94f0Jrx81zWqD7BaKtgdE+x0VXPuaM0Tv5HBdCHxAgMBAAECggEABeX9MuF9RoYufTSPjvh8xIwhYo1INmBEpUmL8GRzahzAd6fOvp/BpoN+OtegQ4rsBmotjjT8+Eg4giqw2pzyB9vUqaAtme0YGWqRlycRPqaOat7+eHqHvmYNuS3LMh+At4uBjPFk0B2Z31tAvreN5szrdjPvpgFODrq0TmeQ6ZoHtSTYM90zkhH7NyDKBbul4d0XkjDuE1Y/vN1FkTXxJI0FV76HxCgckPj3Jd3cut1S9Prhwvx9sMWjWiy6rd6m9AR6d+31GJVzYeXz6Y3/cG6MFrDO/bVc8oK5ltjNFPEkz28b04LKmFZhAHBFqEuLC5jFYOqciJVcpkPaGQ3RYQKBgQD8DW+5+N0az5l2p1w5CniFhva3rk92jOZKxHvoPGpwA6qlhGGn96gqdTpjY5gAonaGiJbjwnubProe9JafSnOP2Pj3yfLfhp4CtkoDk1bvBZJUW3CWTOHWPsT8Xae6wZ8qd7hkjRoHqf5Ub+0JyA/h/CfYLZS1Xtf5i5G4Gk/rBwKBgQDol9kC+zIhIc5vgfrDmZwGDwn/H0N7pYpDx23vjesgeKmpnrj9al+ODUW5SOjIYYjjsQ8ot51Zg+65YsQNGPFuTbSu3OHRl4emzmJVrfjVVsehbYPR676R5zEgJOIIjqeU9r9AH60lLuhy/7SIJyfNAgL7wUtxo+djXGzinXK1RwKBgGwaJy0P+2SgXSVyqi8cuowqUm59KD+kNrEijDISl2PrbqkGmgu8QDfVh3FRKcQ76bHRq0WMCA+RW6ojJOa0u9OaL023I5+S0PpAzIW0D7j8HsJnZWZRGxsUWNAUKvgCSw2fw0n86okW86mrR3LGh2lZCI3DHuCbCO5SWfEn99bJAoGAdM81tDKVJWCF/Sgo2Ky/V6eb3J1F1cX4Hzv7sQ/z4nXWtxG4U8RlQsDVoEzGY0PgbIESXN+BzV/dtwqr7Ov26+9oa10Qp6LTBGmnpuHdEr8nOKH4Tqd3KG0UFdGQFr4V2VDmEX0XBpJ9OKvEbZBEg8eb2fVkPykSXqsfH9v0rKcCgYEAmRagAvycwGeD0hGehj6gRYegt4NqcU895Ce7J85u9QrO03Wn7l77ToktCcl9GRI7ZZwJOzCIsUntoGJHc3VbXnio7qixdm4oYo4TvNV3lUI1NKisszrFJCCXemZHeesW3t3RFzYwDGX/MJrBw7q8qsAnio0fc0ubcNVc67LNZ38= +tianque_public_key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjo1+KBcvwDSIo+nMYLeOJ19Ju4ii0xH66ZxFd869EWFWk/EJa3xIA2+4qGf/Ic7m7zi/NHuCnfUtUDmUdP0JfaZiYwn+1Ek7tYAOc1+1GxhzcexSJLyJlR2JLMfEM+rZooW4Ei7q3a8jdTWUNoak/bVPXnLEVLrbIguXABERQ0Ze0X9Fs0y/zkQFg8UjxUN88g2CRfMC6LldHm7UBo+d+WlpOYH7u0OTzoLLiP/04N1cfTgjjtqTBI7qkOGxYs6aBZHG1DJ6WdP+5w+ho91sBTVajsCxAaMoExWQM2ipf/1qGdsWmkZScPflBqg7m0olOD87ymAVP/3Tcbvi34bDfwIDAQAB +tianque_micro_pay_ret_url=https://pay.dctpay.com/crest/tianqueNotify/microPay +tianque_open_api_pay_notify_url=https://pay.dctpay.com/openApi/v1/payNotify/tianque + wechat_pay_notify_url=https://pay.dctpay.com/crest/weiXinNotify/jsapiPay file_url=/home/project/gratia-pay/file