From 8c924da2dcfb45b29527a6d5c4d473b16d73689d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= Date: Tue, 2 Sep 2025 14:51:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(pay):=20=E6=9B=B4=E6=96=B0=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E6=94=AF=E4=BB=98=E5=9B=9E=E8=B0=83URL=E5=92=8C?= =?UTF-8?q?=E9=87=8D=E5=AE=9A=E5=90=91URI=E4=BB=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=BE=AE=E6=9C=8D=E5=8A=A1=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改WeChatMpPayOrderHandler中notify_url路径逻辑适配微服务环境 - 调整PayGoodsOrderController中redirect_uri构造方式支持微服务路由 - 使用WebUtils.isMicro()动态判断当前运行环境 - 统一支付模块在微服务和单体架构下的URL路径格式 --- .../pigx/pay/controller/PayGoodsOrderController.java | 6 ++++-- .../pigx/pay/handler/impl/WeChatMpPayOrderHandler.java | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/controller/PayGoodsOrderController.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/controller/PayGoodsOrderController.java index 0126f11e6..c56b5c657 100755 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/controller/PayGoodsOrderController.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/controller/PayGoodsOrderController.java @@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.databind.ObjectMapper; import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.core.util.WebUtils; import com.pig4cloud.pigx.common.data.tenant.TenantContextHolder; import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel; import com.pig4cloud.pigx.common.log.annotation.SysLog; @@ -107,8 +108,9 @@ public class PayGoodsOrderController { String wxUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s" + "&redirect_uri=%s&response_type=code&scope=snsapi_base&state=%s"; - String redirectUri = String.format("%s/admin/goods/wx?amount=%s&TENANT-ID=%s", channel.getNotifyUrl(), - goods.getAmount(), TenantContextHolder.getTenantId()); + String redirectUri = String.format("%s/api/%s/goods/wx?amount=%s&TENANT-ID=%s", + WebUtils.isMicro() ? "pay" : "admin", channel.getNotifyUrl(), goods.getAmount(), + TenantContextHolder.getTenantId()); response.sendRedirect( String.format(wxUrl, channel.getAppId(), URLUtil.encode(redirectUri), channel.getAppId())); diff --git a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/WeChatMpPayOrderHandler.java b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/WeChatMpPayOrderHandler.java index 40cb0f863..648bc95e3 100644 --- a/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/WeChatMpPayOrderHandler.java +++ b/pigx-visual/pigx-pay-platform/src/main/java/com/pig4cloud/pigx/pay/handler/impl/WeChatMpPayOrderHandler.java @@ -129,7 +129,8 @@ public class WeChatMpPayOrderHandler extends AbstractPayOrderHandler { .out_trade_no(String.valueOf(tradeOrder.getOrderId())) .total_fee(goodsOrder.getAmount()) .spbill_create_ip(ip) - .notify_url(String.format("%s/api/%s/notify/wx/callbak", ChannelPayApiConfigKit.get().getNotifyUrl(), WebUtils.isMicro() ? "pay" : "admin")) + .notify_url(String.format("%s/api/%s/notify/wx/callbak", ChannelPayApiConfigKit.get().getNotifyUrl(), + WebUtils.isMicro() ? "pay" : "admin")) .trade_type(TradeType.JSAPI.getTradeType()) .openid(goodsOrder.getUserId()) .build()