diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/service/CustomerOrderService.java b/mt-pay/src/main/java/com/mtkj/mtpay/service/CustomerOrderService.java index 1c8e796..905548d 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/service/CustomerOrderService.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/service/CustomerOrderService.java @@ -28,5 +28,20 @@ public interface CustomerOrderService { * @return 订单响应 */ CustomerOrderResponseDTO getOrderById(Long id); + + /** + * 更新订单支付状态 + * @param orderNo 订单号 + * @param paymentStatus 支付状态 + * @param paymentOrderId 支付订单ID(可选) + */ + void updatePaymentStatus(String orderNo, String paymentStatus, Long paymentOrderId); + + /** + * 更新订单状态 + * @param orderNo 订单号 + * @param status 订单状态 + */ + void updateOrderStatus(String orderNo, String status); } diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/service/impl/CustomerOrderServiceImpl.java b/mt-pay/src/main/java/com/mtkj/mtpay/service/impl/CustomerOrderServiceImpl.java index 237cd61..db9fbe4 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/service/impl/CustomerOrderServiceImpl.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/service/impl/CustomerOrderServiceImpl.java @@ -137,5 +137,49 @@ public class CustomerOrderServiceImpl implements CustomerOrderService { BeanUtils.copyProperties(order, response); return response; } + + @Override + public void updatePaymentStatus(String orderNo, String paymentStatus, Long paymentOrderId) { + log.info("更新订单支付状态,订单号: {}, 支付状态: {}, 支付订单ID: {}", + orderNo, paymentStatus, paymentOrderId); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CustomerOrder::getOrderNo, orderNo); + CustomerOrder order = customerOrderMapper.selectOne(queryWrapper); + + if (order == null) { + log.warn("订单不存在,订单号: {}", orderNo); + throw new BusinessException(ResultCode.DATA_NOT_FOUND, "订单不存在"); + } + + order.setPaymentStatus(paymentStatus); + if (paymentOrderId != null) { + order.setPaymentOrderId(paymentOrderId); + } + + // 如果支付成功,更新订单状态为已支付 + if ("PAID".equals(paymentStatus)) { + order.setStatus("PAID"); + } + + customerOrderMapper.updateById(order); + log.info("订单支付状态更新成功,订单号: {}", orderNo); + } + + @Override + public void updateOrderStatus(String orderNo, String status) { + log.info("更新订单状态,订单号: {}, 状态: {}", orderNo, status); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CustomerOrder::getOrderNo, orderNo); + CustomerOrder order = customerOrderMapper.selectOne(queryWrapper); + + if (order == null) { + log.warn("订单不存在,订单号: {}", orderNo); + throw new BusinessException(ResultCode.DATA_NOT_FOUND, "订单不存在"); + } + + order.setStatus(status); + customerOrderMapper.updateById(order); + log.info("订单状态更新成功,订单号: {}", orderNo); + } } diff --git a/mt-pay/src/main/resources/application-dev.yml b/mt-pay/src/main/resources/application-dev.yml index a24bad5..9f7c9b7 100644 --- a/mt-pay/src/main/resources/application-dev.yml +++ b/mt-pay/src/main/resources/application-dev.yml @@ -65,3 +65,14 @@ pingpong: gateway: https://sandbox-acquirer-payment.pingpongx.com mode: sandbox +# PayPal支付配置(开发环境使用沙箱) +paypal: + # PayPal Client ID(API密钥) + client-id: AdGYUZpvLuHR30dybOApvM-RNB1pVKtd74SVfh-6TK52xV-1JEBddHVMCWuDdyyHri4DXd4kABBi7Icb + # PayPal Client Secret(密钥) + client-secret: ENblspyRmwsOU_PWFurlhEYUF5Da6aYKl0pjK4ehm7p3R5aSqvbpaF_YsIIs8v0ty1c9WJu15XP-Fe_1 + # 环境模式:sandbox(沙箱)或 production(生产) + mode: sandbox + # 是否启用PayPal支付 + enabled: true +