feat(mall): 新增商品标签筛选功能并优化支付相关代码- 在商品搜索接口中添加标签筛选参数

- 更新数据库查询以支持标签筛选
- 移除冗余的支付相关代码
- 更新拉卡拉SDK的调用方式
This commit is contained in:
清晨
2025-05-19 14:38:07 +08:00
parent 3f7707f1db
commit 1635812bb5
23 changed files with 539 additions and 68 deletions

View File

@@ -35,7 +35,7 @@
<module>ruoyi-common-websocket</module>
<module>ruoyi-common-sse</module>
<module>ruoyi-common-pay</module>
<module>ruoyi-common-pay-new</module>
<!-- <module>ruoyi-common-pay-new</module>-->
</modules>
<artifactId>ruoyi-common</artifactId>

View File

@@ -99,20 +99,7 @@
<artifactId>transmittable-thread-local</artifactId>
</dependency>
<!-- 腾讯云COS-STS -->
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos-sts_api</artifactId>
<version>${com.qcloud.version}</version>
<scope>compile</scope>
</dependency>
<!-- 腾讯云内容安全 -->
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>${tencentcloudapi.version}</version>
</dependency>
</dependencies>

View File

@@ -16,24 +16,24 @@ public class BaseCommonDemo {
// 你的证书序列号
private static final String serialNo = "0195119ac8ac";
/*//商户私钥信息地址
//商户私钥信息地址
private static final String priKeyPath = "D:\\manage\\jcs\\OP10000499商户私钥.txt";
//拉卡拉支付平台证书地址
private static final String lklCerPath = "D:\\manage\\jcs\\平台公钥生产.cer";
//拉卡拉支付平台证书地址2(用于拉卡拉通知验签)+
private static final String lklNotifyCerPath = "D:\\manage\\jcs\\平台公钥生产.cer";*/
private static final String lklNotifyCerPath = "D:\\manage\\jcs\\平台公钥生产.cer";
//商户私钥信息地址
/*//商户私钥信息地址
private static final String priKeyPath = "/home/manage/jcs/OP10000499商户私钥.txt";
//拉卡拉支付平台证书地址
private static final String lklCerPath = "/home/manage/jcs/平台公钥生产.cer";
//拉卡拉支付平台证书地址2(用于拉卡拉通知验签)
private static final String lklNotifyCerPath = "/home/manage/jcs/平台公钥生产.cer";
private static final String lklNotifyCerPath = "/home/manage/jcs/平台公钥生产.cer";*/
/**
* 拉卡拉报文加密对称性密钥

View File

@@ -40,22 +40,22 @@ public class KlkConstant {
/**
* bindAccount 分账关系绑定结果回调地址
*/
public static final String BIND_ACC_URL = "https://jcs-api.52o.site/api/mall/callback/applyBind";
public static final String BIND_ACC_URL = "https://jcsapi-new.52o.site/jcsapi/api/mall/callback/applyBind";
/**
* 提现结果回调地址
*/
public static final String WITHDRAWAL = "https://jcs-api.52o.site/api/mall/callback/withdrawal";
public static final String WITHDRAWAL = "https://jcsapi-new.52o.site/jcsapi/api/mall/callback/withdrawal";
/**
* 会员兑换码订单回调地址
*/
public static final String MEMBER_CODE_ORDER = "https://jcs-api.52o.site/api/mall/callback/codeOrder";
public static final String MEMBER_CODE_ORDER = "https://jcsapi-new.52o.site/jcsapi/api/mall/callback/codeOrder";
/**
* 材料订单回调地址
*/
public static final String MEMBER_ORDER = "https://jcs-api.52o.site/api/mall/callback/order";
public static final String MEMBER_ORDER = "https://jcsapi-new.52o.site/jcsapi/api/mall/callback/order";
/**
* 分账状态 处理中PROCESSING, 已受理ACCEPTED, 成功SUCCESS, 失败FAIL

View File

@@ -7,6 +7,7 @@ import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
import com.lkl.laop.sdk.LKLSDK;
import com.lkl.laop.sdk.exception.SDKException;
import com.lkl.laop.sdk.request.V3CcssCounterOrderCreateRequest;
import com.lkl.laop.sdk.request.model.V3CcssOrderOutSplitInfo;
import com.lkl.laop.sdk.request.model.V3CcssOrderSceneFieldInfo;
import java.math.BigDecimal;
@@ -21,6 +22,88 @@ import java.util.List;
public class LakalaUtils extends BaseCommonDemo {
*/
/**
* 聚合收银台创建订单
*
* @return
*//*
public static JSONObject createOrderPayment(String orderNo, BigDecimal payPrice, List<V3CcssOrderOutSplitInfo> splitInfoList) throws Exception {
doInit();
//创建订单请求参数
V3CcssCounterOrderCreateRequest request = new V3CcssCounterOrderCreateRequest();
//商户订单号
request.setOutOrderNo(orderNo);
//是否支持多次发起订单 0 不支持 1 支持
request.setSupportRepeatPay(1);
//银联商户号
request.setMerchantNo(KlkConstant.merchantNo);
//订单支付金额 单位:分
request.setTotalAmount(payPrice.multiply(new BigDecimal(100)).longValue());
//支付有效期 一天
request.setOrderEfficientTime(DateUtil.format(DateUtil.offsetDay(new Date(), 1), "yyyyMMddHHmmss"));
//回调地址
request.setNotifyUrl(KlkConstant.MEMBER_ORDER);
request.setSupportCancel(1);
request.setSupportRefund(1);
*/
/*request.setSplitMark("1");
request.setOutSplitInfo(splitInfoList);*//*
//支付类型
// req.setCounterParam("{\"pay_mode\":\"ALIPAY\"}");
// req.setBusiTypeParam("[{\"busi_type\":\"UPCARD\",\"params\":{\"crd_flg\":\"CRDFLG_D|CRDFLG_C|CRDFLG_OTH\"}},{\"busi_type\":\"SCPAY\",\"params\":{\"pay_mode\":\"WECHAT\",\"crd_flg\":\"CRDFLG_D\"}}]");
// 订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
request.setOrderInfo("集材社订单支付");
List<String> sgnInfos = new ArrayList<>();
sgnInfos.add("1");
request.setSgnInfo(sgnInfos);
V3CcssOrderSceneFieldInfo.HbFqSceneInfo hbFqSceneInfo = new V3CcssOrderSceneFieldInfo.HbFqSceneInfo();
hbFqSceneInfo.setHbFqNum("3");
hbFqSceneInfo.setHbFqSellerPercent("0");
//3. 发送请求
String response = null;
try {
response = LKLSDK.httpPost(request);
} catch (SDKException e) {
throw new RuntimeException(e);
}
//4. 响应
System.out.println(response);
JSONObject jsonObject = JSONObject.parseObject(response);
if ("000000".equals(jsonObject.get("code"))) {
System.out.println(jsonObject.get("resp_data").toString());
} else {
System.out.println(jsonObject.get("msg").toString());
}
return jsonObject;
}
*/
/**
* 聚合收银台创建订单

View File

@@ -1,22 +1,28 @@
/*
package com.lakala.zf.laop.java.sdk.demo.utils;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
import com.lkl.laop.sdk.LKLSDK;
import com.lkl.laop.sdk.request.V3LabsRelationRefundRequest;
import com.lkl.laop.sdk.request.*;
import com.lkl.laop.sdk.utils.CommonUtil;
import javax.servlet.ServletException;
*/
/**
* @author Maosw
*/
public class V3LakalaOrderUtils extends BaseCommonDemo {
*//*
/*
*//**
public class V3LakalaUserUtils extends BaseCommonDemo {
*/
/**
* 根据卡号查询卡BIN信息
*//*
public static JSONObject cardBin(String acctNo) throws Exception {
doInit();
if (acctNo == null) {
@@ -27,13 +33,17 @@ public class V3LakalaOrderUtils extends BaseCommonDemo {
cardBin.setOrderNo(CommonUtil.getOrderNo());
cardBin.setOrgCode(KlkConstant.ORG_CODE);
cardBin.setCardNo(acctNo);
System.out.println("cardBin:"+cardBin);
String cardBinResponse = LKLSDK.httpPost(cardBin);
System.out.println(cardBinResponse);
return JSON.parseObject(cardBinResponse);
}
*//**
*/
/**
*附件上传
*//*
public static JSONObject uploadFile(V2MmsOpenApiUploadFile uploadFile) throws Exception {
doInit();
if (uploadFile == null) {
@@ -50,9 +60,11 @@ public class V3LakalaOrderUtils extends BaseCommonDemo {
return JSON.parseObject(uploadFileResponse);
}
*//**
*/
/**
* 分账接收方创建申请
*//*
public static JSONObject applyLedgerReceiver(V2MmsApplyLedgerReceiverRequest ledgerReceiver) throws Exception {
doInit();
if (ledgerReceiver == null) {
@@ -65,9 +77,11 @@ public class V3LakalaOrderUtils extends BaseCommonDemo {
return JSON.parseObject(uploadFileResponse);
}
*//**
*/
/**
* 查询提现申请详情
*//*
public static JSONObject queryWithdraw(V3SacsQueryRequest queryRequest) throws Exception {
doInit();
if (queryRequest == null) {
@@ -77,9 +91,11 @@ public class V3LakalaOrderUtils extends BaseCommonDemo {
return JSON.parseObject(response);
}
*//**
*/
/**
* 提现申请
*//*
public static JSONObject withdraw(V3SacsBalanceSeparateRequest separateRequest) throws Exception {
doInit();
if (separateRequest == null) {
@@ -89,9 +105,11 @@ public class V3LakalaOrderUtils extends BaseCommonDemo {
return JSON.parseObject(response);
}
*//**
*/
/**
*提款模式设置
*//*
public static JSONObject setWithdrawMode(V2LaepIndustryEwalletSettleProfileRequest ewalletSettleProfileRequest) throws Exception {
doInit();
if (ewalletSettleProfileRequest == null) {
@@ -99,11 +117,16 @@ public class V3LakalaOrderUtils extends BaseCommonDemo {
}
String response = LKLSDK.httpPost(ewalletSettleProfileRequest);
return JSON.parseObject(response);
}*/
}
/**
*/
/* *//*
*/
/**
* 退款
*/
*//*
*/
/*
public static JSONObject relationRefund(V3LabsRelationRefundRequest v3LabsRelationRefundRequest) throws Exception {
// 1. 配置初始化
doInit();
@@ -115,6 +138,8 @@ public class V3LakalaOrderUtils extends BaseCommonDemo {
//4. 响应
System.out.println(response);
return JSON.parseObject(response);
}
}*//*
}
*/

View File

@@ -16,24 +16,24 @@ public class BaseCommonDemo {
// 你的证书序列号
private static final String serialNo = "0195119ac8ac";
/*//商户私钥信息地址
//商户私钥信息地址
private static final String priKeyPath = "D:\\manage\\jcs\\OP10000499商户私钥.txt";
//拉卡拉支付平台证书地址
private static final String lklCerPath = "D:\\manage\\jcs\\平台公钥生产.cer";
//拉卡拉支付平台证书地址2(用于拉卡拉通知验签)
private static final String lklNotifyCerPath = "D:\\manage\\jcs\\平台公钥生产.cer";*/
private static final String lklNotifyCerPath = "D:\\manage\\jcs\\平台公钥生产.cer";
//商户私钥信息地址
private static final String priKeyPath = "/home/manage/jcs/OP10000499商户私钥.txt";
/*private static final String priKeyPath = "/home/manage/jcs/OP10000499商户私钥.txt";
//拉卡拉支付平台证书地址
private static final String lklCerPath = "/home/manage/jcs/平台公钥生产.cer";
//拉卡拉支付平台证书地址2(用于拉卡拉通知验签)
private static final String lklNotifyCerPath = "/home/manage/jcs/平台公钥生产.cer";
private static final String lklNotifyCerPath = "/home/manage/jcs/平台公钥生产.cer";*/
/**
* 拉卡拉报文加密对称性密钥

View File

@@ -40,22 +40,22 @@ public class KlkConstant {
/**
* bindAccount 分账关系绑定结果回调地址
*/
public static final String BIND_ACC_URL = "https://jcs-api.52o.site/api/mall/callback/applyBind";
public static final String BIND_ACC_URL = "https://jcsapi-new.52o.site/jcsapi/api/mall/callback/applyBind";
/**
* 提现结果回调地址
*/
public static final String WITHDRAWAL = "https://jcs-api.52o.site/api/mall/callback/withdrawal";
public static final String WITHDRAWAL = "https://jcsapi-new.52o.site/jcsapi/api/mall/callback/withdrawal";
/**
* 会员兑换码订单回调地址
*/
public static final String MEMBER_CODE_ORDER = "https://jcs-api.52o.site/api/mall/callback/codeOrder";
public static final String MEMBER_CODE_ORDER = "https://jcsapi-new.52o.site/jcsapi/api/mall/callback/codeOrder";
/**
* 材料订单回调地址
*/
public static final String MEMBER_ORDER = "https://jcs-api.52o.site/api/mall/callback/order";
public static final String MEMBER_ORDER = "https://jcsapi-new.52o.site/jcsapi/api/mall/callback/order";
/**
* 分账状态 处理中PROCESSING, 已受理ACCEPTED, 成功SUCCESS, 失败FAIL

View File

@@ -3,6 +3,7 @@ package com.lakala.zf.laop.java.sdk.demo.utils;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
import com.lakala.zf.laop.java.sdk.demo.v3.V3LabsRelationRefundRequest;
import com.lkl.laop.sdk.LKLSDK;
import com.lkl.laop.sdk.request.*;
import com.lkl.laop.sdk.utils.CommonUtil;
@@ -28,7 +29,9 @@ public class V3LakalaUserUtils extends BaseCommonDemo {
cardBin.setOrderNo(CommonUtil.getOrderNo());
cardBin.setOrgCode(KlkConstant.ORG_CODE);
cardBin.setCardNo(acctNo);
System.out.println("cardBin:"+cardBin);
String cardBinResponse = LKLSDK.httpPost(cardBin);
System.out.println(cardBinResponse);
return JSON.parseObject(cardBinResponse);
}
@@ -102,9 +105,9 @@ public class V3LakalaUserUtils extends BaseCommonDemo {
return JSON.parseObject(response);
}
/* *//**
* 退款
*//*
/**
* 提款模式查询
*/
public static JSONObject relationRefund(V3LabsRelationRefundRequest v3LabsRelationRefundRequest) throws Exception {
// 1. 配置初始化
doInit();
@@ -116,6 +119,6 @@ public class V3LakalaUserUtils extends BaseCommonDemo {
//4. 响应
System.out.println(response);
return JSON.parseObject(response);
}*/
}
}

View File

@@ -0,0 +1,166 @@
package com.lakala.zf.laop.java.sdk.demo.v3;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.lkl.laop.sdk.enums.FunctionCodeEnum;
import com.lkl.laop.sdk.request.V3CommRequest;
import com.lkl.laop.sdk.request.model.V3LabsTradeLocationInfo;
/**
* @author nxj
* @date 2023/7/21 14:07
* @description v3退款交易
*/
public class V3LabsRelationRefundRequest extends V3CommRequest {
/**
* 商户号
* M
* 拉卡拉分配的商户号
*/
@JsonProperty("merchant_no")
private String merchantNo;
/**
* 终端号
* M
* 拉卡拉分配的业务终端号
*/
@JsonProperty("term_no")
private String termNo;
/**
* 商户交易流水号
* M
* 商户系统唯一
*/
@JsonProperty("out_trade_no")
private String outTradeNo;
/**
* 退款金额
* M
* 单位分,整数数字型字符
*/
@JsonProperty("refund_amount")
private String refundAmount;
/**
* 退款原因
* M
* 退款原因描述
*/
@JsonProperty("refund_reason")
private String refundReason;
/**
* 原商户交易流水号
* C
* 下单时的商户请求流水号退款时origin_out_trade_noorigin_trade_noorigin_log_no必送其一
*/
@JsonProperty("origin_out_trade_no")
private String originOutTradeNo;
/**
* 原拉卡拉交易流水号
* C
* 下单成功时,返回的拉卡拉交易流水。 origin_out_trade_no、origin_log_no、origin_trade_no至少一个必填
* (调用收银台下单接口拉起交易后发起退款时至少要传两个),同时存在时优先级顺序如下: origin_trade_no、origin_log_no、origin_out_trade_no。
*/
@JsonProperty("origin_trade_no")
private String originTradeNo;
/**
* 原对账单流水号
* C
* 对账单中的交易流水。 origin_out_trade_no、origin_log_no、origin_trade_no至少一个必填
* (调用收银台下单接口拉起交易后发起退款时至少要传两个,同时存在时优先级顺序如下: origin_trade_no、origin_log_no、origin_out_trade_no。
*/
@JsonProperty("origin_log_no")
private String originLogNo;
/**
* 地址位置信息
* M
* 地址位置信息,风控要求必送
*/
@JsonProperty("location_info")
private V3LabsTradeLocationInfo locationInfo;
public String getMerchantNo() {
return merchantNo;
}
public void setMerchantNo(String merchantNo) {
this.merchantNo = merchantNo;
}
public String getTermNo() {
return termNo;
}
public void setTermNo(String termNo) {
this.termNo = termNo;
}
public String getOutTradeNo() {
return outTradeNo;
}
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
public String getRefundAmount() {
return refundAmount;
}
public void setRefundAmount(String refundAmount) {
this.refundAmount = refundAmount;
}
public String getRefundReason() {
return refundReason;
}
public void setRefundReason(String refundReason) {
this.refundReason = refundReason;
}
public String getOriginOutTradeNo() {
return originOutTradeNo;
}
public void setOriginOutTradeNo(String originOutTradeNo) {
this.originOutTradeNo = originOutTradeNo;
}
public String getOriginTradeNo() {
return originTradeNo;
}
public void setOriginTradeNo(String originTradeNo) {
this.originTradeNo = originTradeNo;
}
public String getOriginLogNo() {
return originLogNo;
}
public void setOriginLogNo(String originLogNo) {
this.originLogNo = originLogNo;
}
public V3LabsTradeLocationInfo getLocationInfo() {
return locationInfo;
}
public void setLocationInfo(V3LabsTradeLocationInfo locationInfo) {
this.locationInfo = locationInfo;
}
@Override
public FunctionCodeEnum getFunctionCode() {
return FunctionCodeEnum.API_V3_LABS_RELATION_REFUND;
}
}