From 42102fa63633c77e04ae3bb934b833bee5cc2fad Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Mon, 24 Mar 2025 18:50:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=80=80=E6=AC=BE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alipay/controller/AliPayController.java | 19 +------- .../pay/alipay/service/IAliPayService.java | 2 + .../service/impl/AliPayServiceImpl.java | 43 ++++++++++++++++--- 3 files changed, 40 insertions(+), 24 deletions(-) diff --git a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/controller/AliPayController.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/controller/AliPayController.java index b62bd8d..e17576b 100644 --- a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/controller/AliPayController.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/controller/AliPayController.java @@ -22,7 +22,6 @@ import com.alipay.api.domain.AlipayTradeOrderSettleModel; import com.alipay.api.domain.AlipayTradePayModel; import com.alipay.api.domain.AlipayTradePrecreateModel; import com.alipay.api.domain.AlipayTradeQueryModel; -import com.alipay.api.domain.AlipayTradeRefundModel; import com.alipay.api.domain.Participant; import com.alipay.api.internal.util.AlipaySignature; import com.alipay.api.response.AlipayFundAuthOrderFreezeResponse; @@ -386,23 +385,9 @@ public class AliPayController extends AbstractAliPayApiController { * 退款 */ @PostMapping(value = "/tradeRefund") - public String tradeRefund(@RequestParam(required = false, name = "outTradeNo") String outTradeNo, @RequestParam(required = false, name = "tradeNo") String tradeNo) { + public String tradeRefund(@RequestParam Long orderId) { - try { - AlipayTradeRefundModel model = new AlipayTradeRefundModel(); - if (StringUtils.isNotEmpty(outTradeNo)) { - model.setOutTradeNo(outTradeNo); - } - if (StringUtils.isNotEmpty(tradeNo)) { - model.setTradeNo(tradeNo); - } - model.setRefundAmount("0.01"); - model.setRefundReason("正常退款"); - return AliPayApi.tradeRefundToResponse(model).getBody(); - } catch (AlipayApiException e) { - e.printStackTrace(); - } - return null; + return aliPayService.tradeRefund(orderId); } /** diff --git a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/service/IAliPayService.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/service/IAliPayService.java index 4c52e5f..0e6bc6d 100644 --- a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/service/IAliPayService.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/service/IAliPayService.java @@ -15,4 +15,6 @@ public interface IAliPayService { void wapPay(HttpServletResponse response, Long orderId, String returnUrl, String notifyUrl); String notifyUrl(HttpServletRequest request, String publicKey); + + String tradeRefund(Long orderId); } diff --git a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/service/impl/AliPayServiceImpl.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/service/impl/AliPayServiceImpl.java index f20126e..81671c0 100644 --- a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/service/impl/AliPayServiceImpl.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/pay/alipay/service/impl/AliPayServiceImpl.java @@ -1,7 +1,10 @@ package org.wfc.payment.pay.alipay.service.impl; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alipay.api.AlipayApiException; import com.alipay.api.domain.AlipayTradePagePayModel; +import com.alipay.api.domain.AlipayTradeRefundModel; import com.alipay.api.domain.AlipayTradeWapPayModel; import com.alipay.api.internal.util.AlipaySignature; import com.ijpay.alipay.AliPayApi; @@ -33,12 +36,10 @@ public class AliPayServiceImpl implements IAliPayService { @Override public void pcPay(HttpServletResponse response, Long orderId, String returnUrl, String notifyUrl) { try { - R orderRes = remoteUUserService.getOrderById(orderId); - UOrderVo orderVo = orderRes.getData(); - if (orderVo == null) { + String totalAmount = getAmountByOrder(orderId); + if (StrUtil.isBlank(totalAmount)) { return; } - String totalAmount = orderVo.getOrderAmount().setScale(2, RoundingMode.HALF_UP).toString(); log.info("pc outTradeNo>" + orderId); AlipayTradePagePayModel model = new AlipayTradePagePayModel(); @@ -56,14 +57,21 @@ public class AliPayServiceImpl implements IAliPayService { } } - @Override - public void wapPay(HttpServletResponse response, Long orderId, String returnUrl, String notifyUrl) { + private String getAmountByOrder(Long orderId) { R orderRes = remoteUUserService.getOrderById(orderId); UOrderVo orderVo = orderRes.getData(); if (orderVo == null) { + return null; + } + return orderVo.getOrderAmount().setScale(2, RoundingMode.HALF_UP).toString(); + } + + @Override + public void wapPay(HttpServletResponse response, Long orderId, String returnUrl, String notifyUrl) { + String totalAmount = getAmountByOrder(orderId); + if (StrUtil.isBlank(totalAmount)) { return; } - String totalAmount = orderVo.getOrderAmount().setScale(2, RoundingMode.HALF_UP).toString(); String body = "WANFI WAP PAY"; String subject = "WANFI PAY"; @@ -108,4 +116,25 @@ public class AliPayServiceImpl implements IAliPayService { return "failure"; } } + + @Override + public String tradeRefund(Long orderId) { + try { + String totalAmount = getAmountByOrder(orderId); + if (StrUtil.isBlank(totalAmount)) { + return null; + } + + AlipayTradeRefundModel model = new AlipayTradeRefundModel(); + if (ObjectUtil.isNotNull(orderId)) { + model.setOutTradeNo(orderId.toString()); + } + model.setRefundAmount(totalAmount); + model.setRefundReason("normal refund"); + return AliPayApi.tradeRefundToResponse(model).getBody(); + } catch (AlipayApiException e) { + log.error("alipay refund error", e); + } + return null; + } }