diff --git a/README.md b/README.md index 5c9258038..0d2d09ffd 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@

# Dromara Dax-Pay(开源支付系统-单商户版) -> **`multi-xxx` 相关分支为多商户版本, `single-xxx` 相关分支为单商户版本** +> **`multi-xxx` 相关分支为多商户版本, `single-xxx` 相关分支为单商户版本**, **目前都在最后阶段的开发中, 尽请期待** ## ❗使用须知 diff --git a/_doc/Task.md b/_doc/Task.md index 369b43a3c..99ed5a1ee 100644 --- a/_doc/Task.md +++ b/_doc/Task.md @@ -4,8 +4,8 @@ - [x] 增加延时队列的可视页面 - [ ] 增加首页驾驶舱功能 - [ ] 定时同步任务频次不要太高, 预防产生过多的数据 - - [ ] 转账接收方类型优化 - - [ ] 支付/退款/转账商户订单号根据AppId做隔离 + - [x] 转账接收方类型优化 + - [x] 支付/退款/转账商户订单号查询时根据AppId做隔离 - [ ] 云闪付支付通道对接 - [ ] 分账功能 - [x] 分账接收方配置 diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/config/AliPayConfigService.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/config/AliPayConfigService.java index 751024651..e44b50271 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/config/AliPayConfigService.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/config/AliPayConfigService.java @@ -72,7 +72,7 @@ public class AliPayConfigService { public void save(AliPayConfigParam param) { AliPayConfig entity = AlipayConfigConvert.CONVERT.toEntity(param); ChannelConfig channelConfig = entity.toChannelConfig(); - // 判断商户和应用下是否存在该配置 + // 判断商户应用下是否存在该配置 if (channelConfigManager.existsByAppIdAndChannel(channelConfig.getAppId(), channelConfig.getChannel())){ throw new DataErrorException("该应用下已存在支付宝配置, 请勿重新添加"); } diff --git a/daxpay-single-channel/daxpay-single-union/src/main/java/org/dromara/daxpay/channel/union/service/config/UnionPayConfigService.java b/daxpay-single-channel/daxpay-single-union/src/main/java/org/dromara/daxpay/channel/union/service/config/UnionPayConfigService.java index 4051248a2..b6cf538f6 100644 --- a/daxpay-single-channel/daxpay-single-union/src/main/java/org/dromara/daxpay/channel/union/service/config/UnionPayConfigService.java +++ b/daxpay-single-channel/daxpay-single-union/src/main/java/org/dromara/daxpay/channel/union/service/config/UnionPayConfigService.java @@ -63,7 +63,7 @@ public class UnionPayConfigService { public void save(UnionPayConfigParam param) { UnionPayConfig entity = UnionPayConfigConvert.CONVERT.toEntity(param); ChannelConfig channelConfig = entity.toChannelConfig(); - // 判断商户和应用下是否存在该配置 + // 判断商户应用下是否存在该配置 if (channelConfigManager.existsByAppIdAndChannel(channelConfig.getAppId(), channelConfig.getChannel())){ throw new DataErrorException("该应用下已存在云闪付配置, 请勿重新添加"); } diff --git a/daxpay-single-channel/daxpay-single-wechat/src/main/java/org/dromara/daxpay/channel/wechat/service/config/WechatPayConfigService.java b/daxpay-single-channel/daxpay-single-wechat/src/main/java/org/dromara/daxpay/channel/wechat/service/config/WechatPayConfigService.java index db56bab29..fe3d37448 100644 --- a/daxpay-single-channel/daxpay-single-wechat/src/main/java/org/dromara/daxpay/channel/wechat/service/config/WechatPayConfigService.java +++ b/daxpay-single-channel/daxpay-single-wechat/src/main/java/org/dromara/daxpay/channel/wechat/service/config/WechatPayConfigService.java @@ -65,7 +65,7 @@ public class WechatPayConfigService { public void save(WechatPayConfigParam param) { WechatPayConfig entity = WechatPayConfigConvert.CONVERT.toEntity(param); ChannelConfig channelConfig = entity.toChannelConfig(); - // 判断商户和应用下是否存在该配置 + // 判断商户应用下是否存在该配置 if (channelConfigManager.existsByAppIdAndChannel(channelConfig.getAppId(), channelConfig.getChannel())){ throw new DataErrorException("该应用下已存在微信配置, 请勿重新添加"); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/common/anno/PaymentVerify.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/common/anno/PaymentVerify.java index 3dae989e1..110269702 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/common/anno/PaymentVerify.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/common/anno/PaymentVerify.java @@ -12,7 +12,7 @@ import java.lang.annotation.*; * * 注解实现的功能(按先后顺序):
* 1. 参数校验 - * 2. 商户和应用信息初始化 + * 2. 商户应用信息初始化 * 3. 终端信息初始化 * 4. 参数签名校验 * 5. 参数请求时间校验 diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/order/TransferOrderController.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/order/TransferOrderController.java index 9a6525b13..ab5df17e6 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/order/TransferOrderController.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/controller/order/TransferOrderController.java @@ -49,13 +49,6 @@ public class TransferOrderController { return Res.ok(queryService.findByTransferNo(transferNo)); } - @RequestPath("根据商户转账号查询") - @Operation(summary = "根据商户转账号查询") - @GetMapping("/findByBizTransferNo") - public Result findByBizTransferNo(String bizTransferNo){ - return Res.ok(queryService.findByBizTransferNo(bizTransferNo)); - } - @RequestPath("查询单条") @Operation(summary = "查询单条") @GetMapping("/findById") diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/notice/callback/MerchantCallbackTaskManager.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/notice/callback/MerchantCallbackTaskManager.java index 9ce8ff162..3d8a703cb 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/notice/callback/MerchantCallbackTaskManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/notice/callback/MerchantCallbackTaskManager.java @@ -34,12 +34,4 @@ public class MerchantCallbackTaskManager extends BaseManager generator = QueryGenerator.generator(query); return this.page(mpPage, generator); } - - /** - * 获取数据, 不过滤租户 - */ - @IgnoreTenant - public Optional findByIdNotTenant(Long taskId) { - return this.findById(taskId); - } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/notice/notify/MerchantNotifyTaskManager.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/notice/notify/MerchantNotifyTaskManager.java index 17bd92337..f8fbd40f3 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/notice/notify/MerchantNotifyTaskManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/notice/notify/MerchantNotifyTaskManager.java @@ -34,11 +34,4 @@ public class MerchantNotifyTaskManager extends BaseManager findByIdNotTenant(Long taskId) { - return this.findById(taskId); - } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/pay/PayOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/pay/PayOrderManager.java index 9d453f09e..637403882 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/pay/PayOrderManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/pay/PayOrderManager.java @@ -40,8 +40,11 @@ public class PayOrderManager extends BaseManager { /** * 根据商户订单号查询 */ - public Optional findByBizOrderNo(String bizOrderNo) { - return findByField(PayOrder::getBizOrderNo,bizOrderNo); + public Optional findByBizOrderNo(String bizOrderNo, String appId) { + return lambdaQuery() + .eq(PayOrder::getBizOrderNo,bizOrderNo) + .eq(PayOrder::getAppId,appId) + .oneOpt(); } /** @@ -81,7 +84,7 @@ public class PayOrderManager extends BaseManager { */ public BigDecimal getTotalAmount(PayOrderQuery query){ QueryWrapper generator = QueryGenerator.generator(query); - // 商户和应用AppId + // 商户应用AppId generator.eq(MpUtil.getColumnName(PayOrder::getStatus), PayStatusEnum.SUCCESS.getCode()); return baseMapper.getTotalAmount(generator); } @@ -97,11 +100,4 @@ public class PayOrderManager extends BaseManager { .list(); } - /** - * 查询订单, 不过滤租户 - */ - @IgnoreTenant - public Optional findByIdNotTenant(Long id) { - return this.findById(id); - } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/refund/RefundOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/refund/RefundOrderManager.java index c33231cad..c409af138 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/refund/RefundOrderManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/refund/RefundOrderManager.java @@ -50,8 +50,11 @@ public class RefundOrderManager extends BaseManager findByBizRefundNo(String bizRefundNo) { - return findByField(RefundOrder::getBizRefundNo, bizRefundNo); + public Optional findByBizRefundNo(String bizRefundNo, String appId) { + return lambdaQuery() + .eq(RefundOrder::getBizRefundNo,bizRefundNo) + .eq(RefundOrder::getAppId,appId) + .oneOpt(); } /** @@ -92,12 +95,4 @@ public class RefundOrderManager extends BaseManager findByIdNotTenant(Long id) { - return findById(id); - } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/transfer/TransferOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/transfer/TransferOrderManager.java index 8b5bcb90f..611f9f014 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/transfer/TransferOrderManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/dao/order/transfer/TransferOrderManager.java @@ -62,8 +62,11 @@ public class TransferOrderManager extends BaseManager findByBizTransferNo(String bizTransferNo) { - return findByField(TransferOrder::getBizTransferNo, bizTransferNo); + public Optional findByBizTransferNo(String bizTransferNo, String appId) { + return lambdaQuery() + .eq(TransferOrder::getBizTransferNo, bizTransferNo) + .eq(TransferOrder::getAppId, appId) + .oneOpt(); } /** @@ -75,10 +78,4 @@ public class TransferOrderManager extends BaseManager findByIdNotTenant(Long id) { - return findById(id); - } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/pay/PayOrderQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/pay/PayOrderQueryService.java index 1e8545b28..464657f52 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/pay/PayOrderQueryService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/pay/PayOrderQueryService.java @@ -58,19 +58,19 @@ public class PayOrderQueryService { /** * 根据商户订单号查询 */ - public Optional findByBizOrderNo(String bizOrderNo) { - return payOrderManager.findByBizOrderNo(bizOrderNo); + public Optional findByBizOrderNo(String bizOrderNo, String appId) { + return payOrderManager.findByBizOrderNo(bizOrderNo, appId); } /** * 根据订单号或商户订单号查询 */ - public Optional findByBizOrOrderNo(String orderNo, String bizOrderNo) { + public Optional findByBizOrOrderNo(String orderNo, String bizOrderNo, String appId) { if (Objects.nonNull(orderNo)){ return this.findByOrderNo(orderNo); } if (Objects.nonNull(bizOrderNo)){ - return this.findByBizOrderNo(bizOrderNo); + return this.findByBizOrderNo(bizOrderNo,appId); } return Optional.empty(); } @@ -84,7 +84,7 @@ public class PayOrderQueryService { throw new ValidationFailedException("业务号或支付单ID不能都为空"); } // 查询支付单 - return this.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNoeNo()) + return this.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNoeNo(),param.getAppId()) .map(PayOrderConvert.CONVERT::toResult) .orElseThrow(() -> new TradeNotExistException("支付订单不存在")); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/pay/PayOrderService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/pay/PayOrderService.java index 865acf6e6..007b8a806 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/pay/PayOrderService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/pay/PayOrderService.java @@ -30,7 +30,7 @@ public class PayOrderService { */ public void sync(Long id) { PayOrder payOrder = payOrderManager.findById(id).orElseThrow(() -> new TradeNotExistException("支付订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(payOrder.getAppId()); paySyncService.syncPayOrder(payOrder); } @@ -40,7 +40,7 @@ public class PayOrderService { */ public void close(Long id) { PayOrder payOrder = payOrderManager.findById(id).orElseThrow(() -> new TradeNotExistException("支付订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(payOrder.getAppId()); payCloseService.closeOrder(payOrder,false); } @@ -50,7 +50,7 @@ public class PayOrderService { */ public void cancel(Long id) { PayOrder payOrder = payOrderManager.findById(id).orElseThrow(() -> new TradeNotExistException("支付订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(payOrder.getAppId()); payCloseService.closeOrder(payOrder,true); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/refund/RefundOrderQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/refund/RefundOrderQueryService.java index 1f1e50797..5b51e9e77 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/refund/RefundOrderQueryService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/refund/RefundOrderQueryService.java @@ -62,11 +62,11 @@ public class RefundOrderQueryService { /** * 根据退款号和商户退款号查询 */ - public Optional findByBizOrRefundNo(String refundNo, String bizRefundNo) { + public Optional findByBizOrRefundNo(String refundNo, String bizRefundNo, String appId) { if (StrUtil.isNotBlank(refundNo)){ return refundOrderManager.findByRefundNo(refundNo); } else if (StrUtil.isNotBlank(bizRefundNo)){ - return refundOrderManager.findByBizRefundNo(bizRefundNo); + return refundOrderManager.findByBizRefundNo(bizRefundNo,appId); } else { return Optional.empty(); } @@ -81,7 +81,7 @@ public class RefundOrderQueryService { throw new ValidationFailedException("退款号或商户退款号不能都为空"); } // 查询退款单 - RefundOrder refundOrder = this.findByBizOrRefundNo(param.getRefundNo(), param.getBizRefundNo()) + RefundOrder refundOrder = this.findByBizOrRefundNo(param.getRefundNo(), param.getBizRefundNo(), param.getAppId()) .orElseThrow(() -> new TradeNotExistException("退款订单不存在")); return RefundOrderConvert.CONVERT.toResult(refundOrder); diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/refund/RefundOrderService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/refund/RefundOrderService.java index e5f1fd0a1..57dc06547 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/refund/RefundOrderService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/refund/RefundOrderService.java @@ -54,7 +54,7 @@ public class RefundOrderService { var payOrder = payOrderManager.findByOrderNo(param.getOrderNo()) .orElseThrow(() -> new TradeNotExistException("支付订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(payOrder.getAppId()); String ip = Optional.ofNullable(WebServletUtil.getRequest()) @@ -78,7 +78,7 @@ public class RefundOrderService { public void sync(Long id) { RefundOrder refundOrder = refundOrderManager.findById(id) .orElseThrow(() -> new TradeNotExistException("退款订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(refundOrder.getAppId()); // 同步退款订单状态 refundSyncService.syncRefundOrder(refundOrder); @@ -90,7 +90,7 @@ public class RefundOrderService { public void retry(Long id) { RefundOrder refundOrder = refundOrderManager.findById(id) .orElseThrow(() -> new TradeNotExistException("退款订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(refundOrder.getAppId()); String ip = Optional.ofNullable(WebServletUtil.getRequest()) @@ -115,7 +115,7 @@ public class RefundOrderService { public void close(Long id) { RefundOrder refundOrder = refundOrderManager.findById(id) .orElseThrow(() -> new TradeNotExistException("退款订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(refundOrder.getAppId()); if (!Objects.equals(refundOrder.getStatus(), RefundStatusEnum.FAIL.getCode())) { throw new TradeStatusErrorException("只有失败状态的才可以关闭退款"); diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/transfer/TransferOrderQueryService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/transfer/TransferOrderQueryService.java index 640fd87d6..63bd1d8eb 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/transfer/TransferOrderQueryService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/transfer/TransferOrderQueryService.java @@ -59,23 +59,14 @@ public class TransferOrderQueryService { } - /** - * 根据转账号查询 - */ - public TransferOrderVo findByBizTransferNo(String bizTransferNo){ - return transferOrderManager.findByBizTransferNo(bizTransferNo).map(TransferOrder::toResult) - .orElseThrow(() -> new DataNotExistException("转账订单信息不存在")); - - } - /** * 根据转账号和商户转账号查询 */ - public Optional findByBizOrTransferNo(String transferNo, String bizTransferNo) { + public Optional findByBizOrTransferNo(String transferNo, String bizTransferNo,String appId) { if (StrUtil.isNotBlank(transferNo)){ return transferOrderManager.findByTransferNo(transferNo); } else if (StrUtil.isNotBlank(bizTransferNo)){ - return transferOrderManager.findByBizTransferNo(bizTransferNo); + return transferOrderManager.findByBizTransferNo(bizTransferNo,appId); } else { return Optional.empty(); } @@ -91,7 +82,7 @@ public class TransferOrderQueryService { throw new ValidationFailedException("转账号或商户转账号不能都为空"); } // 查询转账单 - TransferOrder transferOrder = this.findByBizOrTransferNo(param.getTransferNo(), param.getBizTransferNo()) + TransferOrder transferOrder = this.findByBizOrTransferNo(param.getTransferNo(), param.getBizTransferNo(), param.getAppId()) .orElseThrow(() -> new TradeNotExistException("转账订单不存在")); return TransferOrderConvert.CONVERT.toResult(transferOrder); diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/transfer/TransferOrderService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/transfer/TransferOrderService.java index a1a42f277..14f4eb115 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/transfer/TransferOrderService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/order/transfer/TransferOrderService.java @@ -41,7 +41,7 @@ public class TransferOrderService { public void sync(Long id) { var transferOrder = transferOrderManager.findById(id) .orElseThrow(() -> new TradeNotExistException("转账订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(transferOrder.getAppId()); // 同步转账订单状态 transferSyncService.syncTransferOrder(transferOrder); @@ -53,7 +53,7 @@ public class TransferOrderService { public void retry(Long id) { var transferOrder = transferOrderManager.findById(id) .orElseThrow(() -> new TradeNotExistException("转账订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(transferOrder.getAppId()); String ip = Optional.ofNullable(WebServletUtil.getRequest()) @@ -77,7 +77,7 @@ public class TransferOrderService { public void close(Long id) { var transferOrder = transferOrderManager.findById(id) .orElseThrow(() -> new TradeNotExistException("转账订单不存在")); - // 初始化商户和应用 + // 初始化商户应用 paymentAssistService.initMchApp(transferOrder.getAppId()); // 更新订单状态 if (!Objects.equals(TransferStatusEnum.FAIL.getCode(), transferOrder.getStatus())){ diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/reconcile/ReconcileStatementService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/reconcile/ReconcileStatementService.java index e609930b2..a3056a6a4 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/reconcile/ReconcileStatementService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/reconcile/ReconcileStatementService.java @@ -99,7 +99,7 @@ public class ReconcileStatementService { if (statement.isDownOrUpload()){ throw new OperationFailException("对账单文件已经下载或上传"); } - // 初始化对商户和应用上下文 + // 初始化对商户应用上下文 paymentAssistService.initMchApp(statement.getAppId()); // 构建对账策略 diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayAssistService.java index d4c87a577..45376bcc7 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayAssistService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayAssistService.java @@ -94,9 +94,9 @@ public class PayAssistService { /** * 校验支付状态,支付成功则返回,支付失败则抛出对应的异常 */ - public PayOrder getOrderAndCheck(String bizOrderNo) { + public PayOrder getOrderAndCheck(PayParam param) { // 根据订单查询支付记录 - PayOrder payOrder = payOrderQueryService.findByBizOrderNo(bizOrderNo) + PayOrder payOrder = payOrderQueryService.findByBizOrderNo(param.getBizOrderNo(), param.getAppId()) .orElse(null); if (Objects.nonNull(payOrder)) { // 待支付 diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayCloseService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayCloseService.java index 7277f4445..d5733b53b 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayCloseService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayCloseService.java @@ -46,7 +46,7 @@ public class PayCloseService { * 关闭支付 */ public void close(PayCloseParam param){ - PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo()) + PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo(), param.getAppId()) .orElseThrow(() -> new TradeNotExistException("支付订单不存在")); this.closeOrder(payOrder, param.isUseCancel()); diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayService.java index 0dfbf328b..9a94b659f 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PayService.java @@ -55,7 +55,7 @@ public class PayService { } try { // 查询并检查订单 - PayOrder payOrder = payAssistService.getOrderAndCheck(payParam.getBizOrderNo()); + PayOrder payOrder = payAssistService.getOrderAndCheck(payParam); // 走首次下单逻辑还是重复下档逻辑 if (Objects.isNull(payOrder)){ return this.firstPay(payParam); diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PaySyncService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PaySyncService.java index f042fc9a9..a275bcdaf 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PaySyncService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/pay/PaySyncService.java @@ -59,7 +59,7 @@ public class PaySyncService { */ @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) public PaySyncResult sync(PaySyncParam param) { - PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo()) + PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo(), param.getAppId()) .orElseThrow(() -> new TradeNotExistException("支付订单不存在")); // 执行订单同步逻辑 return this.syncPayOrder(payOrder); diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/refund/RefundService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/refund/RefundService.java index bff084e59..18596bfec 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/refund/RefundService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/refund/RefundService.java @@ -76,7 +76,7 @@ public class RefundService { } try { // 判断是否是首次发起退款 - Optional refund = refundOrderManager.findByBizRefundNo(param.getBizRefundNo()); + Optional refund = refundOrderManager.findByBizRefundNo(param.getBizRefundNo(), param.getAppId()); if (refund.isPresent()){ return this.repeatRefund(refund.get(),param); } else { @@ -93,7 +93,7 @@ public class RefundService { private RefundResult firstRefund(RefundParam param) { // 获取支付订单 - PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo()) + PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(param.getOrderNo(), param.getBizOrderNo(), param.getAppId()) .orElseThrow(() -> new DataNotExistException("支付订单不存在")); // 检查退款参数 refundAssistService.checkAndParam(param, payOrder); @@ -146,7 +146,7 @@ public class RefundService { throw new TradeStatusErrorException("只有失败状态的才可以重新发起退款"); } // 获取支付订单 - PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(refundOrder.getOrderNo(), refundOrder.getBizOrderNo()) + PayOrder payOrder = payOrderQueryService.findByBizOrOrderNo(refundOrder.getOrderNo(), refundOrder.getBizOrderNo(), refundOrder.getAppId()) .orElseThrow(() -> new TradeNotExistException("支付订单不存在")); AbsRefundStrategy refundStrategy = PaymentStrategyFactory.create(refundOrder.getChannel(), AbsRefundStrategy.class); // 设置退款订单对象 diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/refund/RefundSyncService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/refund/RefundSyncService.java index ff685344b..b76d63f4f 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/refund/RefundSyncService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/refund/RefundSyncService.java @@ -52,7 +52,7 @@ public class RefundSyncService { @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) public RefundSyncResult sync(RefundSyncParam param){ // 先获取退款单 - RefundOrder refundOrder = refundOrderQueryService.findByBizOrRefundNo(param.getRefundNo(), param.getBizRefundNo()) + RefundOrder refundOrder = refundOrderQueryService.findByBizOrRefundNo(param.getRefundNo(), param.getBizRefundNo(),param.getAppId()) .orElseThrow(() -> new TradeNotExistException("未查询到退款订单")); return this.syncRefundOrder(refundOrder); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/transfer/TransferService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/transfer/TransferService.java index 47e6f693b..09d25a813 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/transfer/TransferService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/transfer/TransferService.java @@ -57,7 +57,7 @@ public class TransferService { } try { // 判断是否是首次发起转账 - var transferOrder = transferOrderManager.findByBizTransferNo(param.getBizTransferNo()); + var transferOrder = transferOrderManager.findByBizTransferNo(param.getBizTransferNo(), param.getAppId()); if (transferOrder.isPresent()){ return this.repeatTransfer(transferOrder.get(),param); } else { diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/transfer/TransferSyncService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/transfer/TransferSyncService.java index da4d2c7b1..9da3cf530 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/transfer/TransferSyncService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/trade/transfer/TransferSyncService.java @@ -53,7 +53,7 @@ public class TransferSyncService { * 转账同步接口 */ public TransferSyncResult sync(TransferSyncParam param) { - TransferOrder transferOrder = transferOrderService.findByBizOrTransferNo(param.getTransferNo(), param.getBizTransferNo()) + TransferOrder transferOrder = transferOrderService.findByBizOrTransferNo(param.getTransferNo(), param.getBizTransferNo(),param.getAppId()) .orElseThrow(() -> new TradeNotExistException("退款订单不存在")); // 执行订单同步逻辑 return this.syncTransferOrder(transferOrder);