优化拉卡拉分账相关的方法
This commit is contained in:
parent
18da67511e
commit
5f796adc02
@ -449,11 +449,10 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
//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 (lakalaRespJSON == null || !lakalaRespJSON.getStr("retCode").equals("000000")) {
|
||||
throw new ApiException(I18nUtil._(lakalaRespJSON.getStr("retMsg")));
|
||||
// responseStr="{'retCode':'000000','retMsg':'申请已受理,请等待审核结果','respData':{'version':'1.0','orderNo':'KFPT20230223181025407788734','orgCode':'1','applyId':681201215598657536}}";
|
||||
// lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
}
|
||||
|
||||
paramsJSON.set("apply_id", lakalaRespJSON.getByPath("respData.applyId"));
|
||||
@ -468,7 +467,7 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
return CommonResult.success(null, "提交成功,待审核中!");
|
||||
} catch (SDKException e) {
|
||||
log.error("分账申请失败:", e);
|
||||
throw new ApiException(I18nUtil._("申请失败!"), e);
|
||||
throw new ApiException(I18nUtil._("分账申请失败!"), e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -357,6 +357,10 @@
|
||||
<include>bootstrap.yml</include>
|
||||
<include>bootstrap-${profiles.active}.yml</include>
|
||||
<include>**/*.xml</include>
|
||||
<include>**/*.crt</include>
|
||||
<include>**/*.pem</include>
|
||||
<include>**/*.p12</include>
|
||||
<include>**/*.cer</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
@ -381,6 +385,10 @@
|
||||
<nonFilteredFileExtensions>
|
||||
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>ttc</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>p12</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>cer</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>pem</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>pfx</nonFilteredFileExtension>
|
||||
</nonFilteredFileExtensions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
@ -32,7 +32,7 @@ public class IpUtil implements ApplicationRunner {
|
||||
try {
|
||||
return searcher.search(ip);
|
||||
} catch (Exception e) {
|
||||
log.error("IP 格式错误:{}", e);
|
||||
log.error("IP:{} 格式错误:{}", ip, e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@ package com.suisung.mall.shop.lakala.controller;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.service.impl.BaseControllerImpl;
|
||||
import com.suisung.mall.shop.lakala.service.LakalaPayService;
|
||||
import com.suisung.mall.shop.lakala.service.LakalaApiService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.util.Base64Utils;
|
||||
@ -28,7 +28,7 @@ import java.io.IOException;
|
||||
public class LakalaController extends BaseControllerImpl {
|
||||
|
||||
@Resource
|
||||
private LakalaPayService lakalaPayService;
|
||||
private LakalaApiService lakalaPayService;
|
||||
|
||||
@ApiOperation(value = "本地文件转base64", notes = "本地文件转base64")
|
||||
@RequestMapping(value = "/file2base64", method = RequestMethod.POST)
|
||||
@ -37,6 +37,13 @@ public class LakalaController extends BaseControllerImpl {
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "获取银行卡的 BIN 信息", notes = "获取银行卡的 BIN 信息")
|
||||
@RequestMapping(value = "/bankCardBin", method = RequestMethod.POST)
|
||||
public JSONObject bankCardBin(@RequestBody JSONObject paramsJSON) {
|
||||
return lakalaPayService.getBankCardBin(paramsJSON.getStr("bankCardNo"));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "商户分账业务开通申请", notes = "商户分账业务开通申请")
|
||||
@RequestMapping(value = "/ledger/applyLedgerMer", method = RequestMethod.POST)
|
||||
public CommonResult ledgerApplyLedgerMer(@RequestBody JSONObject paramsJSON) {
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
package com.suisung.mall.shop.lakala.controller;
|
||||
|
||||
import com.suisung.mall.common.service.impl.BaseControllerImpl;
|
||||
import com.suisung.mall.shop.lakala.service.impl.LklTkService;
|
||||
import com.suisung.mall.shop.lakala.service.impl.LklTkServiceImpl;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@ -24,7 +24,7 @@ import javax.annotation.Resource;
|
||||
public class LklTkController extends BaseControllerImpl {
|
||||
|
||||
@Resource
|
||||
private LklTkService lklTkService;
|
||||
private LklTkServiceImpl lklTkService;
|
||||
|
||||
@ApiOperation(value = "请求获取token(商户进件)", notes = "请求获取token(商户进件)")
|
||||
@RequestMapping(value = "/token", method = RequestMethod.POST)
|
||||
|
||||
@ -14,7 +14,7 @@ import com.suisung.mall.common.api.CommonResult;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public interface LakalaPayService {
|
||||
public interface LakalaApiService {
|
||||
|
||||
Boolean initLKLSDK();
|
||||
|
||||
@ -134,5 +134,14 @@ public interface LakalaPayService {
|
||||
*/
|
||||
JSONObject applyLedgerMerReceiverBindNotify(HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 获取银行卡信息
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=387
|
||||
*
|
||||
* @param bankCardNo
|
||||
* @return
|
||||
*/
|
||||
JSONObject getBankCardBin(String bankCardNo);
|
||||
|
||||
|
||||
}
|
||||
@ -13,6 +13,14 @@ import com.suisung.mall.core.web.service.IBaseService;
|
||||
|
||||
public interface LklLedgerMemberService extends IBaseService<LklLedgerMember> {
|
||||
|
||||
/**
|
||||
* 根据银联商户号查询记录
|
||||
*
|
||||
* @param merCupNo
|
||||
* @return
|
||||
*/
|
||||
LklLedgerMember getByMerCupNo(String merCupNo);
|
||||
|
||||
/**
|
||||
* 根据银联商户号新增或修改记录
|
||||
*
|
||||
|
||||
@ -21,6 +21,15 @@ public interface LklLedgerMerReceiverBindService extends IBaseService<LklLedgerM
|
||||
*/
|
||||
Boolean saveOrUpdateByMerCupNoReceiverNo(LklLedgerMerReceiverBind record);
|
||||
|
||||
/**
|
||||
* 根据接收方编号查询记录
|
||||
*
|
||||
* @param merCupNo
|
||||
* @param receiverNo
|
||||
* @return
|
||||
*/
|
||||
LklLedgerMerReceiverBind getByCondition(String merCupNo, String receiverNo);
|
||||
|
||||
/**
|
||||
* 更新审核结果
|
||||
*
|
||||
|
||||
@ -20,4 +20,22 @@ public interface LklLedgerReceiverService extends IBaseService<LklLedgerReceiver
|
||||
* @return
|
||||
*/
|
||||
Boolean saveOrUpdateByReceiverNo(LklLedgerReceiver record);
|
||||
|
||||
/**
|
||||
* 根据接收方编号查询记录
|
||||
*
|
||||
* @param receiverNo
|
||||
* @return
|
||||
*/
|
||||
LklLedgerReceiver getByReceiverNo(String receiverNo);
|
||||
|
||||
/**
|
||||
* 根据条件查询记录
|
||||
*
|
||||
* @param LicenseNo
|
||||
* @param ContactMobile
|
||||
* @param platformId
|
||||
* @return
|
||||
*/
|
||||
LklLedgerReceiver getByCondition(String LicenseNo, String ContactMobile, Long platformId);
|
||||
}
|
||||
|
||||
@ -28,7 +28,8 @@ import com.suisung.mall.common.modules.lakala.LklLedgerReceiver;
|
||||
import com.suisung.mall.common.modules.store.ShopStoreBase;
|
||||
import com.suisung.mall.common.utils.I18nUtil;
|
||||
import com.suisung.mall.common.utils.StringUtils;
|
||||
import com.suisung.mall.shop.lakala.service.LakalaPayService;
|
||||
import com.suisung.mall.common.utils.UploadUtil;
|
||||
import com.suisung.mall.shop.lakala.service.LakalaApiService;
|
||||
import com.suisung.mall.shop.lakala.service.LklLedgerMemberService;
|
||||
import com.suisung.mall.shop.lakala.service.LklLedgerMerReceiverBindService;
|
||||
import com.suisung.mall.shop.lakala.service.LklLedgerReceiverService;
|
||||
@ -48,7 +49,7 @@ import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
public class LakalaApiServiceImpl implements LakalaApiService {
|
||||
private static final boolean init = false;
|
||||
private static final String lklSuccessCode = "000000";
|
||||
//### 可选的两个参数,不同的店铺商家,可以数据库里配置不同的商户号和终端号
|
||||
@ -145,7 +146,7 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
//4. 响应
|
||||
return JSONUtil.parseObj(responseStr);
|
||||
} catch (SDKException e) {
|
||||
LakalaPayServiceImpl.log.error("transPreOrder error", e);
|
||||
LakalaApiServiceImpl.log.error("transPreOrder error", e);
|
||||
throw new ApiException(I18nUtil._("获取公众号绑定信息失败!"), e);
|
||||
}
|
||||
|
||||
@ -403,23 +404,27 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
try {
|
||||
//3. 发送请求
|
||||
String responseStr = LKLSDK.httpPost(req);
|
||||
|
||||
JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
if (StrUtil.isBlank(responseStr)
|
||||
|| lakalaRespJSON == null
|
||||
|| !lakalaRespJSON.getStr("retCode").equals(lklSuccessCode)) {
|
||||
throw new ApiException(I18nUtil._("文件上传无响应或失败!"));
|
||||
|| lakalaRespJSON == null) {
|
||||
throw new ApiException(I18nUtil._("文件上传无响应!"));
|
||||
}
|
||||
|
||||
if (!lakalaRespJSON.getStr("retCode").equals(lklSuccessCode)) {
|
||||
throw new ApiException(I18nUtil._(lakalaRespJSON.getStr("retMsg")));
|
||||
}
|
||||
|
||||
return (JSONObject) lakalaRespJSON.get("respData");
|
||||
} catch (SDKException e) {
|
||||
log.error("文件上传失败:", e);
|
||||
throw new ApiException(I18nUtil._("文件上传失败!"), e);
|
||||
log.error("文件上传出错:", e);
|
||||
throw new ApiException(I18nUtil._("文件上传出错!"), e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public CommonResult applyLedgerMer(JSONObject paramsJSON) {
|
||||
log.info("商户分账业务开通申请开始");
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
@ -436,7 +441,7 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
req.setSplitEntrustFileName(fileName);
|
||||
|
||||
// 分账结算委托书文件上传到拉卡拉服务器
|
||||
JSONObject fileUploadResp = uploadFile(req.getOrderNo(), "SPLIT_ENTRUST_FILE", StringUtils.getFileExt(fileName), paramsJSON.getStr("splitEntrustFile"));
|
||||
JSONObject fileUploadResp = uploadFile(req.getOrderNo(), "SPLIT_ENTRUST_FILE", StringUtils.getFileExt(fileName), UploadUtil.URLFileToBase64(paramsJSON.getStr("splitEntrustFile")));
|
||||
if (fileUploadResp == null || StrUtil.isBlank(fileUploadResp.getStr("attFileId"))) {
|
||||
throw new ApiException(I18nUtil._("分账结算委托书上传失败!"));
|
||||
}
|
||||
@ -461,13 +466,14 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
//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
|
||||
|| !lakalaRespJSON.getStr("retCode").equals(lklSuccessCode)) {
|
||||
throw new ApiException(I18nUtil._("分账申请失败!"));
|
||||
// 成功返回示例:{'retCode':'000000','retMsg':'申请已受理,请等待审核结果','respData':{'version':'1.0','orderNo':'KFPT20230223181025407788734','orgCode':'1','applyId':681201215598657536}}
|
||||
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"));
|
||||
@ -482,7 +488,7 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
return CommonResult.success(null, "提交成功,待审核中!");
|
||||
} catch (SDKException e) {
|
||||
log.error("分账申请失败:", e);
|
||||
throw new ApiException(I18nUtil._("申请失败!"), e);
|
||||
throw new ApiException(I18nUtil._("申请开通分账出错!"), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -514,20 +520,20 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
respData.put("retMsg", "响应处理失败!");
|
||||
|
||||
if (paramsJSON != null) {
|
||||
JSONObject reqData = (JSONObject) paramsJSON.get("respData");
|
||||
if (ObjectUtil.isEmpty(reqData)) {
|
||||
return respData;
|
||||
}
|
||||
// JSONObject reqData = (JSONObject) paramsJSON.get("respData");
|
||||
// if (ObjectUtil.isEmpty(reqData)) {
|
||||
// return respData;
|
||||
// }
|
||||
|
||||
// 更改本地分账记录状态数据
|
||||
Boolean success = lklLedgerMemberService.updateAuditResult(reqData.getStr("applyId"),
|
||||
reqData.getStr("merInnerNo"),
|
||||
reqData.getStr("merCupNo"),
|
||||
reqData.getStr("entrustFileName"),
|
||||
reqData.getStr("entrustFilePath"),
|
||||
reqData.getStr("auditStatus"),
|
||||
reqData.getStr("auditStatusText"),
|
||||
reqData.getStr("remark")
|
||||
Boolean success = lklLedgerMemberService.updateAuditResult(paramsJSON.getStr("applyId"),
|
||||
paramsJSON.getStr("merInnerNo"),
|
||||
paramsJSON.getStr("merCupNo"),
|
||||
paramsJSON.getStr("entrustFileName"),
|
||||
paramsJSON.getStr("entrustFilePath"),
|
||||
paramsJSON.getStr("auditStatus"),
|
||||
paramsJSON.getStr("auditStatusText"),
|
||||
paramsJSON.getStr("remark")
|
||||
);
|
||||
|
||||
if (success) {
|
||||
@ -549,6 +555,12 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
*/
|
||||
@Override
|
||||
public CommonResult applyLedgerReceiver(JSONObject paramsJSON) {
|
||||
// 判断分账接收方记录是否存在,存在就不再新建了
|
||||
LklLedgerReceiver lklLedgerReceiverOld = lklLedgerReceiverService.getByCondition(paramsJSON.getStr("licenseNo"), paramsJSON.getStr("contactMobile"), paramsJSON.getLong("platformId"));
|
||||
if (lklLedgerReceiverOld != null) {
|
||||
return CommonResult.success(lklLedgerReceiverOld, "分账接收方已创建过!");
|
||||
}
|
||||
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
@ -585,14 +597,15 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
for (JSONObject attachJSON : paramsJSON.getJSONArray("attachList").jsonIter()) {
|
||||
String fileName = attachJSON.getStr("attachName");
|
||||
String attachType = attachJSON.getStr("attachType");
|
||||
String fileBase64 = attachJSON.getStr("attachStoreFile");
|
||||
String fileBase64 = UploadUtil.URLFileToBase64(attachJSON.getStr("attachStoreFile")); // 这个是 url 地址,不是 base64 字节码
|
||||
attachInfo.setAttachName(fileName);
|
||||
attachInfo.setAttachType(attachType);
|
||||
|
||||
JSONObject fileUploadResp = uploadFile(StringUtils.genLklOrderNo(8), attachType,
|
||||
StringUtils.getFileExt(fileName), fileBase64);
|
||||
if (fileUploadResp == null || StrUtil.isBlank(fileUploadResp.getStr("attFileId"))) {
|
||||
throw new ApiException(I18nUtil._("附件上传失败!"));
|
||||
log.error("附件:{},{} 上传失败!", fileName, attachType);
|
||||
continue;
|
||||
}
|
||||
|
||||
attachInfo.setAttachStorePath(fileUploadResp.getStr("attFileId"));
|
||||
@ -610,9 +623,12 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
try {
|
||||
//3. 发送请求,申请创建分账接收方
|
||||
String responseStr = LKLSDK.httpPost(req);
|
||||
|
||||
JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
if (lakalaRespJSON == null || !lakalaRespJSON.getStr("retCode").equals(lklSuccessCode)) {
|
||||
if (StrUtil.isBlank(responseStr) || lakalaRespJSON == null) {
|
||||
throw new ApiException(I18nUtil._("创建分账接收方无响应!"));
|
||||
}
|
||||
|
||||
if (!lakalaRespJSON.getStr("retCode").equals(lklSuccessCode)) {
|
||||
throw new ApiException(I18nUtil._(lakalaRespJSON.getStr("retMsg")));
|
||||
}
|
||||
|
||||
@ -627,10 +643,10 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
// 新增或修改本地数据
|
||||
lklLedgerReceiverService.saveOrUpdateByReceiverNo(lklLedgerReceiver);
|
||||
|
||||
return CommonResult.success(null, "接收方创建成功!");
|
||||
return CommonResult.success(lklLedgerReceiver, "创建接收方成功!");
|
||||
} catch (SDKException e) {
|
||||
log.error("接收方创建失败:", e);
|
||||
throw new ApiException(I18nUtil._("接收方创建失败!"), e);
|
||||
throw new ApiException(I18nUtil._("创建接收方失败!"), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -643,6 +659,17 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
*/
|
||||
@Override
|
||||
public CommonResult applyLedgerMerReceiverBind(JSONObject paramsJSON) {
|
||||
// 检查分账方和接收方记录是否存在
|
||||
if (lklLedgerMemberService.getByMerCupNo(paramsJSON.getStr("merCupNo")) == null
|
||||
|| lklLedgerReceiverService.getByReceiverNo(paramsJSON.getStr("receiverNo")) == null) {
|
||||
return CommonResult.failed(I18nUtil._("绑定方不存在!"));
|
||||
}
|
||||
|
||||
LklLedgerMerReceiverBind lklLedgerMerReceiverBindOld = lklLedgerMerReceiverBindService.getByCondition(paramsJSON.getStr("merCupNo"), paramsJSON.getStr("receiverNo"));
|
||||
if (lklLedgerMerReceiverBindOld != null) {
|
||||
return CommonResult.success(lklLedgerMerReceiverBindOld, "分账绑定关系已存在!");
|
||||
}
|
||||
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
@ -659,10 +686,14 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
req.setReceiverNo(paramsJSON.getStr("receiverNo"));
|
||||
|
||||
String fileName = paramsJSON.getStr("entrustFileName");
|
||||
String splitEntrustFileBase64 = paramsJSON.getStr("entrustFile");
|
||||
String splitEntrustFileBase64 = UploadUtil.URLFileToBase64(paramsJSON.getStr("entrustFile")); // 这个是 url 地址,不是 base64 字节码
|
||||
req.setEntrustFileName(fileName);
|
||||
|
||||
String retUrl = projectDomain + "/mobile/pay/lakala/ledger/applyLedgerMerReceiverBindNotify";
|
||||
if (isProd()) {
|
||||
projectDomain = projectDomain + "/api";
|
||||
}
|
||||
// 给拉卡拉通知的回调地址
|
||||
String retUrl = projectDomain + "/mobile/shop/lakala/ledger/applyLedgerMerReceiverBindNotify";
|
||||
req.setRetUrl(retUrl);
|
||||
|
||||
// 文件上传到拉卡拉服务器
|
||||
@ -701,7 +732,7 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
LklLedgerMerReceiverBind lklLedgerMerReceiverBind = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerMerReceiverBind.class);
|
||||
lklLedgerMerReceiverBindService.saveOrUpdateByMerCupNoReceiverNo(lklLedgerMerReceiverBind);
|
||||
|
||||
return CommonResult.success(null, "提交成功,待审核中!");
|
||||
return CommonResult.success(lklLedgerMerReceiverBind, "提交成功,待审核中!");
|
||||
} catch (SDKException e) {
|
||||
log.error("分账绑定关系申请失败:", e);
|
||||
throw new ApiException(I18nUtil._("分账绑定关系申请失败!"), e);
|
||||
@ -726,25 +757,21 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
return JSONUtil.createObj().set("retCode", "OP90002").set("retMsg", "验签失败!");
|
||||
}
|
||||
|
||||
// String requestBody = LakalaUtil.getBody(request);
|
||||
|
||||
JSONObject paramsJSON = JSONUtil.parseObj(requestBody);
|
||||
JSONObject respData = new JSONObject();
|
||||
respData.put("retCode", "OP90003");
|
||||
respData.put("retMsg", "响应处理失败!");
|
||||
|
||||
if (paramsJSON != null && paramsJSON.get("respData") != null) {
|
||||
JSONObject reqData = (JSONObject) paramsJSON.get("respData");
|
||||
|
||||
Boolean success = lklLedgerMerReceiverBindService.updateAuditResult(reqData.getStr("applyId"),
|
||||
reqData.getStr("merInnerNo"),
|
||||
reqData.getStr("merCupNo"),
|
||||
reqData.getStr("receiverNo"),
|
||||
reqData.getStr("entrustFileName"),
|
||||
reqData.getStr("entrustFilePath"),
|
||||
reqData.getStr("auditStatus"),
|
||||
reqData.getStr("auditStatusText"),
|
||||
reqData.getStr("remark"));
|
||||
if (paramsJSON != null) {
|
||||
Boolean success = lklLedgerMerReceiverBindService.updateAuditResult(paramsJSON.getStr("applyId"),
|
||||
paramsJSON.getStr("merInnerNo"),
|
||||
paramsJSON.getStr("merCupNo"),
|
||||
paramsJSON.getStr("receiverNo"),
|
||||
paramsJSON.getStr("entrustFileName"),
|
||||
paramsJSON.getStr("entrustFilePath"),
|
||||
paramsJSON.getStr("auditStatus"),
|
||||
paramsJSON.getStr("auditStatusText"),
|
||||
paramsJSON.getStr("remark"));
|
||||
if (success) {
|
||||
respData.put("retCode", lklSuccessCode);
|
||||
respData.put("retMsg", "操作成功!");
|
||||
@ -754,5 +781,43 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
return respData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 银行卡信息查询
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=179
|
||||
*
|
||||
* @param bankCardNo 银行卡号
|
||||
* @return bankCode, bankName, clearingBankCode
|
||||
*/
|
||||
@Override
|
||||
public JSONObject getBankCardBin(String bankCardNo) {
|
||||
if (StrUtil.isBlank(bankCardNo)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
// //2. 装配数据
|
||||
// V2MmsOpenApiBankCardBinRequest req = new V2MmsOpenApiLedgerApplyLedgerReceiverRequest();
|
||||
//
|
||||
// JSONObject formData = new JSONObject();
|
||||
// formData.putByPath("reqData.version", "2.0");
|
||||
// formData.putByPath("reqData.orderNo", StringUtils.genLklOrderNo(8));
|
||||
// formData.putByPath("reqData.orgCode", orgCode);
|
||||
// formData.putByPath("reqData.cardNo", bankCardNo);
|
||||
//
|
||||
// String urlPath = "/api/v2/mms/openApi/cardBin";
|
||||
// ResponseEntity<JSONObject> response = RestTemplateHttpUtil.sendPostFormDataBackEntity(buildLklServiceUrl(urlPath), header, formData, JSONObject.class);
|
||||
// if (ObjectUtil.isEmpty(response) || response.getStatusCode() != HttpStatus.OK) {
|
||||
// return null;
|
||||
// }
|
||||
// JSONObject result = response.getBody();
|
||||
// if (result == null) {
|
||||
// return null;
|
||||
// }
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -26,6 +26,24 @@ import java.util.List;
|
||||
public class LklLedgerMemberServiceImpl extends BaseServiceImpl<LklLedgerMemberMapper, LklLedgerMember> implements LklLedgerMemberService {
|
||||
|
||||
|
||||
/**
|
||||
* 根据银联商户号查询记录
|
||||
*
|
||||
* @param merCupNo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LklLedgerMember getByMerCupNo(String merCupNo) {
|
||||
if (StrUtil.isBlank(merCupNo)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
QueryWrapper<LklLedgerMember> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("mer_cup_no", merCupNo);
|
||||
queryWrapper.orderByAsc("id");
|
||||
return getOne(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据银联商户号新增或修改记录
|
||||
*
|
||||
|
||||
@ -12,6 +12,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.suisung.mall.common.constant.CommonConstant;
|
||||
import com.suisung.mall.common.modules.lakala.LklLedgerMerReceiverBind;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.lakala.mapper.LklLedgerMerReceiverBindMapper;
|
||||
@ -30,13 +31,14 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl<LklLedg
|
||||
*/
|
||||
@Override
|
||||
public Boolean saveOrUpdateByMerCupNoReceiverNo(LklLedgerMerReceiverBind record) {
|
||||
if (record == null || StrUtil.isBlank(record.getReceiver_no())) {
|
||||
if (record == null || StrUtil.isBlank(record.getMer_cup_no()) || StrUtil.isBlank(record.getReceiver_no())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
QueryWrapper<LklLedgerMerReceiverBind> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("mer_cup_no", record.getMer_cup_no());
|
||||
queryWrapper.eq("receiver_no", record.getReceiver_no());
|
||||
queryWrapper.eq("mer_cup_no", record.getMer_cup_no())
|
||||
.eq("receiver_no", record.getReceiver_no())
|
||||
.eq("audit_status", CommonConstant.Enable);
|
||||
List<LklLedgerMerReceiverBind> existsRecordList = list(queryWrapper);
|
||||
if (!CollectionUtil.isEmpty(existsRecordList)
|
||||
&& existsRecordList.get(0) != null
|
||||
@ -46,7 +48,21 @@ public class LklLedgerMerReceiverBindServiceImpl extends BaseServiceImpl<LklLedg
|
||||
return updateById(record);
|
||||
}
|
||||
|
||||
return save(record);
|
||||
return add(record);
|
||||
}
|
||||
|
||||
public LklLedgerMerReceiverBind getByCondition(String merCupNo, String receiverNo) {
|
||||
if (StrUtil.isBlank(merCupNo) || StrUtil.isBlank(receiverNo)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
QueryWrapper<LklLedgerMerReceiverBind> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("mer_cup_no", merCupNo)
|
||||
.eq("receiver_no", receiverNo)
|
||||
.eq("audit_status", CommonConstant.Enable);
|
||||
|
||||
|
||||
return getOne(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -9,8 +9,10 @@
|
||||
package com.suisung.mall.shop.lakala.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.suisung.mall.common.constant.CommonConstant;
|
||||
import com.suisung.mall.common.modules.lakala.LklLedgerReceiver;
|
||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||
import com.suisung.mall.shop.lakala.mapper.LklLedgerReceiverMapper;
|
||||
@ -40,9 +42,14 @@ public class LklLedgerReceiverServiceImpl extends BaseServiceImpl<LklLedgerRecei
|
||||
if (StrUtil.isNotBlank(record.getContact_mobile())) {
|
||||
queryWrapper.eq("contact_mobile", record.getContact_mobile());
|
||||
}
|
||||
Long platformId = record.getPlatform_id();
|
||||
if (ObjectUtil.isEmpty(platformId)) {
|
||||
platformId = 0L;
|
||||
}
|
||||
queryWrapper.eq("platform_id", platformId).eq("status", CommonConstant.Enable);
|
||||
|
||||
List<LklLedgerReceiver> existsRecordList = list(queryWrapper);
|
||||
if (!CollectionUtil.isEmpty(existsRecordList)
|
||||
if (CollectionUtil.isNotEmpty(existsRecordList)
|
||||
&& existsRecordList.get(0) != null
|
||||
&& existsRecordList.get(0).getId() > 0) {
|
||||
// update
|
||||
@ -50,6 +57,56 @@ public class LklLedgerReceiverServiceImpl extends BaseServiceImpl<LklLedgerRecei
|
||||
return updateById(record);
|
||||
}
|
||||
|
||||
return save(record);
|
||||
return add(record);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据接收方编号查询记录
|
||||
*
|
||||
* @param receiverNo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LklLedgerReceiver getByReceiverNo(String receiverNo) {
|
||||
if (StrUtil.isBlank(receiverNo)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
QueryWrapper<LklLedgerReceiver> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("receiver_no", receiverNo).eq("status", CommonConstant.Enable);
|
||||
queryWrapper.orderByAsc("id");
|
||||
|
||||
return getOne(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据条件查询记录
|
||||
*
|
||||
* @param LicenseNo
|
||||
* @param ContactMobile
|
||||
* @param platformId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LklLedgerReceiver getByCondition(String LicenseNo, String ContactMobile, Long platformId) {
|
||||
if (ObjectUtil.isEmpty(platformId)) {
|
||||
platformId = 0L;
|
||||
}
|
||||
if (StrUtil.isBlank(LicenseNo) && StrUtil.isBlank(ContactMobile)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
QueryWrapper<LklLedgerReceiver> queryWrapper = new QueryWrapper<>();
|
||||
if (StrUtil.isNotBlank(LicenseNo)) {
|
||||
queryWrapper.eq("license_no", LicenseNo);
|
||||
}
|
||||
if (StrUtil.isNotBlank(ContactMobile)) {
|
||||
queryWrapper.eq("contact_mobile", ContactMobile);
|
||||
}
|
||||
|
||||
queryWrapper.eq("platform_id", platformId)
|
||||
.eq("status", CommonConstant.Enable);
|
||||
|
||||
return getOne(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,10 +36,13 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class LklTkService {
|
||||
public class LklTkServiceImpl {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(LklTkService.class);
|
||||
private static final Logger log = LoggerFactory.getLogger(LklTkServiceImpl.class);
|
||||
@Value("${lakala.tk.server_url}")
|
||||
private String tkServerUrl;
|
||||
|
||||
@Value("${lakala.server_url}")
|
||||
private String serverUrl;
|
||||
|
||||
@Value("${lakala.tk.client_id}")
|
||||
@ -48,6 +51,9 @@ public class LklTkService {
|
||||
@Value("${lakala.tk.client_secret}")
|
||||
private String clientSecret;
|
||||
|
||||
@Value("${lakala.org_code}")
|
||||
private String orgCode;
|
||||
|
||||
@Value("${spring.profiles.active}")
|
||||
private String profile;
|
||||
|
||||
@ -58,6 +64,10 @@ public class LklTkService {
|
||||
private RedisService redisService;
|
||||
|
||||
protected String buildLklTkUrl(String urlPath) {
|
||||
return tkServerUrl + urlPath;
|
||||
}
|
||||
|
||||
protected String buildLklServiceUrl(String urlPath) {
|
||||
return serverUrl + urlPath;
|
||||
}
|
||||
|
||||
@ -406,4 +416,5 @@ public class LklTkService {
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -24,6 +24,7 @@ import com.suisung.mall.shop.page.service.ShopPageBaseService;
|
||||
import com.suisung.mall.shop.product.service.ShopPageUserFormService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
@ -44,6 +45,7 @@ import java.util.Map;
|
||||
* @author Xinze
|
||||
* @since 2021-06-11
|
||||
*/
|
||||
@Slf4j
|
||||
@Api(tags = "后台页面管理")
|
||||
@RestController
|
||||
@RequestMapping("/admin/shop/shop-page-base")
|
||||
@ -230,6 +232,8 @@ public class ShopPageBaseController extends BaseControllerImpl {
|
||||
throw new ApiUserException(I18nUtil._("用户信息异常!"));
|
||||
}
|
||||
|
||||
log.info("ShopPageBaseController 用户信息:{}", JSONUtil.toJsonStr(user));
|
||||
|
||||
ModelAndView view = new ModelAndView("diy");
|
||||
|
||||
Integer subsite_id = user.getSite_id();
|
||||
@ -244,6 +248,7 @@ public class ShopPageBaseController extends BaseControllerImpl {
|
||||
//Integer tpl_id = getParameter("tpl_id", 1012);
|
||||
Integer app_type = 3;
|
||||
|
||||
log.info("ShopPageBaseController 模版修改参数:{},{},{},{}", subsite_id, store_id, tpl_id, app_type);
|
||||
shopPageAppService.getModel(view, subsite_id, store_id, tpl_id, app_type);
|
||||
|
||||
Map<String, Object> res = new HashMap<>();
|
||||
|
||||
@ -157,7 +157,7 @@ lakala:
|
||||
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
||||
#机构代码
|
||||
org_code: 1
|
||||
#商户号
|
||||
#商户号, 测试商户号(未开通分账功能的):8222900539908Q9
|
||||
merchant_no: 82229007392000A
|
||||
#终端号
|
||||
term_no: D9296400
|
||||
|
||||
@ -152,24 +152,42 @@ sf-express:
|
||||
enable: 2
|
||||
#拉卡拉进件配置
|
||||
lakala:
|
||||
# #服务地址
|
||||
# server_url: https://s2.lakala.com
|
||||
# #应用Id
|
||||
# app_id: OP10000439
|
||||
# #商户证书序列号
|
||||
# serial_no: 1737359895636
|
||||
# #商户证书
|
||||
# api_cert_path: payKey/lakala/prod/api_cert.cer
|
||||
# #商户私钥
|
||||
# api_pri_key_path: payKey/lakala/prod/api_private_key.pem
|
||||
# #拉卡拉平台证书
|
||||
# lkl_platform_cer_path: payKey/lakala/prod/lkl_platform.cer
|
||||
# #机构代码
|
||||
# org_code: 980688
|
||||
# #商户号
|
||||
# merchant_no: 8226330599900LN
|
||||
# #终端号码,M0780629(B2B收银台) M0780798(专业化扫码)
|
||||
# term_no: M0780798
|
||||
#服务地址
|
||||
server_url: https://s2.lakala.com
|
||||
server_url: https://test.wsmsd.cn/sit
|
||||
#应用Id
|
||||
app_id: OP10000439
|
||||
app_id: OP00000003
|
||||
#商户证书序列号
|
||||
serial_no: 1737359895636
|
||||
serial_no: 00dfba8194c41b84cf
|
||||
#商户证书
|
||||
api_cert_path: payKey/lakala/prod/api_cert.cer
|
||||
api_cert_path: payKey/lakala/dev/OP00000003_cert.cer
|
||||
#商户私钥
|
||||
api_pri_key_path: payKey/lakala/prod/api_private_key.pem
|
||||
api_pri_key_path: payKey/lakala/dev/OP00000003_private_key.pem
|
||||
#拉卡拉平台证书
|
||||
lkl_platform_cer_path: payKey/lakala/prod/lkl_platform.cer
|
||||
lkl_platform_cer_path: payKey/lakala/dev/lkl_notify_cert_v2.cer
|
||||
#机构代码
|
||||
org_code: 980688
|
||||
#商户号
|
||||
merchant_no: 8226330599900LN
|
||||
#终端号码,M0780629(B2B收银台) M0780798(专业化扫码)
|
||||
term_no: M0780798
|
||||
org_code: 1
|
||||
#商户号, 测试商户号(未开通分账功能的):8222900539908Q9
|
||||
merchant_no: 82229007392000A
|
||||
#终端号
|
||||
term_no: D9296400
|
||||
#拉卡拉拓客进件配置
|
||||
tk:
|
||||
#服务地址
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDYTCCAkmgAwIBAgIJAN+6gZTEG4TPMA0GCSqGSIb3DQEBCwUAMEkxCzAJBgNV
|
||||
BAYTAlVTMREwDwYDVQQIEwhzaGFuZ2hhaTERMA8GA1UEBxMIc2hhbmdoYWkxFDAS
|
||||
BgNVBAMUC2xha2FsYV8yMDIxMB4XDTIxMDYxODA3MjEzNFoXDTMxMDYxOTA3MjEz
|
||||
NFowSTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCHNoYW5naGFpMREwDwYDVQQHEwhz
|
||||
aGFuZ2hhaTEUMBIGA1UEAxQLbGFrYWxhXzIwMjEwggEiMA0GCSqGSIb3DQEBAQUA
|
||||
A4IBDwAwggEKAoIBAQDvDBZyHUDndAGxrIcsCV2njhNO3vCEZotTaWYSYwtDvkcA
|
||||
b1EjsBFabXZaKigpqFXk5XXNI3NIHP9M8XKzIgGvc65NpLAfRjVql8JiTvLyYd1g
|
||||
IUcOXMInabu+oX7dQSI1mS8XzqaoVRhDZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si
|
||||
+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbWdhZ+NHwitnQwAJTLBFvfk28INM39G7XO
|
||||
sXdVLfsooFdglVTOHpNuRiQAj9gShCCNrpGsNQxDiJIxE43qRsNsRwigyo6DPJk/
|
||||
klgDJa417E2wgP8VrwiXparO4FMzOGK15quuoD7DAgMBAAGjTDBKMAkGA1UdEwQC
|
||||
MAAwEQYJYIZIAYb4QgEBBAQDAgTwMAsGA1UdDwQEAwIFoDAdBgNVHSUEFjAUBggr
|
||||
BgEFBQcDAgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAI21YYAlH+Pc1ISv
|
||||
nbQrGqL8suGL0Hh/8hGaFfrJEJEKr9OeC8jElUhck2MTmfu/Y1lB7r8RBrhGPXi4
|
||||
kTXmB6ADs/9+ezNW3WXyFj7fhs3JcZ3mo33T9wyQySDKd//JrEtrTsc/s2PZ602y
|
||||
qNmPomXSzjrlugaMyC7LI9sR44mc7sQnchjHoxrQFD5/usTFW72UQfYCORsQWYMt
|
||||
0KKEyAcpRL51RE3xbX1WDtduFYGP62PbwLAn2nCL/j1wlF5hltWj7sditWqKgso5
|
||||
F8BTffn2Bb0RdsNxqwMy1cTPrWLeXVOqMDu3ge7hvoav8lZKTjk5Kmqhs7wNAQXK
|
||||
mg9qSwo=
|
||||
-----END CERTIFICATE-----
|
||||
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDvDBZyHUDndAGx
|
||||
rIcsCV2njhNO3vCEZotTaWYSYwtDvkcAb1EjsBFabXZaKigpqFXk5XXNI3NIHP9M
|
||||
8XKzIgGvc65NpLAfRjVql8JiTvLyYd1gIUcOXMInabu+oX7dQSI1mS8XzqaoVRhD
|
||||
ZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbW
|
||||
dhZ+NHwitnQwAJTLBFvfk28INM39G7XOsXdVLfsooFdglVTOHpNuRiQAj9gShCCN
|
||||
rpGsNQxDiJIxE43qRsNsRwigyo6DPJk/klgDJa417E2wgP8VrwiXparO4FMzOGK1
|
||||
5quuoD7DAgMBAAECggEBANhmWOt1EAx3OBFf3f4/fEjylQgRSiqRqg8Ymw6KGuh4
|
||||
mE4Md6eW/B6geUOmZjVP7nIIR1wte28M0REWgn8nid8LGf+v1sB5DmIwgAf+8G/7
|
||||
qCwd8/VMg3aqgQtRp0ckb5OV2Mv0h2pbnltkWHR8LDIMwymyh5uCApbn/aTrCAZK
|
||||
NXcPOyAn9tM8Bu3FHk3Pf24Er3SN+bnGxgpzDrFjsDSHjDFT9UMIc2WdA3tuMv9X
|
||||
3DDn0bRCsHnsIw3WrwY6HQ8mumdbURk+2Ey3eRFfMYxyS96kOgBC2hqZOlDwVPAK
|
||||
TPtS4hoq+cQ0sRaJQ4T0UALJrBVHa+EESgRaTvrXqAECgYEA+WKmy9hcvp6IWZlk
|
||||
9Q1JZ+dgIVxrO65zylK2FnD1/vcTx2JMn73WKtQb6vdvTuk+Ruv9hY9PEsf7S8gH
|
||||
STTmzHOUgo5x0F8yCxXFnfji2juoUnDdpkjtQK5KySDcpQb5kcCJWEVi9v+zObM0
|
||||
Zr1Nu5/NreE8EqUl3+7MtHOu1TMCgYEA9WM9P6m4frHPW7h4gs/GISA9LuOdtjLv
|
||||
AtgCK4cW2mhtGNAMttD8zOBQrRuafcbFAyU9de6nhGwetOhkW9YSV+xRNa7HWTeI
|
||||
RgXJuJBrluq5e1QGTIwZU/GujpNaR4Qiu0B8TodM/FME7htsyxjmCwEfT6SDYlke
|
||||
MzTbMa9Q0DECgYBqsR/2+dvD2YMwAgZFKKgNAdoIq8dcwyfamUQ5mZ5EtGQL2yw4
|
||||
8zibHh/LiIxgUD1Kjk/qQgNsX45NP4iOc0mCkrgomtRqdy+rumbPTNmQ0BEVJCBP
|
||||
scd+8pIgNiTvnWpMRvj7gMP0NDTzLI3wnnCRIq8WAtR2jZ0Ejt+ZHBziLQKBgQDi
|
||||
bEe/zqNmhDuJrpXEXmO7fTv3YB/OVwEj5p1Z/LSho2nHU3Hn3r7lbLYEhUvwctCn
|
||||
Ll2fzC7Wic1rsGOqOcWDS5NDrZpUQGGF+yE/JEOiZcPwgH+vcjaMtp0TAfRzuQEz
|
||||
NzV8YGwxB4mtC7E/ViIuVULHAk4ZGZI8PbFkDxjKgQKBgG8jEuLTI1tsP3kyaF3j
|
||||
Aylnw7SkBc4gfe9knsYlw44YlrDSKr8AOp/zSgwvMYvqT+fygaJ3yf9uIBdrIilq
|
||||
CHKXccZ9uA/bT5JfIi6jbg3EoE9YhB0+1aGAS1O2dBvUiD8tJ+BjAT4OB0UDpmM6
|
||||
QsFLQgFyXgvDnzr/o+hQJelW
|
||||
-----END PRIVATE KEY-----
|
||||
@ -0,0 +1,25 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMTCCAxmgAwIBAgIGAXRTgcMnMA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT
|
||||
AkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK
|
||||
DA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW
|
||||
YWxpZGF0aW9uIENBMB4XDTIwMTAxMDA1MjQxNFoXDTMwMTAwODA1MjQxNFowZTEL
|
||||
MAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx
|
||||
FzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu
|
||||
Q09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt1zHL54HiI8d2sLJ
|
||||
lwoQji3/ln0nsvfZ/XVpOjuB+1YR6/0LdxEDMC/hxI6iH2Rm5MjwWz3dmN/6BZeI
|
||||
gwGeTOWJUZFARo8UduKrlhC6gWMRpAiiGC8wA8stikc5gYB+UeFVZi/aJ0WN0cpP
|
||||
JYCvPBhxhMvhVDnd4hNohnR1L7k0ypuWg0YwGjC25FaNAEFBYP9EYUyCJjE//9Z7
|
||||
sMzHR9SJYCqqo6r9bOH9G6sWKuEp+osuAh+kJIxJMHfipw7w3tEcWG0hce9u/el4
|
||||
cYJtg8/PPMVoccKmeCzMvarr7jdKP4lenJbtwlgyfs+JgNu60KMUJH8RS72wC9NY
|
||||
uFz09wIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo
|
||||
dJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE
|
||||
BwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh
|
||||
a2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFJ2Kx9YZfmWpkKFnC33C0r5D
|
||||
K3rFMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA
|
||||
A4IBAQBZoeU0XyH9O0LGF9R+JyGwfU/O5amoB97VeM+5n9v2z8OCiIJ8eXVGKN9L
|
||||
tl9QkpTEanYwK30KkpHcJP1xfVkhPi/cCMgfTWQ5eKYC7Zm16zk7n4CP6IIgZIqm
|
||||
TVGsIGKk8RzWseyWPB3lfqMDR52V1tdA1S8lJ7a2Xnpt5M2jkDXoArl3SVSwCb4D
|
||||
AmThYhak48M++fUJNYII9JBGRdRGbfJ2GSFdPXgesUL2CwlReQwbW4GZkYGOg9LK
|
||||
CNPK6XShlNdvgPv0CCR08KCYRwC3HZ0y1F0NjaKzYdGNPrvOq9lA495ONZCvzYDo
|
||||
gmsu/kd6eqxTs/JwdaIYr4sCMg8Z
|
||||
-----END CERTIFICATE-----
|
||||
22
mall-shop/src/main/resources/payKey/lakala/prod/api_cert.cer
Normal file
22
mall-shop/src/main/resources/payKey/lakala/prod/api_cert.cer
Normal file
@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDoDCCAoigAwIBAgIGAZSCuCxUMA0GCSqGSIb3DQEBBQUAMGAxFDASBgNVBAMM
|
||||
C0xBS0FMQS1MQU9QMQswCQYDVQQGEwJDTjEXMBUGA1UECgwOTGFrYWxhIENvLixM
|
||||
dGQxDzANBgNVBAsMBkxLTC1ZRjERMA8GA1UEBwwIc2hhbmdoYWkwHhcNMjUwMTIw
|
||||
MDc1ODE1WhcNMzUwMTIwMDc1ODE1WjBgMRQwEgYDVQQDDAtMQUtBTEEtTEFPUDEL
|
||||
MAkGA1UEBhMCQ04xFzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMQ8wDQYDVQQLDAZM
|
||||
S0wtWUYxETAPBgNVBAcMCHNoYW5naGFpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
||||
MIIBCgKCAQEAksIeSx7qKgmI7yFSglMBsty3ZoyC8qsCbLSWANwUPYikd5TPojB8
|
||||
43wJGJxOBOtDV8FL55q0zX3eQOE4BOVGcDMMUsZsAhy4ST46ne4e8CFVFHmM6TON
|
||||
tS5Kla0hLjETpUjYStR8En534uoLYvnNPAI1CvmvWiUo+QGd3yc2SmyE+XB/8bKk
|
||||
wiLjAauGyfb8m2BgCaoBIai+0IImInX2Xb85L0TAu0eYC6fX1T8BCupA4EVOpvLL
|
||||
cM5P8nye4mibgS46lzlve1soC73W1vGAHnMw4epzk89NHKIMYEmZPoCU6jKuDbR0
|
||||
K73QwU0QZt9MSJnTdnWt/PeUJ8PzkhV0RQIDAQABo2AwXjAPBgNVHRMECDAGAQH/
|
||||
AgEAMB8GA1UdIwQYMBaAFG1rabju/OE7B3cPuQFZhs77ku5qMB0GA1UdDgQWBBRt
|
||||
a2m47vzhOwd3D7kBWYbO+5LuajALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEFBQAD
|
||||
ggEBACzdFsulR2X6HPKX+D2VU7msJyXRVWrAi06SV/zds8lPYUwSTEksbpWejD5L
|
||||
ABftyv5DL7bU66vL80she2r5d+DbY+gB2hAgRHW+ymzfAqQJOcpciAXZHxc4orf+
|
||||
V4YtmLIRT0lg9rfU93D4S9fPe+HHMAmKFQXjnZNiv7DOar62MP0RrI74hWevaZao
|
||||
gK8cMspxUW7H9VFvJvgGZRTRXVFHIvaPOpvlsdCYfUDomH2sWVLIiaSQoAVXxoET
|
||||
c0HJB0er7Df2PSBSF/8bl9cVmp5HDB2YgtlfNKaFneGNN2WQtO3gl56heud8hGAe
|
||||
F4YZkE8ML2mh83QqVSY4AkfWo+0=
|
||||
-----END CERTIFICATE-----
|
||||
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCSwh5LHuoqCYjv
|
||||
IVKCUwGy3LdmjILyqwJstJYA3BQ9iKR3lM+iMHzjfAkYnE4E60NXwUvnmrTNfd5A
|
||||
4TgE5UZwMwxSxmwCHLhJPjqd7h7wIVUUeYzpM421LkqVrSEuMROlSNhK1HwSfnfi
|
||||
6gti+c08AjUK+a9aJSj5AZ3fJzZKbIT5cH/xsqTCIuMBq4bJ9vybYGAJqgEhqL7Q
|
||||
giYidfZdvzkvRMC7R5gLp9fVPwEK6kDgRU6m8stwzk/yfJ7iaJuBLjqXOW97WygL
|
||||
vdbW8YAeczDh6nOTz00cogxgSZk+gJTqMq4NtHQrvdDBTRBm30xImdN2da3895Qn
|
||||
w/OSFXRFAgMBAAECggEACN60qAOpUXscDJ/t9bSAoMfYSdlqPLJ7RgiwHEMw8fsl
|
||||
PZj/56SYl8MyZYtk58U0X8RuCwR9swHNggxar2kQFc3wC7y0YHhN5xdcwZjXw9mv
|
||||
47no+1tDUFUI6vz4yWrr7gx2DifDi/aa1lsg7w18CwlzHUO0BnXCgTJI0Wj0ThEj
|
||||
k3AxCv41a4dwQW2EejaikMdzkWv7p9cG1cjJocBvaURg8RZrw2v1lqXx9iZb5Ywv
|
||||
XkQP907AAnUn40bLgQ7hyUruxjKPzIM5ZjIER6PTtvGk1Uzt7Kj2YZZ4egYp0PXv
|
||||
5fEJIcppeIyGfatEZ4U/ZmfA0L7+xtSY8kICndPSTQKBgQDHy5n6N6JdYyyrVFH/
|
||||
x4xTHwyiReOzw5Pz2K9uSxZM6pmDWfZexAxkpMycQotZYOk6GYDqml5XAiXAYVKn
|
||||
i9FCEC6PnFRZ/v7TN3ag3k8eXwLrQu589+X0ppOizIp01IQ8AWAUr1tA/UcqLt8T
|
||||
5XSHnoEDo9SY9Aw1kskY5TWoowKBgQC8CwRxfFNWk3Na+U4HgvVv8CSrB7rbkLUI
|
||||
L11jNKFx4xms8uIjBrIencHsRAazoG73wMsY7MzbPtJKIFcXmSKjLFClJ6luN9np
|
||||
1tYkWXF/nyo6L2IhCG7N28sxYa56XTR0lDnfkW+LiI7iaC1Z+XUtxoY3ZIL+0Dbv
|
||||
wCfYS2I19wKBgQCtoRjtRJALzHYzZpHkUQx36BHYrBgYTy0yyuqaVRLKQU6rwfDD
|
||||
pmiGxlkyqvni8L9+yE8qkoDN6IXaTDnCdVWjreBo2ZjMpTfbYuXrI4dqg3NL9NzB
|
||||
KcZj+Kdw4YSpx04rv546G7KYJgREentPFSdR/MNt4GCPk/dQT4IH6pnZNQKBgQC2
|
||||
esKPFqURCPoSuIf+RhnDzPjoeBHe7KihDsXDddmN2WKbMQA+GUtU5qa/jqwqOHA3
|
||||
QQJWZ8XMpUQQ5x1dKyAv1NtVyg1jhhOUFwWsNJgtztl9qWnCwJo2byrZ+v8Eg9pZ
|
||||
n1YiHNJwR87Q62PHQotyJossyf9NI+WL958zCMR/tQKBgCTDIKnfjq4riVLEOLxl
|
||||
oGzGMowFTp9v8dyvrYj71C0ZDzLg/EH1tTQ4K46GIXJfyZvIATAIisC6R37KNmUA
|
||||
w8f6YAOSS+iZBSZo36DoGIqJTYGyYgQDDftMsj/gxthgwRO5Zhwbn63ayJkWYyPy
|
||||
C1RJ27LO8qX+3/s5pV7G9GlO
|
||||
-----END PRIVATE KEY-----
|
||||
@ -0,0 +1,25 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMTCCAxmgAwIBAgIGAXUrc4b4MA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT
|
||||
AkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK
|
||||
DA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW
|
||||
YWxpZGF0aW9uIENBMB4XDTIwMTAxNTA4NDk1MloXDTMwMTAxMzA4NDk1MlowZTEL
|
||||
MAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx
|
||||
FzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu
|
||||
Q09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwAXZw9lupWcFXouC
|
||||
Nhm0DQT47Zf4KOIRF8rqT8Ps3pYzT8odROJ8rq4P+lciGrg29czpqrRM22yQktFr
|
||||
itvcM7JlE6jFbGH3rycnvGvhRYU/j1N9k0ozm8oVwmKX357/OtGzNivBECGSnU9L
|
||||
Bkp4Nm9M1K4cOwEuZ0xsQEthZjQYF0mDpnlWmVJL5i1Lq834atN2qrb/mzMHBNtD
|
||||
JnqRV7rPL39lKpe7LJiitsC2JuW1UbWZZU1NNwA/rz2d83C+KD1DLJ0+sMYY2Q3T
|
||||
OQ4BPAowDEwOH7XAXrHM/0kRm+ZeIFlwevEGIQWmMt1Ogz+AW4Iq0slINc4wOINK
|
||||
vH9tHwIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo
|
||||
dJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE
|
||||
BwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh
|
||||
a2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFIya0Yc4OSBer55JLyA0AYe9
|
||||
m8mTMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA
|
||||
A4IBAQCBEwOlk3mXigNv94Drn3dcaY2ml/y+8yNpAIuUhuBE00WFoqEX5lOatFy5
|
||||
fzdXuC12lBVQ8SjSm3aH7k2X0eXqDzkOHiur2ZBRKmJ++J4TeenuSUOjSIbQK/DT
|
||||
vxaqFUjYwFSVCyizpy7wfU4wKt+jOuFb9LyULJ9lkM1dV9Kh7Lmd9+nlJYYuPEPU
|
||||
LJkkVZqSALSiiJudXnTwlISjZTXEAkJpdIlMw+hvPTAkoG95B95M+OV/uLbItGK+
|
||||
qT4+RHWo8EbBDPQYo6J4QYHOxRlfMoGBMyrz6XDt7ELLmT7ld4aE02w6KQPfK3gq
|
||||
kLDT+/STozvaNmXzBJh7J6KqxJBH
|
||||
-----END CERTIFICATE-----
|
||||
Loading…
Reference in New Issue
Block a user