拉卡拉支付,支付注释掉一些无用的接口。
This commit is contained in:
parent
69e97f1b28
commit
695e9d5739
@ -8,62 +8,60 @@
|
||||
|
||||
package com.suisung.mall.pay.controller.mobile;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.service.impl.BaseControllerImpl;
|
||||
import com.suisung.mall.pay.service.LakalaPayService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.util.Base64Utils;
|
||||
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.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.IOException;
|
||||
|
||||
@Api(tags = "拉卡拉相关接口 - 前端控制器")
|
||||
@RestController
|
||||
@RequestMapping("/mobile/pay/lakala")
|
||||
public class LakalaController extends BaseControllerImpl {
|
||||
|
||||
@Resource
|
||||
private LakalaPayService lakalaPayService;
|
||||
//
|
||||
// @Resource
|
||||
// private LakalaPayService lakalaPayService;
|
||||
|
||||
@ApiOperation(value = "本地文件转base64", notes = "本地文件转base64")
|
||||
@RequestMapping(value = "/file2base64", method = RequestMethod.POST)
|
||||
public String file2Base64(@RequestParam("file") MultipartFile file) throws IOException {
|
||||
String str=Base64Utils.encodeToString(file.getBytes());
|
||||
String str = Base64Utils.encodeToString(file.getBytes());
|
||||
return str;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "商户分账业务开通申请", notes = "商户分账业务开通申请")
|
||||
@RequestMapping(value = "/ledger/applyLedgerMer", method = RequestMethod.POST)
|
||||
public CommonResult ledgerApplyLedgerMer(@RequestBody JSONObject paramsJSON) {
|
||||
return lakalaPayService.applyLedgerMer(paramsJSON);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "商户分账业务开通申请异步回调回调", notes = "商户分账业务开通申请异步回调回调")
|
||||
@RequestMapping(value = "/ledger/applyLedgerMerNotify", method = RequestMethod.POST)
|
||||
public JSONObject ledgerApplyLedgerMerNotify(HttpServletRequest request) {
|
||||
return lakalaPayService.applyLedgerMerNotify(request);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "分账接收方创建申请", notes = "分账接收方创建申请")
|
||||
@RequestMapping(value = "/ledger/applyLedgerReceiver", method = RequestMethod.POST)
|
||||
public CommonResult applyLedgerReceiver(@RequestBody JSONObject paramsJSON) {
|
||||
return lakalaPayService.applyLedgerReceiver(paramsJSON);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "分账关系绑定申请", notes = "分账关系绑定申请")
|
||||
@RequestMapping(value = "/ledger/applyBind", method = RequestMethod.POST)
|
||||
public CommonResult applyBind(@RequestBody JSONObject paramsJSON) {
|
||||
return lakalaPayService.applyLedgerMerReceiverBind(paramsJSON);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "分账关系绑定申请异步回调通知", notes = "分账关系绑定申请异步回调通知")
|
||||
@RequestMapping(value = "/ledger/applyBindNotify", method = RequestMethod.POST)
|
||||
public JSONObject applyBindNotify(HttpServletRequest request) {
|
||||
return lakalaPayService.applyLedgerMerReceiverBindNotify(request);
|
||||
}
|
||||
// @ApiOperation(value = "商户分账业务开通申请", notes = "商户分账业务开通申请")
|
||||
// @RequestMapping(value = "/ledger/applyLedgerMer", method = RequestMethod.POST)
|
||||
// public CommonResult ledgerApplyLedgerMer(@RequestBody JSONObject paramsJSON) {
|
||||
// return lakalaPayService.applyLedgerMer(paramsJSON);
|
||||
// }
|
||||
//
|
||||
// @ApiOperation(value = "商户分账业务开通申请异步回调回调", notes = "商户分账业务开通申请异步回调回调")
|
||||
// @RequestMapping(value = "/ledger/applyLedgerMerNotify", method = RequestMethod.POST)
|
||||
// public JSONObject ledgerApplyLedgerMerNotify(HttpServletRequest request) {
|
||||
// return lakalaPayService.applyLedgerMerNotify(request);
|
||||
// }
|
||||
//
|
||||
// @ApiOperation(value = "分账接收方创建申请", notes = "分账接收方创建申请")
|
||||
// @RequestMapping(value = "/ledger/applyLedgerReceiver", method = RequestMethod.POST)
|
||||
// public CommonResult applyLedgerReceiver(@RequestBody JSONObject paramsJSON) {
|
||||
// return lakalaPayService.applyLedgerReceiver(paramsJSON);
|
||||
// }
|
||||
//
|
||||
// @ApiOperation(value = "分账关系绑定申请", notes = "分账关系绑定申请")
|
||||
// @RequestMapping(value = "/ledger/applyBind", method = RequestMethod.POST)
|
||||
// public CommonResult applyBind(@RequestBody JSONObject paramsJSON) {
|
||||
// return lakalaPayService.applyLedgerMerReceiverBind(paramsJSON);
|
||||
// }
|
||||
//
|
||||
// @ApiOperation(value = "分账关系绑定申请异步回调通知", notes = "分账关系绑定申请异步回调通知")
|
||||
// @RequestMapping(value = "/ledger/applyBindNotify", method = RequestMethod.POST)
|
||||
// public JSONObject applyBindNotify(HttpServletRequest request) {
|
||||
// return lakalaPayService.applyLedgerMerReceiverBindNotify(request);
|
||||
// }
|
||||
}
|
||||
|
||||
@ -9,11 +9,8 @@
|
||||
package com.suisung.mall.pay.service;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import org.springframework.data.util.Pair;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
public interface LakalaPayService {
|
||||
|
||||
Boolean initLKLSDK();
|
||||
@ -26,6 +23,7 @@ public interface LakalaPayService {
|
||||
* @param termNo 终端号
|
||||
* @param xcxAppId 小程序appid
|
||||
* @param openId openid
|
||||
* @param storeId 店铺Id
|
||||
* @param orderId 订单号
|
||||
* @param subject 订单标题
|
||||
* @param totalAmount 订单金额
|
||||
@ -36,6 +34,26 @@ public interface LakalaPayService {
|
||||
*/
|
||||
JSONObject lklTransPreOrder(String merchantNo, String termNo, String xcxAppId, String openId, String storeId, String orderId, String subject, String totalAmount, String notifyURL, String requestIP, String remark);
|
||||
|
||||
/**
|
||||
* 拉卡拉合单预下单
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=208
|
||||
*
|
||||
* @param merchantNo 商户号(商城商家)
|
||||
* @param termNo 终端号
|
||||
* @param agentMerchantNo 运费代理商商户号
|
||||
* @param xcxAppId 小程序appid
|
||||
* @param openId openid
|
||||
* @param storeId 店铺Id
|
||||
* @param orderId 订单号
|
||||
* @param subject 订单标题
|
||||
* @param totalAmount 订单总金额
|
||||
* @param agentAmount 代理商收取金额
|
||||
* @param notifyURL 回调地址
|
||||
* @param requestIP 请求ip
|
||||
**/
|
||||
JSONObject lklTransMergePreOrder(String merchantNo, String termNo, String agentMerchantNo, String xcxAppId, String openId, String storeId, String orderId, String subject, String totalAmount, String agentAmount, String notifyURL, String requestIP, String remark);
|
||||
|
||||
|
||||
/**
|
||||
* 执行内部拉卡拉交易退款
|
||||
* 参考地址:https://o.lakala.com/#/home/document/detail?id=113
|
||||
@ -62,52 +80,52 @@ public interface LakalaPayService {
|
||||
JSONObject uploadFile(String orderNo, String attType, String attExtName, String attContext);
|
||||
|
||||
|
||||
/**
|
||||
* 商户分账业务开通申请
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
*
|
||||
* @param paramsJSON
|
||||
* @return
|
||||
*/
|
||||
CommonResult applyLedgerMer(JSONObject paramsJSON);
|
||||
|
||||
/**
|
||||
* 商户分账业务开通申请回调
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
JSONObject applyLedgerMerNotify(HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 分账接收方创建申请
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=380
|
||||
*
|
||||
* @param paramsJSON
|
||||
* @return
|
||||
*/
|
||||
CommonResult applyLedgerReceiver(JSONObject paramsJSON);
|
||||
|
||||
|
||||
/**
|
||||
* 分账关系绑定申请
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=386
|
||||
*
|
||||
* @param paramsJSON
|
||||
* @return
|
||||
*/
|
||||
CommonResult applyLedgerMerReceiverBind(JSONObject paramsJSON);
|
||||
|
||||
|
||||
/**
|
||||
* 分账关系绑定申请回调
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
JSONObject applyLedgerMerReceiverBindNotify(HttpServletRequest request);
|
||||
// /**
|
||||
// * 商户分账业务开通申请
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
// *
|
||||
// * @param paramsJSON
|
||||
// * @return
|
||||
// */
|
||||
// CommonResult applyLedgerMer(JSONObject paramsJSON);
|
||||
//
|
||||
// /**
|
||||
// * 商户分账业务开通申请回调
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
// *
|
||||
// * @param request
|
||||
// * @return
|
||||
// */
|
||||
// JSONObject applyLedgerMerNotify(HttpServletRequest request);
|
||||
//
|
||||
// /**
|
||||
// * 分账接收方创建申请
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=380
|
||||
// *
|
||||
// * @param paramsJSON
|
||||
// * @return
|
||||
// */
|
||||
// CommonResult applyLedgerReceiver(JSONObject paramsJSON);
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 分账关系绑定申请
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=386
|
||||
// *
|
||||
// * @param paramsJSON
|
||||
// * @return
|
||||
// */
|
||||
// CommonResult applyLedgerMerReceiverBind(JSONObject paramsJSON);
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 分账关系绑定申请回调
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
// *
|
||||
// * @param request
|
||||
// * @return
|
||||
// */
|
||||
// JSONObject applyLedgerMerReceiverBindNotify(HttpServletRequest request);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -16,18 +16,15 @@ import cn.hutool.json.JSONUtil;
|
||||
import com.ijpay.core.kit.IpKit;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.exception.SDKException;
|
||||
import com.lkl.laop.sdk.request.*;
|
||||
import com.lkl.laop.sdk.request.V2MmsOpenApiUploadFileRequest;
|
||||
import com.lkl.laop.sdk.request.V3LabsRelationRefundRequest;
|
||||
import com.lkl.laop.sdk.request.V3LabsTransPreorderRequest;
|
||||
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.exception.ApiException;
|
||||
import com.suisung.mall.common.feignService.ShopService;
|
||||
import com.suisung.mall.common.modules.lakala.LklLedgerMember;
|
||||
import com.suisung.mall.common.modules.lakala.LklLedgerMerReceiverBind;
|
||||
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.pay.service.LakalaPayService;
|
||||
import com.suisung.mall.pay.service.LklLedgerMemberService;
|
||||
import com.suisung.mall.pay.service.LklLedgerMerReceiverBindService;
|
||||
@ -43,9 +40,6 @@ import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@ -187,6 +181,95 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 拉卡拉合单预下单(主要有运费的订单使用合单)
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=208
|
||||
*
|
||||
* @param merchantNo 商户号(商城商家)
|
||||
* @param termNo 终端号
|
||||
* @param agentMerchantNo 运费代理商商户号
|
||||
* @param xcxAppId 小程序appid
|
||||
* @param openId openid
|
||||
* @param storeId 店铺Id
|
||||
* @param orderId 订单号
|
||||
* @param subject 订单标题
|
||||
* @param totalAmount 订单总金额
|
||||
* @param agentAmount 代理商收取金额
|
||||
* @param notifyURL 回调地址
|
||||
* @param requestIP 请求ip
|
||||
* @param remark
|
||||
**/
|
||||
@Override
|
||||
public JSONObject lklTransMergePreOrder(String merchantNo, String termNo, String agentMerchantNo, String xcxAppId, String openId, String storeId, String orderId, String subject, String totalAmount, String agentAmount, String notifyURL, String requestIP, String remark) {
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
if (StrUtil.isBlank(merchantNo) || StrUtil.isBlank(termNo)) {
|
||||
throw new ApiException("缺少商户号或终端号!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(agentMerchantNo)) {
|
||||
throw new ApiException("缺少代理商商户号!");
|
||||
}
|
||||
|
||||
//2. 装配数据
|
||||
/*** 微信主扫场景示例 */
|
||||
|
||||
|
||||
V3LabsTransPreorderRequest v3LabsTransPreorderWechatReq = new V3LabsTransPreorderRequest();
|
||||
|
||||
v3LabsTransPreorderWechatReq.setMerchantNo(merchantNo);
|
||||
v3LabsTransPreorderWechatReq.setTermNo(termNo);
|
||||
v3LabsTransPreorderWechatReq.setOutTradeNo(orderId);
|
||||
v3LabsTransPreorderWechatReq.setSubject(subject);
|
||||
//微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 翼支付: BESTPAY 苏宁易付宝: SUNING 拉卡拉支付账户:LKLACC 网联小钱包:NUCSPAY 京东钱包:JD
|
||||
v3LabsTransPreorderWechatReq.setAccountType("WECHAT");
|
||||
// 41:NATIVE((ALIPAY,云闪付支持,京东白条分期)51:JSAPI(微信公众号支付,支付宝服务窗支付,银联JS支付,翼支付JS支付、拉卡拉钱包支付)71:微信小程序支付 61:APP支付(微信APP支付)
|
||||
v3LabsTransPreorderWechatReq.setTransType("51");
|
||||
v3LabsTransPreorderWechatReq.setTotalAmount(totalAmount); // 应支付金额,单位:分
|
||||
v3LabsTransPreorderWechatReq.setSettleType("1"); //“0”或者空,常规结算方式,如需接拉卡拉分账通需传“1”,商户未开通分账之前切记不用上送此参数。;
|
||||
v3LabsTransPreorderWechatReq.setNotifyUrl(notifyURL);
|
||||
v3LabsTransPreorderWechatReq.setRemark(remark);
|
||||
|
||||
//地址位置信息
|
||||
V3LabsTradeLocationInfo v3LabsTradePreorderLocationInfo = new V3LabsTradeLocationInfo(requestIP);
|
||||
v3LabsTransPreorderWechatReq.setLocationInfo(v3LabsTradePreorderLocationInfo);
|
||||
|
||||
//微信主扫场景下 acc_busi_fields 域内容
|
||||
V3LabsTradePreorderWechatBus wechatBus = new V3LabsTradePreorderWechatBus();
|
||||
wechatBus.setSubAppid(xcxAppId); // 小程序appId
|
||||
wechatBus.setUserId(openId); // 微信 openId
|
||||
wechatBus.setDeviceInfo("WEB"); // 终端设备号(门店号或收银设备ID),注意:PC网页或JSAPI支付请传”WEB”
|
||||
// wechatBus.setAttach(storeId); // 附加数据,商户自定义数据,在查询交易结果时原样返回。
|
||||
v3LabsTransPreorderWechatReq.setAccBusiFields(wechatBus);
|
||||
|
||||
try {
|
||||
log.info("拉卡拉预下单请求参数:{}", JSONUtil.toJsonStr(v3LabsTransPreorderWechatReq));
|
||||
|
||||
//3. 发送请求
|
||||
String responseStr = LKLSDK.httpPost(v3LabsTransPreorderWechatReq);
|
||||
log.info("拉卡拉预下单响应数据:{}", responseStr);
|
||||
if (StrUtil.isBlank(responseStr)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
|
||||
if (lakalaRespJSON != null && lakalaRespJSON.getStr("code").equals("BBS00000")) {
|
||||
// 新增一个拉卡拉订单记录 shop_order_lkl 表
|
||||
JSONObject lklPayReqAndRespJson = new JSONObject();
|
||||
lklPayReqAndRespJson.put("req", JSONUtil.parseObj(v3LabsTransPreorderWechatReq));
|
||||
lklPayReqAndRespJson.put("resp", lakalaRespJSON);
|
||||
shopService.lklPayAddShopOrderLkl(lklPayReqAndRespJson);
|
||||
}
|
||||
//4. 响应
|
||||
return lakalaRespJSON;
|
||||
} catch (SDKException e) {
|
||||
log.error("拉卡拉支付出错:", e);
|
||||
throw new ApiException(I18nUtil._("支付失败!"), e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 执行内部拉卡拉交易退款
|
||||
@ -319,330 +402,330 @@ public class LakalaPayServiceImpl implements LakalaPayService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult applyLedgerMer(JSONObject paramsJSON) {
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
//2. 装配数据
|
||||
V2MmsOpenApiLedgerApplyLedgerMerRequest req = new V2MmsOpenApiLedgerApplyLedgerMerRequest();
|
||||
req.setVersion("2.0");
|
||||
String orderNo = StringUtils.genLklOrderNo(8); // 8位随机数
|
||||
req.setOrderNo(orderNo);
|
||||
req.setOrgCode(orgCode);
|
||||
req.setMerInnerNo(paramsJSON.getStr("merInnerNo"));
|
||||
req.setMerCupNo(paramsJSON.getStr("merCupNo"));
|
||||
req.setContactMobile(paramsJSON.getStr("contactMobile"));
|
||||
req.setSplitLowestRatio(new BigDecimal(paramsJSON.getStr("splitLowestRatio")));
|
||||
String fileName = paramsJSON.getStr("splitEntrustFileName");
|
||||
req.setSplitEntrustFileName(fileName);
|
||||
|
||||
// 分账结算委托书文件上传到拉卡拉服务器
|
||||
JSONObject fileUploadResp = uploadFile(orderNo, "SPLIT_ENTRUST_FILE", StringUtils.getFileExt(fileName), 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;
|
||||
|
||||
if (isProdProject()) {
|
||||
projectDomain = projectDomain + "/api";
|
||||
}
|
||||
// 给拉卡拉通知的回调地址
|
||||
String retUrl = projectDomain + "/mobile/pay/lakala/ledger/applyLedgerMerNotify";
|
||||
req.setRetUrl(retUrl);
|
||||
|
||||
paramsJSON.set("orderNo", orderNo);
|
||||
paramsJSON.set("version", "2.0");
|
||||
paramsJSON.set("ret_url", retUrl);
|
||||
paramsJSON.set("org_code", orgCode);
|
||||
paramsJSON.set("split_entrust_file_path", splitEntrustFilePath);
|
||||
|
||||
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 (lakalaRespJSON == null || !lakalaRespJSON.getStr("retCode").equals("000000")) {
|
||||
throw new ApiException(I18nUtil._(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"));
|
||||
|
||||
// 新增数据
|
||||
// 将 JSON 对象的键名转换为下划线命名
|
||||
LklLedgerMember lklLedgerMember = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerMember.class);
|
||||
lklLedgerMemberService.saveOrUpdateByMerCupNo(lklLedgerMember);
|
||||
|
||||
return CommonResult.success(null, "提交成功,待审核中!");
|
||||
} catch (SDKException e) {
|
||||
log.error("分账申请失败:", e);
|
||||
throw new ApiException(I18nUtil._("分账申请失败!"), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 商户分账业务开通申请回调
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public JSONObject applyLedgerMerNotify(HttpServletRequest request) {
|
||||
// 验签
|
||||
String authorization = request.getHeader("Authorization");
|
||||
String requestBody = LakalaUtil.getBody(request);
|
||||
|
||||
boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath);
|
||||
if (!checkSuccess) {
|
||||
return JSONUtil.createObj().set("retCode", "OP90002").set("retMsg", "验签失败!");
|
||||
}
|
||||
|
||||
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 = 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"));
|
||||
|
||||
if (success) {
|
||||
respData.put("retCode", "000000");
|
||||
respData.put("retMsg", "操作成功!");
|
||||
}
|
||||
}
|
||||
|
||||
return respData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分账接收方创建申请
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=380
|
||||
*
|
||||
* @param paramsJSON
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public CommonResult applyLedgerReceiver(JSONObject paramsJSON) {
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
//2. 装配数据
|
||||
V2MmsOpenApiLedgerApplyLedgerReceiverRequest req = new V2MmsOpenApiLedgerApplyLedgerReceiverRequest();
|
||||
|
||||
String orderNo = StringUtils.genLklOrderNo(8); // 8位随机数
|
||||
req.setOrderNo(orderNo);
|
||||
req.setOrgCode(orgCode);
|
||||
req.setVersion("2.0");
|
||||
|
||||
req.setReceiverName(paramsJSON.getStr("receiverName"));
|
||||
req.setContactMobile(paramsJSON.getStr("contactMobile"));
|
||||
|
||||
req.setLicenseNo(paramsJSON.getStr("licenseNo"));
|
||||
req.setLicenseName(paramsJSON.getStr("licenseName"));
|
||||
req.setLegalPersonName(paramsJSON.getStr("legalPersonName"));
|
||||
req.setLegalPersonCertificateType(paramsJSON.getStr("legalPersonCertificateType"));
|
||||
req.setLegalPersonCertificateNo(paramsJSON.getStr("legalPersonCertificateNo"));
|
||||
|
||||
req.setAcctNo(paramsJSON.getStr("acctNo"));
|
||||
req.setAcctName(paramsJSON.getStr("acctName"));
|
||||
req.setAcctTypeCode(paramsJSON.getStr("acctTypeCode"));
|
||||
req.setAcctCertificateType(paramsJSON.getStr("acctCertificateType"));
|
||||
|
||||
req.setAcctCertificateNo(paramsJSON.getStr("acctCertificateNo"));
|
||||
req.setAcctOpenBankCode(paramsJSON.getStr("acctOpenBankCode"));
|
||||
req.setAcctOpenBankName(paramsJSON.getStr("acctOpenBankName"));
|
||||
req.setAcctClearBankCode(paramsJSON.getStr("acctClearBankCode"));
|
||||
|
||||
if (paramsJSON.getJSONArray("attachList") != null && paramsJSON.getJSONArray("attachList").size() > 0) {
|
||||
List<V2MmsOpenApiLedgerApplyLedgerReceiverRequest.AttachInfo> attachList = new ArrayList<>();
|
||||
V2MmsOpenApiLedgerApplyLedgerReceiverRequest.AttachInfo attachInfo = new V2MmsOpenApiLedgerApplyLedgerReceiverRequest.AttachInfo();
|
||||
for (JSONObject attachJSON : paramsJSON.getJSONArray("attachList").jsonIter()) {
|
||||
String fileName = attachJSON.getStr("attachName");
|
||||
String attachType = attachJSON.getStr("attachType");
|
||||
String fileBase64 = attachJSON.getStr("attachStoreFile");
|
||||
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._("附件上传失败!"));
|
||||
}
|
||||
|
||||
attachInfo.setAttachStorePath(fileUploadResp.getStr("attFileId"));
|
||||
attachList.add(attachInfo);
|
||||
}
|
||||
|
||||
req.setAttachList(attachList);
|
||||
paramsJSON.set("attach_list", JSONUtil.toJsonStr(attachList));
|
||||
}
|
||||
|
||||
paramsJSON.set("orderNo", orderNo);
|
||||
paramsJSON.set("version", "2.0");
|
||||
paramsJSON.set("org_code", orgCode);
|
||||
|
||||
try {
|
||||
//3. 发送请求,申请创建分账接收方
|
||||
String responseStr = LKLSDK.httpPost(req);
|
||||
|
||||
JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
if (lakalaRespJSON == null || !lakalaRespJSON.getStr("retCode").equals("000000")) {
|
||||
throw new ApiException(I18nUtil._(lakalaRespJSON.getStr("retMsg")));
|
||||
}
|
||||
|
||||
paramsJSON.set("receiver_no", lakalaRespJSON.getByPath("respData.receiverNo"));
|
||||
paramsJSON.set("org_id", lakalaRespJSON.getByPath("respData.orgId"));
|
||||
paramsJSON.set("org_name", lakalaRespJSON.getByPath("respData.orgName"));
|
||||
|
||||
// 新增数据
|
||||
// 将 JSON 对象的键名转换为下划线命名
|
||||
LklLedgerReceiver lklLedgerReceiver = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerReceiver.class);
|
||||
|
||||
// 新增或修改本地数据
|
||||
lklLedgerReceiverService.saveOrUpdateByReceiverNo(lklLedgerReceiver);
|
||||
|
||||
return CommonResult.success(null, "接收方创建成功!");
|
||||
} catch (SDKException e) {
|
||||
log.error("接收方创建失败:", e);
|
||||
throw new ApiException(I18nUtil._("接收方创建失败!"), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分账关系绑定申请
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=386
|
||||
*
|
||||
* @param paramsJSON
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public CommonResult applyLedgerMerReceiverBind(JSONObject paramsJSON) {
|
||||
// 1. 配置初始化
|
||||
initLKLSDK();
|
||||
|
||||
//2. 装配数据
|
||||
V2MmsOpenApiLedgerApplyBindRequest req = new V2MmsOpenApiLedgerApplyBindRequest();
|
||||
|
||||
String orderNo = StringUtils.genLklOrderNo(8); // 8位随机数
|
||||
req.setOrderNo(orderNo);
|
||||
req.setOrgCode(orgCode);
|
||||
req.setVersion("2.0");
|
||||
|
||||
req.setMerInnerNo(paramsJSON.getStr("merInnerNo"));
|
||||
req.setMerCupNo(paramsJSON.getStr("merCupNo"));
|
||||
req.setReceiverNo(paramsJSON.getStr("receiverNo"));
|
||||
|
||||
String fileName = paramsJSON.getStr("entrustFileName");
|
||||
String splitEntrustFileBase64 = paramsJSON.getStr("entrustFile");
|
||||
req.setEntrustFileName(fileName);
|
||||
|
||||
String retUrl = projectDomain + "/mobile/pay/lakala/ledger/applyLedgerMerReceiverBindNotify";
|
||||
req.setRetUrl(retUrl);
|
||||
|
||||
// 文件上传到拉卡拉服务器
|
||||
JSONObject fileUploadResp = uploadFile(orderNo,
|
||||
"SPLIT_COOPERATION_FILE",
|
||||
StringUtils.getFileExt(fileName),
|
||||
splitEntrustFileBase64);
|
||||
if (fileUploadResp == null || StrUtil.isBlank(fileUploadResp.getStr("attFileId"))) {
|
||||
throw new ApiException(I18nUtil._("合作协议上传失败!"));
|
||||
}
|
||||
|
||||
String entrustFilePath = fileUploadResp.getStr("attFileId");
|
||||
req.setEntrustFilePath(entrustFilePath);
|
||||
|
||||
paramsJSON.set("orderNo", orderNo);
|
||||
paramsJSON.set("version", "2.0");
|
||||
paramsJSON.set("ret_url", retUrl);
|
||||
paramsJSON.set("org_code", orgCode);
|
||||
paramsJSON.set("entrust_file_name", fileName);
|
||||
paramsJSON.set("entrust_file_path", entrustFilePath);
|
||||
|
||||
try {
|
||||
//3. 发送请求
|
||||
String responseStr = LKLSDK.httpPost(req);
|
||||
|
||||
JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
if (lakalaRespJSON == null || !lakalaRespJSON.getStr("retCode").equals("000000")) {
|
||||
throw new ApiException(I18nUtil._(lakalaRespJSON.getStr("retMsg")));
|
||||
}
|
||||
|
||||
paramsJSON.set("apply_id", lakalaRespJSON.getByPath("respData.applyId"));
|
||||
paramsJSON.set("remark", lakalaRespJSON.getStr("retMsg"));
|
||||
|
||||
// 新增数据
|
||||
// 将 JSON 对象的键名转换为下划线命名
|
||||
LklLedgerMerReceiverBind lklLedgerMerReceiverBind = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerMerReceiverBind.class);
|
||||
lklLedgerMerReceiverBindService.saveOrUpdateByMerCupNoReceiverNo(lklLedgerMerReceiverBind);
|
||||
|
||||
return CommonResult.success(null, "提交成功,待审核中!");
|
||||
} catch (SDKException e) {
|
||||
log.error("分账绑定关系申请失败:", e);
|
||||
throw new ApiException(I18nUtil._("分账绑定关系申请失败!"), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分账关系绑定申请回调
|
||||
* 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public JSONObject applyLedgerMerReceiverBindNotify(HttpServletRequest request) {
|
||||
// 验签
|
||||
String authorization = request.getHeader("Authorization");
|
||||
String requestBody = LakalaUtil.getBody(request);
|
||||
|
||||
boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath);
|
||||
if (!checkSuccess) {
|
||||
return JSONUtil.createObj().set("retCode", "OP90002").set("retMsg", "验签失败!");
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public CommonResult applyLedgerMer(JSONObject paramsJSON) {
|
||||
// // 1. 配置初始化
|
||||
// initLKLSDK();
|
||||
//
|
||||
// //2. 装配数据
|
||||
// V2MmsOpenApiLedgerApplyLedgerMerRequest req = new V2MmsOpenApiLedgerApplyLedgerMerRequest();
|
||||
// req.setVersion("2.0");
|
||||
// String orderNo = StringUtils.genLklOrderNo(8); // 8位随机数
|
||||
// req.setOrderNo(orderNo);
|
||||
// req.setOrgCode(orgCode);
|
||||
// req.setMerInnerNo(paramsJSON.getStr("merInnerNo"));
|
||||
// req.setMerCupNo(paramsJSON.getStr("merCupNo"));
|
||||
// req.setContactMobile(paramsJSON.getStr("contactMobile"));
|
||||
// req.setSplitLowestRatio(new BigDecimal(paramsJSON.getStr("splitLowestRatio")));
|
||||
// String fileName = paramsJSON.getStr("splitEntrustFileName");
|
||||
// req.setSplitEntrustFileName(fileName);
|
||||
//
|
||||
// // 分账结算委托书文件上传到拉卡拉服务器
|
||||
// JSONObject fileUploadResp = uploadFile(orderNo, "SPLIT_ENTRUST_FILE", StringUtils.getFileExt(fileName), 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;
|
||||
//
|
||||
// if (isProdProject()) {
|
||||
// projectDomain = projectDomain + "/api";
|
||||
// }
|
||||
// // 给拉卡拉通知的回调地址
|
||||
// String retUrl = projectDomain + "/mobile/pay/lakala/ledger/applyLedgerMerNotify";
|
||||
// req.setRetUrl(retUrl);
|
||||
//
|
||||
// paramsJSON.set("orderNo", orderNo);
|
||||
// paramsJSON.set("version", "2.0");
|
||||
// paramsJSON.set("ret_url", retUrl);
|
||||
// paramsJSON.set("org_code", orgCode);
|
||||
// paramsJSON.set("split_entrust_file_path", splitEntrustFilePath);
|
||||
//
|
||||
// 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 (lakalaRespJSON == null || !lakalaRespJSON.getStr("retCode").equals("000000")) {
|
||||
// throw new ApiException(I18nUtil._(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"));
|
||||
//
|
||||
// // 新增数据
|
||||
// // 将 JSON 对象的键名转换为下划线命名
|
||||
// LklLedgerMember lklLedgerMember = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerMember.class);
|
||||
// lklLedgerMemberService.saveOrUpdateByMerCupNo(lklLedgerMember);
|
||||
//
|
||||
// return CommonResult.success(null, "提交成功,待审核中!");
|
||||
// } catch (SDKException e) {
|
||||
// log.error("分账申请失败:", e);
|
||||
// throw new ApiException(I18nUtil._("分账申请失败!"), e);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 商户分账业务开通申请回调
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
// *
|
||||
// * @param request
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// public JSONObject applyLedgerMerNotify(HttpServletRequest request) {
|
||||
// // 验签
|
||||
// String authorization = request.getHeader("Authorization");
|
||||
// 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 (success) {
|
||||
respData.put("retCode", "000000");
|
||||
respData.put("retMsg", "操作成功!");
|
||||
}
|
||||
}
|
||||
|
||||
return respData;
|
||||
}
|
||||
//
|
||||
// boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath);
|
||||
// if (!checkSuccess) {
|
||||
// return JSONUtil.createObj().set("retCode", "OP90002").set("retMsg", "验签失败!");
|
||||
// }
|
||||
//
|
||||
// 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 = 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"));
|
||||
//
|
||||
// if (success) {
|
||||
// respData.put("retCode", "000000");
|
||||
// respData.put("retMsg", "操作成功!");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return respData;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 分账接收方创建申请
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=380
|
||||
// *
|
||||
// * @param paramsJSON
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// public CommonResult applyLedgerReceiver(JSONObject paramsJSON) {
|
||||
// // 1. 配置初始化
|
||||
// initLKLSDK();
|
||||
//
|
||||
// //2. 装配数据
|
||||
// V2MmsOpenApiLedgerApplyLedgerReceiverRequest req = new V2MmsOpenApiLedgerApplyLedgerReceiverRequest();
|
||||
//
|
||||
// String orderNo = StringUtils.genLklOrderNo(8); // 8位随机数
|
||||
// req.setOrderNo(orderNo);
|
||||
// req.setOrgCode(orgCode);
|
||||
// req.setVersion("2.0");
|
||||
//
|
||||
// req.setReceiverName(paramsJSON.getStr("receiverName"));
|
||||
// req.setContactMobile(paramsJSON.getStr("contactMobile"));
|
||||
//
|
||||
// req.setLicenseNo(paramsJSON.getStr("licenseNo"));
|
||||
// req.setLicenseName(paramsJSON.getStr("licenseName"));
|
||||
// req.setLegalPersonName(paramsJSON.getStr("legalPersonName"));
|
||||
// req.setLegalPersonCertificateType(paramsJSON.getStr("legalPersonCertificateType"));
|
||||
// req.setLegalPersonCertificateNo(paramsJSON.getStr("legalPersonCertificateNo"));
|
||||
//
|
||||
// req.setAcctNo(paramsJSON.getStr("acctNo"));
|
||||
// req.setAcctName(paramsJSON.getStr("acctName"));
|
||||
// req.setAcctTypeCode(paramsJSON.getStr("acctTypeCode"));
|
||||
// req.setAcctCertificateType(paramsJSON.getStr("acctCertificateType"));
|
||||
//
|
||||
// req.setAcctCertificateNo(paramsJSON.getStr("acctCertificateNo"));
|
||||
// req.setAcctOpenBankCode(paramsJSON.getStr("acctOpenBankCode"));
|
||||
// req.setAcctOpenBankName(paramsJSON.getStr("acctOpenBankName"));
|
||||
// req.setAcctClearBankCode(paramsJSON.getStr("acctClearBankCode"));
|
||||
//
|
||||
// if (paramsJSON.getJSONArray("attachList") != null && paramsJSON.getJSONArray("attachList").size() > 0) {
|
||||
// List<V2MmsOpenApiLedgerApplyLedgerReceiverRequest.AttachInfo> attachList = new ArrayList<>();
|
||||
// V2MmsOpenApiLedgerApplyLedgerReceiverRequest.AttachInfo attachInfo = new V2MmsOpenApiLedgerApplyLedgerReceiverRequest.AttachInfo();
|
||||
// for (JSONObject attachJSON : paramsJSON.getJSONArray("attachList").jsonIter()) {
|
||||
// String fileName = attachJSON.getStr("attachName");
|
||||
// String attachType = attachJSON.getStr("attachType");
|
||||
// String fileBase64 = attachJSON.getStr("attachStoreFile");
|
||||
// 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._("附件上传失败!"));
|
||||
// }
|
||||
//
|
||||
// attachInfo.setAttachStorePath(fileUploadResp.getStr("attFileId"));
|
||||
// attachList.add(attachInfo);
|
||||
// }
|
||||
//
|
||||
// req.setAttachList(attachList);
|
||||
// paramsJSON.set("attach_list", JSONUtil.toJsonStr(attachList));
|
||||
// }
|
||||
//
|
||||
// paramsJSON.set("orderNo", orderNo);
|
||||
// paramsJSON.set("version", "2.0");
|
||||
// paramsJSON.set("org_code", orgCode);
|
||||
//
|
||||
// try {
|
||||
// //3. 发送请求,申请创建分账接收方
|
||||
// String responseStr = LKLSDK.httpPost(req);
|
||||
//
|
||||
// JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
// if (lakalaRespJSON == null || !lakalaRespJSON.getStr("retCode").equals("000000")) {
|
||||
// throw new ApiException(I18nUtil._(lakalaRespJSON.getStr("retMsg")));
|
||||
// }
|
||||
//
|
||||
// paramsJSON.set("receiver_no", lakalaRespJSON.getByPath("respData.receiverNo"));
|
||||
// paramsJSON.set("org_id", lakalaRespJSON.getByPath("respData.orgId"));
|
||||
// paramsJSON.set("org_name", lakalaRespJSON.getByPath("respData.orgName"));
|
||||
//
|
||||
// // 新增数据
|
||||
// // 将 JSON 对象的键名转换为下划线命名
|
||||
// LklLedgerReceiver lklLedgerReceiver = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerReceiver.class);
|
||||
//
|
||||
// // 新增或修改本地数据
|
||||
// lklLedgerReceiverService.saveOrUpdateByReceiverNo(lklLedgerReceiver);
|
||||
//
|
||||
// return CommonResult.success(null, "接收方创建成功!");
|
||||
// } catch (SDKException e) {
|
||||
// log.error("接收方创建失败:", e);
|
||||
// throw new ApiException(I18nUtil._("接收方创建失败!"), e);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 分账关系绑定申请
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=386
|
||||
// *
|
||||
// * @param paramsJSON
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// public CommonResult applyLedgerMerReceiverBind(JSONObject paramsJSON) {
|
||||
// // 1. 配置初始化
|
||||
// initLKLSDK();
|
||||
//
|
||||
// //2. 装配数据
|
||||
// V2MmsOpenApiLedgerApplyBindRequest req = new V2MmsOpenApiLedgerApplyBindRequest();
|
||||
//
|
||||
// String orderNo = StringUtils.genLklOrderNo(8); // 8位随机数
|
||||
// req.setOrderNo(orderNo);
|
||||
// req.setOrgCode(orgCode);
|
||||
// req.setVersion("2.0");
|
||||
//
|
||||
// req.setMerInnerNo(paramsJSON.getStr("merInnerNo"));
|
||||
// req.setMerCupNo(paramsJSON.getStr("merCupNo"));
|
||||
// req.setReceiverNo(paramsJSON.getStr("receiverNo"));
|
||||
//
|
||||
// String fileName = paramsJSON.getStr("entrustFileName");
|
||||
// String splitEntrustFileBase64 = paramsJSON.getStr("entrustFile");
|
||||
// req.setEntrustFileName(fileName);
|
||||
//
|
||||
// String retUrl = projectDomain + "/mobile/pay/lakala/ledger/applyLedgerMerReceiverBindNotify";
|
||||
// req.setRetUrl(retUrl);
|
||||
//
|
||||
// // 文件上传到拉卡拉服务器
|
||||
// JSONObject fileUploadResp = uploadFile(orderNo,
|
||||
// "SPLIT_COOPERATION_FILE",
|
||||
// StringUtils.getFileExt(fileName),
|
||||
// splitEntrustFileBase64);
|
||||
// if (fileUploadResp == null || StrUtil.isBlank(fileUploadResp.getStr("attFileId"))) {
|
||||
// throw new ApiException(I18nUtil._("合作协议上传失败!"));
|
||||
// }
|
||||
//
|
||||
// String entrustFilePath = fileUploadResp.getStr("attFileId");
|
||||
// req.setEntrustFilePath(entrustFilePath);
|
||||
//
|
||||
// paramsJSON.set("orderNo", orderNo);
|
||||
// paramsJSON.set("version", "2.0");
|
||||
// paramsJSON.set("ret_url", retUrl);
|
||||
// paramsJSON.set("org_code", orgCode);
|
||||
// paramsJSON.set("entrust_file_name", fileName);
|
||||
// paramsJSON.set("entrust_file_path", entrustFilePath);
|
||||
//
|
||||
// try {
|
||||
// //3. 发送请求
|
||||
// String responseStr = LKLSDK.httpPost(req);
|
||||
//
|
||||
// JSONObject lakalaRespJSON = JSONUtil.parseObj(responseStr);
|
||||
// if (lakalaRespJSON == null || !lakalaRespJSON.getStr("retCode").equals("000000")) {
|
||||
// throw new ApiException(I18nUtil._(lakalaRespJSON.getStr("retMsg")));
|
||||
// }
|
||||
//
|
||||
// paramsJSON.set("apply_id", lakalaRespJSON.getByPath("respData.applyId"));
|
||||
// paramsJSON.set("remark", lakalaRespJSON.getStr("retMsg"));
|
||||
//
|
||||
// // 新增数据
|
||||
// // 将 JSON 对象的键名转换为下划线命名
|
||||
// LklLedgerMerReceiverBind lklLedgerMerReceiverBind = JSONUtil.toBean(StringUtils.convertCamelToSnake(paramsJSON.toString()), LklLedgerMerReceiverBind.class);
|
||||
// lklLedgerMerReceiverBindService.saveOrUpdateByMerCupNoReceiverNo(lklLedgerMerReceiverBind);
|
||||
//
|
||||
// return CommonResult.success(null, "提交成功,待审核中!");
|
||||
// } catch (SDKException e) {
|
||||
// log.error("分账绑定关系申请失败:", e);
|
||||
// throw new ApiException(I18nUtil._("分账绑定关系申请失败!"), e);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 分账关系绑定申请回调
|
||||
// * 参考:https://o.lakala.com/#/home/document/detail?id=379
|
||||
// *
|
||||
// * @param request
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// public JSONObject applyLedgerMerReceiverBindNotify(HttpServletRequest request) {
|
||||
// // 验签
|
||||
// String authorization = request.getHeader("Authorization");
|
||||
// String requestBody = LakalaUtil.getBody(request);
|
||||
//
|
||||
// boolean checkSuccess = LakalaUtil.verify(authorization, requestBody, lklNotifyCerPath);
|
||||
// if (!checkSuccess) {
|
||||
// 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 (success) {
|
||||
// respData.put("retCode", "000000");
|
||||
// respData.put("retMsg", "操作成功!");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return respData;
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -693,6 +693,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
|
||||
Map result = new HashMap();
|
||||
result.put("data", params);
|
||||
result.put("statusCode", 200);
|
||||
|
||||
data.put("status", 200);
|
||||
data.put("data", result);
|
||||
data.put("message", "OK");
|
||||
|
||||
@ -399,10 +399,6 @@ public class LklTkServiceImpl {
|
||||
reqJsonBody.put("accountName", shopMchEntry.getAccount_holder_name()); //结算人账户名称
|
||||
reqJsonBody.put("accountIdCard", larIdCard);//结算⼈(法人或小微个人)证件号码(身份证)
|
||||
|
||||
// Integer SettlementMethod = shopMchEntry.getSettlement_method();
|
||||
// if (SettlementMethod == null || SettlementMethod < 0 || SettlementMethod > 1) {
|
||||
// SettlementMethod = 1; // 结算类型:0-秒到(不分账);1-次日结算(需要分账)
|
||||
// }
|
||||
String settleType = String.format("D%d", 1);
|
||||
reqJsonBody.put("settleType", settleType); //结算类型:0-秒到(不分账);1-次日结算(需要分账)
|
||||
// formData.put("settlementType", "AUTOMATIC"); // 结算方式:MANUAL:手动结算(结算至拉卡拉APP钱包),AUTOMATIC:自动结算到银行卡,REGULAR:定时结算(仅企业商户支持)
|
||||
@ -521,7 +517,6 @@ public class LklTkServiceImpl {
|
||||
JSONObject response = RestTemplateHttpUtil.sendLklPost(buildLklTkUrl(urlPath), header, reqJsonBody, JSONObject.class);
|
||||
logger.debug("拉卡拉进件响应参数:{}", response);
|
||||
|
||||
|
||||
if (ObjectUtil.isEmpty(response)
|
||||
|| response.get("retCode") == null
|
||||
|| !"000000".equals(response.getStr("retCode"))) {
|
||||
|
||||
@ -70,8 +70,9 @@ public class LakalaUtil {
|
||||
/**
|
||||
* 获取配置文件内容
|
||||
*
|
||||
* @param fileName recource 文件夹下的路径,如:palyKey/wx/lakala_public_key.cer
|
||||
* @param keepLineBreaks 保留换行符
|
||||
* @param fileName recource 文件夹下的路径,如:palyKey/wx/lakala_public_key.cer
|
||||
* @param keepLineBreaks 保留换行符
|
||||
* @param stripPemHeaders 是否去除PEM格式的密钥头和尾 BEGGIN和END标签
|
||||
* @return
|
||||
*/
|
||||
public static String getResourceFile(String fileName, boolean keepLineBreaks, boolean stripPemHeaders) {
|
||||
@ -148,6 +149,12 @@ public class LakalaUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 去除PEM格式的密钥头和尾 BEGGIN和END标签
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public static String stripPemHeaders(String key) {
|
||||
if (key == null || key.isEmpty()) {
|
||||
return key;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user