异步通知处理,加上事务处理。
This commit is contained in:
parent
b865aafadf
commit
9614312bcd
@ -43,6 +43,7 @@ import org.springframework.data.util.Pair;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -83,15 +84,14 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
private String lklNotifyCerPath; //拉卡拉支付平台证书地址2(用于拉卡拉通知验签)
|
||||
@Value("${lakala.org_code}")
|
||||
private String orgCode;
|
||||
@Value("${lakala.tk.ratio}")
|
||||
private String ratio;
|
||||
@Value("${lakala.tk.split_lowest_ratio}")
|
||||
private String splitLowestRatio;
|
||||
@Value("${project.domain}")
|
||||
private String projectDomain;
|
||||
@Value("${spring.profiles.active}")
|
||||
private String profile;
|
||||
@Value("${lakala.is_prod}")
|
||||
private Boolean isLklProd;
|
||||
|
||||
@Value("#{accountBaseConfigService.getConfig('tengxun_default_dir')}")
|
||||
private String TENGXUN_DEFAULT_DIR;
|
||||
|
||||
@ -588,7 +588,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
ecParams.put("E2", "小发同城平台商户合作协议");
|
||||
ecParams.put("E3", "2");
|
||||
ecParams.put("E5", platformName);
|
||||
ecParams.put("E6", ratio);
|
||||
ecParams.put("E6", splitLowestRatio);
|
||||
ecParams.put("E7", signDate);
|
||||
ecParams.put("E8", shopMchEntry.getAccount_holder_name());
|
||||
|
||||
@ -654,6 +654,12 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 商户分账业务开通申请
|
||||
*
|
||||
* @param merCupNo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Pair<Boolean, String> innerApplyLedgerMer(String merCupNo) {
|
||||
log.debug("商户分账业务开通申请开始");
|
||||
@ -687,7 +693,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
req.setContactMobile(shopMchEntry.getLogin_mobile()); // 商户入驻注册的手机号
|
||||
// 分账比例为了考虑低价订单的运费占比高,分账比例暂时定70%分账给商户,30%分账给平台
|
||||
// new BigDecimal(paramsJSON.getStr("splitLowestRatio"))
|
||||
req.setSplitLowestRatio(new BigDecimal(ratio));
|
||||
req.setSplitLowestRatio(new BigDecimal(splitLowestRatio));
|
||||
req.setEleContractNo(shopMchEntry.getLkl_ec_no());
|
||||
String fileName = "小发同城分账授权委托书.pdf";//paramsJSON.getStr("splitEntrustFileName");
|
||||
req.setSplitEntrustFileName(fileName);
|
||||
@ -765,6 +771,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public JSONObject applyLedgerMerEcNotify(HttpServletRequest request) {
|
||||
log.debug("商户入网电子合同申请回调通知开始");
|
||||
@ -779,14 +786,14 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath);
|
||||
if (!checkSuccess) {
|
||||
log.error(errMsg + "验签失败");
|
||||
return JSONUtil.createObj().set("retCode", "OP90002").set("retMsg", "验签失败!");
|
||||
return JSONUtil.createObj().set("code", "OP90002").set("retMsg", "验签失败!");
|
||||
}
|
||||
|
||||
JSONObject paramsJSON = JSONUtil.parseObj(requestBody);
|
||||
|
||||
JSONObject respData = new JSONObject();
|
||||
respData.put("retCode", "OP90003");
|
||||
respData.put("retMsg", "系统处理失败!");
|
||||
respData.put("code", "FAIL");
|
||||
respData.put("message", "处理失败!");
|
||||
|
||||
if (paramsJSON != null) {
|
||||
Long ecApplyId = paramsJSON.getLong("ecApplyId");
|
||||
@ -794,26 +801,27 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
String ecStatus = paramsJSON.getStr("ecStatus"); // COMPLETED
|
||||
if (ecStatus == null || !ecStatus.equals("COMPLETED")) {
|
||||
log.debug("商户入网电子合同申请状态尚未签署完成!");
|
||||
respData.put("retMsg", "入网电子合同尚未签署,请稍候!");
|
||||
respData.put("message", "入网电子合同尚未签署,请稍候!");
|
||||
return respData;
|
||||
}
|
||||
|
||||
if (ecApplyId == null || StrUtil.isBlank(ecNo)) {
|
||||
log.error("商户入网电子合同申请回调:ecApplyId 为空");
|
||||
respData.put("retMsg", "ecApplyId 返回空值!");
|
||||
respData.put("message", "ecApplyId 返回空值!");
|
||||
return respData;
|
||||
}
|
||||
|
||||
LklLedgerEc lklLedgerEc = lklLedgerEcService.getByApplyId(ecApplyId, "", CommonConstant.Enable);
|
||||
if (lklLedgerEc == null) {
|
||||
log.error("商户入网电子合同申请回调:找不到对应入网lklLedgerEc电子合同记录");
|
||||
respData.put("retMsg", "找不到对应入网电子合同记录!");
|
||||
respData.put("message", "找不到对应入网电子合同记录!");
|
||||
// throw new ApiException("找不到对应入网电子合同记录!");
|
||||
return respData;
|
||||
}
|
||||
|
||||
if ("COMPLETED".equals(lklLedgerEc.getEc_status())) {
|
||||
respData.put("retCode", lklSuccessCode);
|
||||
respData.put("retMsg", "操作成功!");
|
||||
respData.put("code", "SUCCESS");
|
||||
respData.put("message", "操作成功!");
|
||||
log.info("商户入网电子合同申请回调:已处理成功,不需再重新处理");
|
||||
return respData;
|
||||
}
|
||||
@ -839,19 +847,21 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
Pair<Boolean, String> resultPair = lklTkService.registrationMerchant(lklLedgerEc.getMch_mobile(), "");
|
||||
if (!resultPair.getFirst()) {
|
||||
errMsg += resultPair.getSecond();
|
||||
log.error(errMsg);
|
||||
// log.error(errMsg);
|
||||
shopMchEntryService.updateMerchEntryApprovalByMchId(lklLedgerEc.getMch_id(), "", CommonConstant.MCH_APPR_STA_NOPASS, errMsg);
|
||||
respData.put("retMsg", errMsg);
|
||||
return respData;
|
||||
// respData.put("message", errMsg);
|
||||
throw new ApiException(errMsg);
|
||||
// return respData;
|
||||
}
|
||||
|
||||
respData.put("retCode", lklSuccessCode);
|
||||
respData.put("retMsg", "操作成功!");
|
||||
respData.put("code", "SUCCESS");
|
||||
respData.put("message", "操作成功!");
|
||||
log.info("商户入网电子合同申请回调:处理成功");
|
||||
return respData;
|
||||
}
|
||||
}
|
||||
|
||||
return respData;
|
||||
throw new ApiException("商户入网电子合同申请回调:处理失败!");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -947,84 +957,91 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
*/
|
||||
@Override
|
||||
public CommonResult applyLedgerMer(JSONObject paramsJSON) {
|
||||
log.debug("商户分账业务开通申请1开始");
|
||||
|
||||
// TODO 判断是否已经申请过?
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
//2. 装配数据
|
||||
V2MmsOpenApiLedgerApplyLedgerMerRequest req = new V2MmsOpenApiLedgerApplyLedgerMerRequest();
|
||||
req.setVersion("2.0");
|
||||
req.setOrderNo(StringUtils.genLklOrderNo(8));// 14位年月日时(24小时制)分秒+8位的随机数
|
||||
req.setOrgCode(orgCode);
|
||||
req.setMerInnerNo(paramsJSON.getStr("merInnerNo"));// 从进件申请返回的商户号
|
||||
req.setMerCupNo(paramsJSON.getStr("merCupNo")); // 从进件申请返回的商户号
|
||||
req.setContactMobile(paramsJSON.getStr("contactMobile")); // 商户入驻注册的手机号
|
||||
// 分账比例为了考虑低价订单的运费占比高,分账比例暂时定70%分账给商户,30%分账给平台
|
||||
// new BigDecimal(paramsJSON.getStr("splitLowestRatio"))
|
||||
req.setSplitLowestRatio(new BigDecimal(ratio));
|
||||
String fileName = paramsJSON.getStr("splitEntrustFileName");
|
||||
req.setSplitEntrustFileName(fileName);
|
||||
|
||||
// 分账结算委托书文件上传到拉卡拉服务器
|
||||
JSONObject fileUploadResp = uploadFile(req.getOrderNo(), "SPLIT_ENTRUST_FILE", StringUtils.getFileExt(fileName), UploadUtil.fileUrlToBase64(paramsJSON.getStr("splitEntrustFile")));
|
||||
if (fileUploadResp == null || StrUtil.isBlank(fileUploadResp.getStr("attFileId"))) {
|
||||
throw new ApiException(I18nUtil._("分账结算委托书上传失败!"));
|
||||
Pair<Boolean, String> resultPair = innerApplyLedgerMer(paramsJSON.getStr("merCupNo"));
|
||||
if (!resultPair.getFirst()) {
|
||||
return CommonResult.failed(resultPair.getSecond());
|
||||
}
|
||||
|
||||
String splitEntrustFilePath = fileUploadResp.getStr("attFileId");
|
||||
req.setSplitEntrustFilePath(splitEntrustFilePath); //比如:G1/M00/06/64/CrFdEmBQc-aAGc_XAAAiIbS3WIE960.pdf;
|
||||
return CommonResult.success();
|
||||
|
||||
// 正式上线的时候,调整 api 地址
|
||||
String domain = projectDomain;
|
||||
if (isProdProject()) {
|
||||
domain += "/api";
|
||||
}
|
||||
// 给拉卡拉通知的回调地址
|
||||
String retUrl = domain + "/mobile/shop/lakala/ledger/applyLedgerMerNotify";
|
||||
req.setRetUrl(retUrl);
|
||||
|
||||
paramsJSON.set("orderNo", req.getOrderNo());
|
||||
paramsJSON.set("version", "2.0");
|
||||
paramsJSON.set("ret_url", retUrl);
|
||||
paramsJSON.set("org_code", orgCode);
|
||||
paramsJSON.set("split_entrust_file_path", splitEntrustFilePath);
|
||||
|
||||
String errMsg = "商户分账业务开通申请:";
|
||||
|
||||
try {
|
||||
//3. 发送请求
|
||||
String responseStr = LKLSDK.httpPost(req);
|
||||
|
||||
// 成功返回示例:{'retCode':'000000','retMsg':'申请已受理,请等待审核结果','respData':{'version':'1.0','orderNo':'KFPT20230223181025407788734','orgCode':'1','applyId':681201215598657536}}
|
||||
JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
if (StrUtil.isBlank(responseStr) || lakalaRespJSON == null) {
|
||||
return CommonResult.failed(I18nUtil._("申请开通分账失败!"));
|
||||
}
|
||||
|
||||
if (!lakalaRespJSON.getStr("retCode").equals(lklSuccessCode)) {
|
||||
return CommonResult.failed(lakalaRespJSON.getStr("retMsg"));
|
||||
}
|
||||
|
||||
paramsJSON.set("apply_id", lakalaRespJSON.getByPath("respData.applyId"));
|
||||
paramsJSON.set("remark", lakalaRespJSON.getStr("retMsg"));
|
||||
paramsJSON.set("audit_status_text", paramsJSON.get("remark"));
|
||||
|
||||
paramsJSON.set("mch_id", paramsJSON.get("mchId"));
|
||||
|
||||
// 新增数据
|
||||
// 将 JSON 对象的键名转换为下划线命名
|
||||
LklLedgerMember lklLedgerMember = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerMember.class);
|
||||
lklLedgerMemberService.saveOrUpdateByMerCupNo(lklLedgerMember);
|
||||
|
||||
return CommonResult.success(null, "提交成功,待审核中!");
|
||||
} catch (SDKException e) {
|
||||
errMsg += e.getMessage();
|
||||
log.error(errMsg);
|
||||
shopMchEntryService.updateMerchEntryApprovalByMchId(paramsJSON.getLong("mchId"), paramsJSON.getStr("mchMobile"), CommonConstant.MCH_APPR_STA_NOPASS, errMsg);
|
||||
throw new ApiException(I18nUtil._("商家申请开通分账出错!"), e);
|
||||
}
|
||||
// log.debug("商户分账业务开通申请1开始");
|
||||
//
|
||||
// // TODO 判断是否已经申请过?
|
||||
// // 1. 配置初始化
|
||||
// initLKLSDK();
|
||||
//
|
||||
// //2. 装配数据
|
||||
// V2MmsOpenApiLedgerApplyLedgerMerRequest req = new V2MmsOpenApiLedgerApplyLedgerMerRequest();
|
||||
// req.setVersion("2.0");
|
||||
// req.setOrderNo(StringUtils.genLklOrderNo(8));// 14位年月日时(24小时制)分秒+8位的随机数
|
||||
// req.setOrgCode(orgCode);
|
||||
// req.setMerInnerNo(paramsJSON.getStr("merInnerNo"));// 从进件申请返回的商户号
|
||||
// req.setMerCupNo(paramsJSON.getStr("merCupNo")); // 从进件申请返回的商户号
|
||||
// req.setContactMobile(paramsJSON.getStr("contactMobile")); // 商户入驻注册的手机号
|
||||
// // 分账比例为了考虑低价订单的运费占比高,分账比例暂时定70%分账给商户,30%分账给平台
|
||||
// // new BigDecimal(paramsJSON.getStr("splitLowestRatio"))
|
||||
// req.setSplitLowestRatio(new BigDecimal(splitLowestRatio));
|
||||
// String fileName = paramsJSON.getStr("splitEntrustFileName");
|
||||
// req.setSplitEntrustFileName(fileName);
|
||||
//
|
||||
// // 分账结算委托书文件上传到拉卡拉服务器
|
||||
// JSONObject fileUploadResp = uploadFile(req.getOrderNo(), "SPLIT_ENTRUST_FILE", StringUtils.getFileExt(fileName), UploadUtil.fileUrlToBase64(paramsJSON.getStr("splitEntrustFile")));
|
||||
// if (fileUploadResp == null || StrUtil.isBlank(fileUploadResp.getStr("attFileId"))) {
|
||||
// throw new ApiException(I18nUtil._("分账结算委托书上传失败!"));
|
||||
// }
|
||||
//
|
||||
// String splitEntrustFilePath = fileUploadResp.getStr("attFileId");
|
||||
// req.setSplitEntrustFilePath(splitEntrustFilePath); //比如:G1/M00/06/64/CrFdEmBQc-aAGc_XAAAiIbS3WIE960.pdf;
|
||||
//
|
||||
// // 正式上线的时候,调整 api 地址
|
||||
// String domain = projectDomain;
|
||||
// if (isProdProject()) {
|
||||
// domain += "/api";
|
||||
// }
|
||||
// // 给拉卡拉通知的回调地址
|
||||
// String retUrl = domain + "/mobile/shop/lakala/ledger/applyLedgerMerNotify";
|
||||
// req.setRetUrl(retUrl);
|
||||
//
|
||||
// paramsJSON.set("orderNo", req.getOrderNo());
|
||||
// paramsJSON.set("version", "2.0");
|
||||
// paramsJSON.set("ret_url", retUrl);
|
||||
// paramsJSON.set("org_code", orgCode);
|
||||
// paramsJSON.set("split_entrust_file_path", splitEntrustFilePath);
|
||||
//
|
||||
// String errMsg = "商户分账业务开通申请:";
|
||||
//
|
||||
// try {
|
||||
// //3. 发送请求
|
||||
// String responseStr = LKLSDK.httpPost(req);
|
||||
//
|
||||
// // 成功返回示例:{'retCode':'000000','retMsg':'申请已受理,请等待审核结果','respData':{'version':'1.0','orderNo':'KFPT20230223181025407788734','orgCode':'1','applyId':681201215598657536}}
|
||||
// JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
// if (StrUtil.isBlank(responseStr) || lakalaRespJSON == null) {
|
||||
// return CommonResult.failed(I18nUtil._("申请开通分账失败!"));
|
||||
// }
|
||||
//
|
||||
// if (!lakalaRespJSON.getStr("retCode").equals(lklSuccessCode)) {
|
||||
// return CommonResult.failed(lakalaRespJSON.getStr("retMsg"));
|
||||
// }
|
||||
//
|
||||
// paramsJSON.set("apply_id", lakalaRespJSON.getByPath("respData.applyId"));
|
||||
// paramsJSON.set("remark", lakalaRespJSON.getStr("retMsg"));
|
||||
// paramsJSON.set("audit_status_text", paramsJSON.get("remark"));
|
||||
//
|
||||
// paramsJSON.set("mch_id", paramsJSON.get("mchId"));
|
||||
//
|
||||
// // 新增数据
|
||||
// // 将 JSON 对象的键名转换为下划线命名
|
||||
// LklLedgerMember lklLedgerMember = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerMember.class);
|
||||
// lklLedgerMemberService.saveOrUpdateByMerCupNo(lklLedgerMember);
|
||||
//
|
||||
// return CommonResult.success(null, "提交成功,待审核中!");
|
||||
// } catch (SDKException e) {
|
||||
// errMsg += e.getMessage();
|
||||
// log.error(errMsg);
|
||||
// shopMchEntryService.updateMerchEntryApprovalByMchId(paramsJSON.getLong("mchId"), paramsJSON.getStr("mchMobile"), CommonConstant.MCH_APPR_STA_NOPASS, errMsg);
|
||||
// throw new ApiException(I18nUtil._("商家申请开通分账出错!"), e);
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1034,6 +1051,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public JSONObject applyLedgerMerNotify(HttpServletRequest request) {
|
||||
log.debug("商户分账申请业务异步回调通知开始");
|
||||
@ -1047,15 +1065,15 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath);
|
||||
if (!checkSuccess) {
|
||||
log.error("商户分账申请业务回调:验签失败");
|
||||
return JSONUtil.createObj().put("retCode", "OP90002").put("retMsg", "验签失败!");
|
||||
return JSONUtil.createObj().put("code", "FAIL").put("message", "验签失败!");
|
||||
}
|
||||
|
||||
JSONObject paramsJSON = JSONUtil.parseObj(requestBody);
|
||||
|
||||
String errMsg = "商户分账申请业务回调:";
|
||||
JSONObject respData = new JSONObject();
|
||||
respData.put("retCode", "OP90003");
|
||||
respData.put("retMsg", "响应处理失败!");
|
||||
respData.put("code", "FAIL");
|
||||
respData.put("message", "处理失败!");
|
||||
|
||||
if (paramsJSON != null) {
|
||||
String applyId = paramsJSON.getStr("applyId");
|
||||
@ -1064,20 +1082,20 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
errMsg += "缺少返回必要参数";
|
||||
log.error(errMsg + ":applyId={}, auditStatus={}", applyId, auditStatus);
|
||||
|
||||
respData.put("retMsg", errMsg);
|
||||
respData.put("message", errMsg);
|
||||
return respData;
|
||||
}
|
||||
|
||||
//auditStatus:1:通过,2拒绝
|
||||
if (!auditStatus.equals("1")) {
|
||||
respData.put("retMsg", "商户分账申请被驳回!");
|
||||
respData.put("message", "商户分账申请被驳回!");
|
||||
return respData;
|
||||
}
|
||||
|
||||
LklLedgerMember lklLedgerMember = lklLedgerMemberService.getByApplyId(applyId, CommonConstant.Enable);
|
||||
if (lklLedgerMember != null) {
|
||||
respData.put("retCode", lklSuccessCode);
|
||||
respData.put("retMsg", "商户分账申请已处理成功!");
|
||||
respData.put("code", "SUCCESS");
|
||||
respData.put("message", "商户分账申请已处理成功!");
|
||||
log.debug("商户分账申请业务回调:已处理成功,不需再重新处理");
|
||||
return respData;
|
||||
}
|
||||
@ -1105,21 +1123,22 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
log.error("商户{}预绑定接收方出错:{}", merCupNo, bindResult.getSecond());
|
||||
|
||||
shopMchEntryService.updateMerchEntryApprovalByMchId(lklLedgerMember.getMch_id(), "", CommonConstant.MCH_APPR_STA_NOPASS, errMsg);
|
||||
respData.put("retMsg", "操作成功!");
|
||||
return respData;
|
||||
// respData.put("message", errMsg);
|
||||
throw new ApiException(errMsg);
|
||||
// return respData;
|
||||
}
|
||||
|
||||
// 更新商家的hasApplySplit状态=1;has_esigned=1
|
||||
lklLedgerMemberService.updateMulStatus(merCupNo, "", 1, 1, 0, 0);
|
||||
|
||||
respData.put("retCode", lklSuccessCode);
|
||||
respData.put("retMsg", "操作成功!");
|
||||
respData.put("code", "SUCCESS");
|
||||
respData.put("message", "操作成功!");
|
||||
log.debug("商户分账申请业务回调:处理成功");
|
||||
return respData;
|
||||
}
|
||||
}
|
||||
|
||||
return respData;
|
||||
throw new ApiException("商户分账申请业务回调:操作失败!");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1460,6 +1479,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public JSONObject applyLedgerMerReceiverBindNotify(HttpServletRequest request) {
|
||||
log.debug("分账商家绑定接收方异步回调通知开始");
|
||||
@ -1471,13 +1491,13 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
|
||||
boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath);
|
||||
if (!checkSuccess) {
|
||||
return JSONUtil.createObj().put("retCode", "OP90002").put("retMsg", "验签失败!");
|
||||
return JSONUtil.createObj().put("code", "FAIL").put("message", "验签失败!");
|
||||
}
|
||||
|
||||
JSONObject paramsJSON = JSONUtil.parseObj(requestBody);
|
||||
JSONObject respData = new JSONObject();
|
||||
respData.put("retCode", "OP90003");
|
||||
respData.put("retMsg", "响应处理失败!");
|
||||
respData.put("code", "FAIL");
|
||||
respData.put("message", "处理失败!");
|
||||
|
||||
if (paramsJSON != null) {
|
||||
String merCupNo = paramsJSON.getStr("merCupNo");
|
||||
@ -1487,13 +1507,13 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
String errMsg = "缺少返回必要参数";
|
||||
log.error(errMsg + ":applyId={}, applyId={}, auditStatus={}", merCupNo, applyId, auditStatus);
|
||||
|
||||
respData.put("retMsg", errMsg);
|
||||
respData.put("message", errMsg);
|
||||
return respData;
|
||||
}
|
||||
|
||||
//auditStatus:1:通过,2拒绝
|
||||
if (!auditStatus.equals("1")) {
|
||||
respData.put("retMsg", "绑定接收方被驳回!");
|
||||
respData.put("message", "绑定接收方被驳回!");
|
||||
return respData;
|
||||
}
|
||||
|
||||
@ -1524,16 +1544,21 @@ public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
// esignContractFillingFileService.updateContractFillingStoreId(mchMobile, retPair.getFirst());
|
||||
// 店铺创建状态已完成
|
||||
shopMchEntryService.updateMerchEntryStoreStatus(mchMobile, CommonConstant.Enable);
|
||||
} else {
|
||||
throw new ApiException("商家绑定接收方:创建初始化店铺失败!");
|
||||
}
|
||||
}
|
||||
|
||||
respData.put("retCode", lklSuccessCode);
|
||||
respData.put("retMsg", "操作成功!");
|
||||
respData.put("code", "SUCCESS");
|
||||
respData.put("message", "操作成功!");
|
||||
return respData;
|
||||
}
|
||||
}
|
||||
|
||||
return respData;
|
||||
throw new ApiException("商家绑定接收方:操作失败!");
|
||||
|
||||
// throw new ServiceException("分账绑定关系申请回调失败!");
|
||||
// return respData;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -18,6 +18,7 @@ import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.api.ResultCode;
|
||||
import com.suisung.mall.common.constant.CommonConstant;
|
||||
import com.suisung.mall.common.domain.UserDto;
|
||||
import com.suisung.mall.common.exception.ApiException;
|
||||
import com.suisung.mall.common.modules.store.ShopMchEntry;
|
||||
import com.suisung.mall.common.utils.RestTemplateHttpUtil;
|
||||
import com.suisung.mall.common.utils.StringUtils;
|
||||
@ -37,6 +38,7 @@ import org.springframework.data.util.Pair;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -531,6 +533,7 @@ public class LklTkServiceImpl {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Transactional
|
||||
public JSONObject registrationMerchantNotify(HttpServletRequest request) {
|
||||
logger.debug("拉卡拉进件异步通知开始");
|
||||
|
||||
@ -538,24 +541,24 @@ public class LklTkServiceImpl {
|
||||
String requestBody = LakalaUtil.getBody(request);
|
||||
logger.debug("拉卡拉进件异步通知返回参数:{}", requestBody);
|
||||
if (StrUtil.isBlank(requestBody)) {
|
||||
return new JSONObject().set("code", "500").set("message", "返回参数为空");
|
||||
return new JSONObject().set("code", "FAIL").set("message", "返回参数为空");
|
||||
}
|
||||
|
||||
JSONObject reqBodyJSON = JSONUtil.parseObj(requestBody);
|
||||
if (reqBodyJSON.isEmpty() || reqBodyJSON.get("data") == null) {
|
||||
return new JSONObject().set("code", "500").set("message", "参数格式有误,无法解析");
|
||||
return new JSONObject().set("code", "FAIL").set("message", "参数格式有误,无法解析");
|
||||
}
|
||||
|
||||
String srcData = reqBodyJSON.getStr("data");
|
||||
if (StrUtil.isBlank(srcData)) {
|
||||
return new JSONObject().set("code", "500").set("message", "关键参数为空值");
|
||||
return new JSONObject().set("code", "FAIL").set("message", "关键参数为空值");
|
||||
}
|
||||
|
||||
// 公钥解密出来的数据
|
||||
String notifyPubKey = LakalaUtil.getResourceFile(notifyPubKeyPath, false, false);
|
||||
String data = LakalaUtil.decryptNotifyData(notifyPubKey, srcData);
|
||||
if (StrUtil.isBlank(data)) {
|
||||
return new JSONObject().set("code", "500").set("message", "密文解密出错!");
|
||||
return new JSONObject().set("code", "FAIL").set("message", "密文解密出错!");
|
||||
}
|
||||
|
||||
logger.debug("拉卡拉进件异步通知data解密成功,开始处理逻辑");
|
||||
@ -568,7 +571,7 @@ public class LklTkServiceImpl {
|
||||
|
||||
String auditStatus = dataJSON.getStr("status");
|
||||
if (!"SUCCESS".equals(auditStatus) && !"REVIEW_PASS".equals(auditStatus)) {
|
||||
return new JSONObject().set("code", "500").set("message", "返回审核状态有误");
|
||||
return new JSONObject().set("code", "FAIL").set("message", "返回审核状态有误");
|
||||
}
|
||||
|
||||
// 给商家入驻表增加拉卡拉的商户号和拉卡拉返回的数据
|
||||
@ -577,12 +580,13 @@ public class LklTkServiceImpl {
|
||||
ShopMchEntry shopMchEntry = shopMchEntryService.getShopMerchEntryByMerInnerNo(merInnerNo);
|
||||
if (ObjectUtil.isEmpty(shopMchEntry)) {
|
||||
logger.error("拉卡拉进件异步通知:返回的内部商户号:{} 入驻信息不存在!", merInnerNo);
|
||||
return new JSONObject().set("code", "500").set("message", "内部商户号:" + merInnerNo + " 入驻信息不存在");
|
||||
return new JSONObject().put("code", "FAIL").put("message", "内部商户号:" + merInnerNo + " 入驻信息不存在");
|
||||
}
|
||||
|
||||
Boolean success = shopMchEntryService.updateMerchEntryLklAuditStatusByLklMerCupNo(merInnerNo, merCupNo, CommonConstant.Enable, data);
|
||||
if (!success) {
|
||||
return new JSONObject().set("code", "500").set("message", "更新商户号失败");
|
||||
// return new JSONObject().set("code", "FAIL").set("message", "更新商户号失败");
|
||||
throw new ApiException("更新商户号失败");
|
||||
}
|
||||
|
||||
// 备注:RMK 采用拉卡拉的入网电子合同签署流程,暂停e签宝的电子合同生成流程
|
||||
@ -606,7 +610,9 @@ public class LklTkServiceImpl {
|
||||
// 下一步等待拉卡拉审核通过,再绑定接收方和商家的关系
|
||||
Pair<Boolean, String> retPair = lakalaApiService.innerApplyLedgerMer(shopMchEntry.getLkl_mer_cup_no());
|
||||
if (!retPair.getFirst()) {
|
||||
logger.error("商家申请分账功能失败:{}", retPair.getSecond());
|
||||
String message = "商家申请分账功能失败:" + retPair.getSecond();
|
||||
logger.error(message);
|
||||
throw new ApiException(message);
|
||||
}
|
||||
|
||||
// 更新商家的hasEsigned状态=1
|
||||
@ -616,11 +622,13 @@ public class LklTkServiceImpl {
|
||||
Boolean genSuccess = lklLedgerReceiverService.innerApplyLedgerReceiver(merCupNo, shopMchEntry.getDistributor_id());
|
||||
if (!genSuccess) {
|
||||
logger.error("申请分账接收方失败");
|
||||
throw new ApiException("申请分账接收方失败");
|
||||
}
|
||||
|
||||
return new JSONObject().put("code", "SUCCESS").put("message", "处理成功");
|
||||
}
|
||||
|
||||
|
||||
return new JSONObject().set("code", "200").set("message", "成功");
|
||||
throw new ApiException("进件回调处理失败");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -169,7 +169,7 @@ lakala:
|
||||
client_id: lsycs
|
||||
client_secret: XPa1HB5d55Ig0qV8
|
||||
user_no: 29153396
|
||||
ratio: 70.00
|
||||
split_lowest_ratio: 70.00
|
||||
api_pub_key_path: payKey/lakala/dev/tk_api_public_key.txt
|
||||
api_pri_key_path: payKey/lakala/dev/tk_api_private_key.txt
|
||||
notify_pub_key_path: payKey/lakala/dev/tk_notify_public_key.txt
|
||||
|
||||
@ -196,7 +196,7 @@ lakala:
|
||||
client_id: lsycs
|
||||
client_secret: XPa1HB5d55Ig0qV8
|
||||
user_no: 29153396
|
||||
ratio: 70.00
|
||||
split_lowest_ratio: 70.00
|
||||
api_pub_key_path: payKey/lakala/dev/tk_api_public_key.txt
|
||||
api_pri_key_path: payKey/lakala/dev/tk_api_private_key.txt
|
||||
notify_pub_key_path: payKey/lakala/dev/tk_notify_public_key.txt
|
||||
|
||||
Loading…
Reference in New Issue
Block a user