diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklLedgerMember.java b/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklLedgerMember.java index 9be106b4..22ef965e 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklLedgerMember.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/lakala/LklLedgerMember.java @@ -42,7 +42,7 @@ public class LklLedgerMember implements Serializable { private String split_rule_source; private String ret_url; private String apply_id; - private String audit_status; + private Integer audit_status; private String audit_status_text; private String remark; private Long mch_id; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/LakalaController.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/LakalaController.java index 8eb44567..3eb2a2b7 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/LakalaController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/LakalaController.java @@ -68,8 +68,9 @@ public class LakalaController extends BaseControllerImpl { return lakalaPayService.applyLedgerMerReceiverBind(paramsJSON); } + // https://mall.gpxscs.cn/api/mobile/shop/lakala/ledger/applyLedgerMerReceiverBindNotify @ApiOperation(value = "分账关系绑定申请异步回调通知", notes = "分账关系绑定申请异步回调通知") - @RequestMapping(value = "/ledger/applyBindNotify", method = RequestMethod.POST) + @RequestMapping(value = "/ledger/applyLedgerMerReceiverBindNotify", method = RequestMethod.POST) public JSONObject applyBindNotify(HttpServletRequest request) { return lakalaPayService.applyLedgerMerReceiverBindNotify(request); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/LklLedgerMemberService.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/LklLedgerMemberService.java index 38b607b4..a7cf5191 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/LklLedgerMemberService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/LklLedgerMemberService.java @@ -21,6 +21,15 @@ public interface LklLedgerMemberService extends IBaseService { */ LklLedgerMember getByMerCupNo(String merCupNo); + /** + * 根据申请单号和审核状态查询记录 + * + * @param applyId + * @param auditStatus + * @return + */ + LklLedgerMember getByApplyId(String applyId, Integer auditStatus); + /** * 根据银联商户号新增或修改记录 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java index 0a07075a..72a88d7b 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LakalaApiServiceImpl.java @@ -20,6 +20,7 @@ import com.lkl.laop.sdk.request.*; import com.lkl.laop.sdk.request.model.V3LabsTradeLocationInfo; import com.lkl.laop.sdk.request.model.V3LabsTradePreorderWechatBus; import com.suisung.mall.common.api.CommonResult; +import com.suisung.mall.common.constant.CommonConstant; import com.suisung.mall.common.exception.ApiException; import com.suisung.mall.common.feignService.ShopService; import com.suisung.mall.common.modules.lakala.LklLedgerMember; @@ -425,6 +426,8 @@ public class LakalaApiServiceImpl implements LakalaApiService { @Override public CommonResult applyLedgerMer(JSONObject paramsJSON) { log.info("商户分账业务开通申请开始"); + + // TODO 判断是否已经申请过? // 1. 配置初始化 initLKLSDK(); @@ -449,11 +452,12 @@ public class LakalaApiServiceImpl implements LakalaApiService { String splitEntrustFilePath = fileUploadResp.getStr("attFileId"); req.setSplitEntrustFilePath(splitEntrustFilePath); //比如:G1/M00/06/64/CrFdEmBQc-aAGc_XAAAiIbS3WIE960.pdf; + String domain = projectDomain; if (isProd()) { - projectDomain = projectDomain + "/api"; + domain += "/api"; } // 给拉卡拉通知的回调地址 - String retUrl = projectDomain + "/mobile/shop/lakala/ledger/applyLedgerMerNotify"; + String retUrl = domain + "/mobile/shop/lakala/ledger/applyLedgerMerNotify"; req.setRetUrl(retUrl); paramsJSON.set("orderNo", req.getOrderNo()); @@ -502,6 +506,7 @@ public class LakalaApiServiceImpl implements LakalaApiService { @Override public JSONObject applyLedgerMerNotify(HttpServletRequest request) { log.info("商户分账申请业务异步通知开始"); + // 验签 String authorization = request.getHeader("Authorization"); String requestBody = LakalaUtil.getBody(request); @@ -520,13 +525,21 @@ public class LakalaApiServiceImpl implements LakalaApiService { respData.put("retMsg", "响应处理失败!"); if (paramsJSON != null) { -// JSONObject reqData = (JSONObject) paramsJSON.get("respData"); -// if (ObjectUtil.isEmpty(reqData)) { -// return respData; -// } + String applyId = paramsJSON.getStr("applyId"); + if (StrUtil.isBlank(applyId)) { + log.info("商户分账申请业务回调:applyId为空"); + respData.put("retMsg", "applyId为空!"); + return respData; + } + + if (lklLedgerMemberService.getByApplyId(applyId, CommonConstant.Enable) != null) { + respData.put("retCode", lklSuccessCode); + respData.put("retMsg", "操作成功!"); + log.info("商户分账申请业务回调:已处理成功,不需再重新处理"); + } // 更改本地分账记录状态数据 - Boolean success = lklLedgerMemberService.updateAuditResult(paramsJSON.getStr("applyId"), + Boolean success = lklLedgerMemberService.updateAuditResult(applyId, paramsJSON.getStr("merInnerNo"), paramsJSON.getStr("merCupNo"), paramsJSON.getStr("entrustFileName"), @@ -689,11 +702,12 @@ public class LakalaApiServiceImpl implements LakalaApiService { String splitEntrustFileBase64 = UploadUtil.URLFileToBase64(paramsJSON.getStr("entrustFile")); // 这个是 url 地址,不是 base64 字节码 req.setEntrustFileName(fileName); + String domain = projectDomain; if (isProd()) { - projectDomain = projectDomain + "/api"; + domain += "/api"; } // 给拉卡拉通知的回调地址 - String retUrl = projectDomain + "/mobile/shop/lakala/ledger/applyLedgerMerReceiverBindNotify"; + String retUrl = domain + "/mobile/shop/lakala/ledger/applyLedgerMerReceiverBindNotify"; req.setRetUrl(retUrl); // 文件上传到拉卡拉服务器 @@ -748,9 +762,11 @@ public class LakalaApiServiceImpl implements LakalaApiService { */ @Override public JSONObject applyLedgerMerReceiverBindNotify(HttpServletRequest request) { + log.debug("分账绑定关系申请业务异步通知开始"); // 验签 String authorization = request.getHeader("Authorization"); String requestBody = LakalaUtil.getBody(request); + log.debug("分账绑定关系申请业务回调返回参数:{}", requestBody); boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath); if (!checkSuccess) { diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMemberServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMemberServiceImpl.java index f4dbb35d..88c1c102 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMemberServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMemberServiceImpl.java @@ -44,6 +44,24 @@ public class LklLedgerMemberServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("apply_id", applyId); + queryWrapper.eq("audit_status", auditStatus); + return getOne(queryWrapper); + } + /** * 根据银联商户号新增或修改记录 * @@ -57,7 +75,7 @@ public class LklLedgerMemberServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("mer_cup_no", record.getMer_cup_no()); + queryWrapper.eq("mer_cup_no", record.getMer_cup_no()).eq("mch_id", record.getMch_id()); List existsRecordList = list(queryWrapper); if (!CollectionUtil.isEmpty(existsRecordList) && existsRecordList.get(0) != null diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMerReceiverBindServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMerReceiverBindServiceImpl.java index d0e097e6..0c38a474 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMerReceiverBindServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/service/impl/LklLedgerMerReceiverBindServiceImpl.java @@ -90,8 +90,8 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl