diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/pay/PayConsumeDeposit.java b/mall-common/src/main/java/com/suisung/mall/common/modules/pay/PayConsumeDeposit.java index 3b7d116f..37d0b0c8 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/pay/PayConsumeDeposit.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/pay/PayConsumeDeposit.java @@ -128,6 +128,9 @@ public class PayConsumeDeposit implements Serializable { @ApiModelProperty(value = "额外参数") private String deposit_extra_param; + @ApiModelProperty(value = "拉卡拉订单合单参数") + private String lkl_combine_params; + @ApiModelProperty(value = "支付") private String deposit_service; diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaPayServiceImpl.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaPayServiceImpl.java index 8fe801f8..e30fc49e 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaPayServiceImpl.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaPayServiceImpl.java @@ -262,9 +262,10 @@ public class LakalaPayServiceImpl implements LakalaPayService { accBusiFields.put("user_id", openId); // 用户openid reqData.put("acc_busi_fields", accBusiFields); - // 分账信息 + // 重要约定,订单号规则:商品订单:ORD_订单号,运费订单:DF_订单号 + // 分单信息 JSONObject goodsSplitInfo = new JSONObject(); - goodsSplitInfo.put("out_sub_trade_no", orderId + "-1"); // 子订单号 + goodsSplitInfo.put("out_sub_trade_no", "ORD_" + orderId); // 子订单号 goodsSplitInfo.put("merchant_no", merchantNo); // 分账商户号 goodsSplitInfo.put("term_no", termNo); // 分账终端号 int totalAmountInt = Convert.toInt(totalAmount) - Convert.toInt(agentAmount); @@ -273,7 +274,7 @@ public class LakalaPayServiceImpl implements LakalaPayService { goodsSplitInfo.put("sub_remark", "商品订单金额"); // 子单备注信息 JSONObject deliverySplitInfo = new JSONObject(); - deliverySplitInfo.put("out_sub_trade_no", orderId + "-2"); // 子订单号 + deliverySplitInfo.put("out_sub_trade_no", "DF_" + orderId); // 子订单号 deliverySplitInfo.put("merchant_no", agentMerchantNo); // 分账商户号 deliverySplitInfo.put("term_no", agentTermNo); // 分账终端号 deliverySplitInfo.put("amount", agentAmount); // 分账金额 @@ -301,7 +302,7 @@ public class LakalaPayServiceImpl implements LakalaPayService { // 这里的请求方法,对返回的字段进行了处理,需要注意 ResponseEntity lakalaRespJSON = RestTemplateHttpUtil.sendPostBodyBackEntity(reqUrl, header, reqBody, JSONObject.class); - log.debug("拉卡拉合单交易响应参数:{}", lakalaRespJSON); + log.info("拉卡拉合单交易响应参数:{}", lakalaRespJSON); // 7. 处理响应结果 if (lakalaRespJSON == null) { @@ -336,7 +337,7 @@ public class LakalaPayServiceImpl implements LakalaPayService { * 参考地址:https://o.lakala.com/#/home/document/detail?id=113 * * @param storeId 店铺ID - * @param outTradeNo 退货订单号 + * @param outTradeNo 退货订单号,如: FX-20241214-1 * @param originTradeNo 原拉卡拉交易流水号 * @param refundAmount 退款金额(单位:分) * @param refundReason 退款原因 @@ -367,6 +368,7 @@ public class LakalaPayServiceImpl implements LakalaPayService { } // 3. 初始化拉卡拉SDK initLKLSDK(); + // 4. 获取店铺的拉卡拉商户号和终端号 ShopStoreBase shopStoreBase = shopService.getLklMerchantNoAndTermNo(storeId); if (shopStoreBase == null || org.apache.commons.lang3.StringUtils.isAnyBlank(shopStoreBase.getLkl_merchant_no(), shopStoreBase.getLkl_term_no())) { @@ -379,11 +381,12 @@ public class LakalaPayServiceImpl implements LakalaPayService { // 5. 构造退款请求并发送 V3LabsRelationRefundRequest refundRequest = new V3LabsRelationRefundRequest(); refundRequest.setOutTradeNo(outTradeNo); + refundRequest.setOriginTradeNo(originTradeNo); refundRequest.setMerchantNo(shopStoreBase.getLkl_merchant_no()); refundRequest.setTermNo(shopStoreBase.getLkl_term_no()); refundRequest.setRefundAmount(refundAmount); refundRequest.setRefundReason(refundReason); - refundRequest.setOriginTradeNo(originTradeNo); + refundRequest.setLocationInfo(new V3LabsTradeLocationInfo(requestIp, null, "")); log.info("拉卡拉退款请求参数: {}", JSONUtil.toJsonStr(refundRequest)); diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java index 3f834bad..d59a257f 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java @@ -65,6 +65,7 @@ import io.seata.spring.annotation.GlobalTransactional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.util.Pair; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Service; @@ -122,6 +123,11 @@ public class PayUserPayServiceImpl extends BaseServiceImpl - deposit_id - , order_id, deposit_trade_no, payment_channel_id, app_id, server_id, deposit_app_id_channel, deposit_subject, deposit_payment_type, deposit_trade_status, deposit_seller_id, deposit_seller_email, deposit_buyer_id, deposit_buyer_email, currency_id, currency_symbol_left, deposit_total_fee, deposit_quantity, deposit_price, deposit_body, deposit_gmt_create, deposit_gmt_payment, deposit_gmt_close, deposit_is_total_fee_adjust, deposit_use_coupon, deposit_discount, deposit_notify_time, deposit_notify_type, deposit_notify_id, deposit_sign_type, deposit_sign, deposit_extra_param, deposit_service, deposit_state, deposit_async, deposit_review, deposit_enable, store_id, user_id, chain_id + , order_id, deposit_trade_no, payment_channel_id, app_id, server_id, deposit_app_id_channel, deposit_subject, deposit_payment_type, deposit_trade_status, deposit_seller_id, deposit_seller_email, deposit_buyer_id, deposit_buyer_email, currency_id, currency_symbol_left, deposit_total_fee, deposit_quantity, deposit_price, deposit_body, deposit_gmt_create, deposit_gmt_payment, deposit_gmt_close, deposit_is_total_fee_adjust, deposit_use_coupon, deposit_discount, deposit_notify_time, deposit_notify_type, deposit_notify_id, deposit_sign_type, deposit_sign, deposit_extra_param, lkl_combine_params, deposit_service, deposit_state, deposit_async, deposit_review, deposit_enable, store_id, user_id, chain_id - - diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java index df5a5325..bf8a55ed 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java @@ -93,19 +93,19 @@ public class LakalaController extends BaseControllerImpl { // List clientIds = JSONUtil.toList(paramsJSON.getJSONArray("clientIds"), String.class); // return pushMessageService.sendMessage(clientIds, paramsJSON.getStr("title"), paramsJSON.getStr("content"), paramsJSON.getJSONObject("payload")); - JSONObject jsonObject = new JSONObject(); - String orderId = "DD-20250725-1"; - jsonObject.put("category", 1); - jsonObject.put("orderId", "DD-20250725-1"); - jsonObject.put("storeId", 12); - jsonObject.put("title", "有一笔已超时的订单!"); - jsonObject.put("message", "您有一笔已超时的订单[" + orderId + "],请及时处理。"); - mqMessageService.sendDelayMessage(jsonObject.toString(), 10000); - return jsonObject; +// JSONObject jsonObject = new JSONObject(); +// String orderId = "DD-20250725-1"; +// jsonObject.put("category", 1); +// jsonObject.put("orderId", "DD-20250725-1"); +// jsonObject.put("storeId", 12); +// jsonObject.put("title", "有一笔已超时的订单!"); +// jsonObject.put("message", "您有一笔已超时的订单[" + orderId + "],请及时处理。"); +// mqMessageService.sendDelayMessage(jsonObject.toString(), 10000); +// return jsonObject; // return shopOrderBaseService.sameCityOrderExpireSeconds(10000L); -// return sfExpressApiService.createSfExpressShop(66, "能辉超市", "桂平市", "广西壮族自治区贵港市桂平市广佰汇超市(桂平店)", "谢能坤", "17777525395", "110.07165452271", "23.369069486251"); + return sfExpressApiService.createSfExpressShop(66, "能辉超市", "桂平市", "广西壮族自治区贵港市桂平市广佰汇超市(桂平店)", "谢能坤", "17777525395", "110.07165452271", "23.369069486251"); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java index 1ee148b9..b9bd4baf 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderReturnServiceImpl.java @@ -541,7 +541,7 @@ public class ShopOrderReturnServiceImpl extends BaseServiceImpl