diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java index 7970e9fc..05ca8083 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java @@ -97,6 +97,7 @@ public enum SystemConfigEnum { ANCHOR_JOIN_AGREEMENT("/#/agreement/anchor-join", "主播入驻协议地址",SystemConfigGroupEnum.DOMAIN), WS_SOCKET_URL("ws://localhost:8080/ws?token=%s&room_id=%s", "ws通讯地址",SystemConfigGroupEnum.DOMAIN), UPLOAD_FILE_DOMAIN("http://127.0.0.1:8080", "文件上传域名服务器",SystemConfigGroupEnum.DOMAIN), + PAY_NOTIFY_URL("http://127.0.0.1:8080", "域名回调",SystemConfigGroupEnum.DOMAIN), // 七牛云 ?imageView2/2/w/120/h/120 // 腾讯云 ?thumbnail=120y120&imageView IM_ICON_SUFFIX("?thumbnail=120y120&imageView", "im头像后缀",SystemConfigGroupEnum.DOMAIN), diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java index 725d2d26..ea08324d 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.domain.AlipayTradeQueryModel; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ijpay.alipay.AliPayApi; import com.ijpay.alipay.AliPayApiConfig; @@ -12,22 +13,23 @@ import com.ijpay.core.enums.SignType; import com.ijpay.core.kit.WxPayKit; import com.ijpay.wxpay.WxPayApi; import com.ijpay.wxpay.model.OrderQueryModel; -import com.ruoyi.cai.domain.Goods; -import com.ruoyi.cai.domain.PayConfig; -import com.ruoyi.cai.domain.RechargeOrder; -import com.ruoyi.cai.domain.VipOrder; +import com.ruoyi.cai.domain.*; import com.ruoyi.cai.dto.ConsumeResp; import com.ruoyi.cai.dto.app.vo.pay.OrderPayStatusResp; import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp; +import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.manager.AwardManager; import com.ruoyi.cai.manager.ConsumerManager; +import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.pay.model.PayQueryModel; import com.ruoyi.cai.service.*; +import com.ruoyi.cai.trdpay.TrdPayTypeEnum; import com.ruoyi.common.exception.ServiceException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -51,6 +53,27 @@ public class PayManager { private PayConfigManager payConfigManager; @Autowired private GoodsService goodsService; + @Autowired + private SystemConfigManager systemConfigManager; + + + public String getNotifyDomain(String notifyUrl) { + if(!StringUtils.isBlank(notifyUrl)){ + return notifyUrl; + }else{ + String baseNotifyUrl = systemConfigManager.getSystemConfig(SystemConfigEnum.PAY_NOTIFY_URL); + return baseNotifyUrl; + } + } + + public String getNotifyUrl(PayTrdConfig config, TrdPayTypeEnum type,boolean wx) { + if(!StringUtils.isBlank(config.getNotifyUrl())){ + return type.getNotifyUrl(config.getNotifyUrl(),wx); + }else{ + String notifyUrl = systemConfigManager.getSystemConfig(SystemConfigEnum.PAY_NOTIFY_URL); + return type.getNotifyUrl(notifyUrl,wx); + } + } public PayQueryModel queryOrder(PayConfig payConfig,String orderNo,String appid) throws AlipayApiException { if(PayTypeEnum.ALI.getCode().equals(payConfig.getPayType())){ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/V14Manager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/V14Manager.java index 28708c46..de813bfe 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/V14Manager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/V14Manager.java @@ -90,7 +90,7 @@ public class V14Manager { String customerCode = payTrdConfig.getMchId(); long payAmount = payOrderInfoDTO.getPriceFen(); // 支付金额,分为单位 String payCurrency = "CNY"; // 币种,写死 - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), true); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, true); String transactionStartTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); // 交易开始时间 // String transactionEndTime = ""; // 交易结束时间 WxJsOrderInfo orderInfo = new WxJsOrderInfo(); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV10Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV10Service.java index 1679803c..0fe5b256 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV10Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV10Service.java @@ -52,7 +52,7 @@ public class PayTrdV10Service implements PayTrdService { params.put("pay_orderid", payOrderInfoDTO.getOrderNo()); params.put("pay_applydate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); params.put("pay_bankcode", payTrdConfig.getProductId(wx)); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("pay_notifyurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); MultiValueMap map = PayMd5Util.createParamsOfMap(params, payTrdConfig.getSign(), "pay_md5sign"); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV11Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV11Service.java index 641f1eae..789bea1c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV11Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV11Service.java @@ -52,7 +52,7 @@ public class PayTrdV11Service implements PayTrdService { params.put("pay_orderid", payOrderInfoDTO.getOrderNo()); params.put("pay_applydate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); params.put("pay_bankcode", payTrdConfig.getProductId(wx)); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("pay_notifyurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); MultiValueMap map = PayMd5Util.createParamsOfMap(params, payTrdConfig.getSign(), "pay_md5sign"); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV12Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV12Service.java index dbb715c4..e9d0d380 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV12Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV12Service.java @@ -107,7 +107,7 @@ public class PayTrdV12Service implements PayTrdService { }else { bizRequest.setFuncCodeList(Collections.singletonList(FuncCodeEnum.FC02020004.getCode())); } - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); payerInfo.setFrontUrl(notifyUrl); payerInfo.setPayExtra(payExtraList); bizRequest.setPayerInfo(payerInfo); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV13Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV13Service.java index 73b3d517..468fa98a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV13Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV13Service.java @@ -51,7 +51,7 @@ public class PayTrdV13Service implements PayTrdService { params.put("type", "alipay"); } params.put("out_trade_no", payOrderInfoDTO.getOrderNo()); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("notify_url", notifyUrl); // params.put("return_url", notifyUrl); params.put("name", payOrderInfoDTO.getSubject()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV14Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV14Service.java index bc0a4b00..53bb70c1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV14Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV14Service.java @@ -3,6 +3,7 @@ package com.ruoyi.cai.trdpay.handle; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.cai.domain.PayTrdConfig; +import com.ruoyi.cai.pay.PayManager; import com.ruoyi.cai.pay.PayOrderInfoDTO; import com.ruoyi.cai.pay.PayReturnResp; import com.ruoyi.cai.trdpay.PayTrdService; @@ -23,6 +24,8 @@ import java.util.Map; @Slf4j public class PayTrdV14Service implements PayTrdService { + @Autowired + private PayManager payManager; @Autowired private V14Manager v14Manager; @@ -39,8 +42,8 @@ public class PayTrdV14Service implements PayTrdService { v14PayResp.setPrice(payOrderInfoDTO.getPrice()); v14PayResp.setSubject(payOrderInfoDTO.getSubject()); v14PayResp.setOrderNo(payOrderInfoDTO.getOrderNo()); - String notifyUrl = payTrdConfig.getNotifyUrl(); - String api = notifyUrl.replace("https://", "").replace("http://", ""); + String notifyDomain = payManager.getNotifyDomain(payTrdConfig.getNotifyUrl()); + String api = notifyDomain.replace("https://", "").replace("http://", ""); v14PayResp.setApi(api); return PayReturnResp.createEfps(v14PayResp); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV15Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV15Service.java index 68d25255..ea98836c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV15Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV15Service.java @@ -53,7 +53,7 @@ public class PayTrdV15Service implements PayTrdService { }else{ params.put("pay_bankcode", payTrdConfig.getAliProductId()); } - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("pay_notifyurl", notifyUrl); params.put("pay_callbackurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV1Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV1Service.java index f11e2e25..6fc512b6 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV1Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV1Service.java @@ -48,7 +48,7 @@ public class PayTrdV1Service implements PayTrdService { params.put("productId", payTrdConfig.getProductId(wx)); params.put("mchOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceFenStr()); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("notifyUrl", notifyUrl); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); String gatewayUrl = getGatewayUrl(payTrdConfig); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV2Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV2Service.java index 6d4d8aec..1fc65b5d 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV2Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV2Service.java @@ -57,7 +57,7 @@ public class PayTrdV2Service implements PayTrdService { params.put("subject",payOrderInfoDTO.getSubject()); params.put("body",payOrderInfoDTO.getBody()); params.put("currency","cny"); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("notifyUrl", notifyUrl); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); String gatewayUrl = getGatewayUrl(payTrdConfig); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV3Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV3Service.java index e5b1a492..48ec1b0e 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV3Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV3Service.java @@ -46,7 +46,7 @@ public class PayTrdV3Service implements PayTrdService { params.put("productId", payTrdConfig.getProductId(wx)); params.put("mchOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceFenStr()); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("notifyUrl", notifyUrl); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); String gatewayUrl = getGatewayUrl(payTrdConfig); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV4Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV4Service.java index a5f0cd85..d5e4287a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV4Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV4Service.java @@ -45,7 +45,7 @@ public class PayTrdV4Service implements PayTrdService { params.put("tradeType", payTrdConfig.getProductId(wx)); params.put("merchantPayNo", payOrderInfoDTO.getOrderNo()); params.put("amt", payOrderInfoDTO.getPrice().toString()); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("notifyUrl", notifyUrl); params.put("goodsName",payOrderInfoDTO.getBody()); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV5Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV5Service.java index 4255af3d..21d1c0cd 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV5Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV5Service.java @@ -54,7 +54,7 @@ public class PayTrdV5Service implements PayTrdService { params.put("pay_orderid", payOrderInfoDTO.getOrderNo()); params.put("pay_applydate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); params.put("pay_bankcode", payTrdConfig.getProductId(wx)); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("pay_notifyurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); MultiValueMap map = PayMd5Util.createParamsOfMap(params, payTrdConfig.getSign(), "pay_md5sign"); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV6Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV6Service.java index 319d499f..9a2a3d73 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV6Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV6Service.java @@ -50,7 +50,7 @@ public class PayTrdV6Service implements PayTrdService { params.put("productId", payTrdConfig.getProductId(wx)); params.put("extra", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); params.put("amount", payOrderInfoDTO.getPriceFenStr()); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("notifyUrl", notifyUrl); params.put("subject",payOrderInfoDTO.getSubject()); params.put("body",payOrderInfoDTO.getBody()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV7Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV7Service.java index 2534dd9d..e3577d8b 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV7Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV7Service.java @@ -52,7 +52,7 @@ public class PayTrdV7Service implements PayTrdService { params.put("channelType", payTrdConfig.getProductId(wx)); params.put("merchantOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceYuanStr()); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("notifyUrl", notifyUrl); params.put("ip", ServletUtils.getClientIP()); params.put("title", payOrderInfoDTO.getSubject()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV8Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV8Service.java index 00658f4d..8bc2d058 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV8Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV8Service.java @@ -73,7 +73,7 @@ public class PayTrdV8Service implements PayTrdService { params.put("device", "mobile"); params.put("type", "alipay"); params.put("out_trade_no", payOrderInfoDTO.getOrderNo()); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("notify_url", notifyUrl); params.put("name", payOrderInfoDTO.getSubject()); params.put("money", payOrderInfoDTO.getPriceYuanStr()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV9Service.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV9Service.java index 8466522b..ae90271f 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV9Service.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/handle/PayTrdV9Service.java @@ -48,7 +48,7 @@ public class PayTrdV9Service implements PayTrdService { params.put("pay_orderid", payOrderInfoDTO.getOrderNo()); params.put("pay_applydate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); params.put("pay_bankcode", payTrdConfig.getProductId(wx)); - String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); + String notifyUrl = payManager.getNotifyUrl(payTrdConfig, type, wx); params.put("pay_notifyurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); MultiValueMap map = PayMd5Util.createParamsOfMap(params, payTrdConfig.getSign(), "pay_md5sign");