diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/PayController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/PayController.java index d88850e4..3109da4a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/PayController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/PayController.java @@ -329,32 +329,70 @@ public class PayController { } } - @GetMapping(value = "/trd/notify/v8") + @RequestMapping(value = "/trd/notify/wx/{type}", method = {RequestMethod.POST, RequestMethod.GET}) @Operation(hidden = true) - @Log(title = "第三方支付回调V8", businessType = BusinessType.OTHER, isSaveDb = false) + @Log(title = "第三方微信支付回调", businessType = BusinessType.OTHER, isSaveDb = false) @SaIgnore - public String trdNotifyUrlV8(HttpServletRequest request) { + public String trdWxNotifyUrl(HttpServletRequest request,@PathVariable("type") String type) { try { - TrdPayTypeEnum trdPayTypeEnum = TrdPayTypeEnum.V8; + if(type == null){ + log.error("收到第三方微信支付回调,支付类型为空"); + return "failure"; + } + TrdPayTypeEnum trdPayTypeEnum = TrdPayTypeEnum.getByCode(type.toUpperCase()); + if(trdPayTypeEnum == null){ + log.error("收到第三方微信支付回调,未找到支付类型 type={}",type); + return "failure"; + } Map params = AliPayApi.toMap(request); - log.info("收到第三方支付回调 {}:{}",trdPayTypeEnum.name(), JSON.toJSONString(params)); + log.info("收到第三方微信支付回调 {}:{}",trdPayTypeEnum.name(), JSON.toJSONString(params)); NotifyResp notifyResp = trdPayManager.getNotifyResp(params, trdPayTypeEnum); if(!notifyResp.isSuccess()){ return "failure"; } - payManager.callBack(notifyResp.getOrderNo(),notifyResp.getTrdOrderNo(),params,notifyResp.getPayTypeEnum().name(), PayTypeEnum.TRD); + payManager.callBack(notifyResp.getOrderNo(),notifyResp.getTrdOrderNo(),params,notifyResp.getPayTypeEnum().name(), PayTypeEnum.WX); return trdPayTypeEnum.getNotifyResp(); } catch (Exception e) { - log.error("第三方支付回调失败! V8", e); + log.error("第三方支付微信回调失败! type={}",type, e); + return "failure"; + } + } + + @RequestMapping(value = "/trd/notify/ali/{type}", method = {RequestMethod.POST, RequestMethod.GET}) + @Operation(hidden = true) + @Log(title = "第三方支付支付宝回调", businessType = BusinessType.OTHER, isSaveDb = false) + @SaIgnore + public String trdAliNotifyUrl(HttpServletRequest request,@PathVariable("type") String type) { + try { + if(type == null){ + log.error("收到第三方支付支付宝回调,支付类型为空"); + return "failure"; + } + TrdPayTypeEnum trdPayTypeEnum = TrdPayTypeEnum.getByCode(type.toUpperCase()); + if(trdPayTypeEnum == null){ + log.error("收到第三方支付支付宝回调,未找到支付类型 type={}",type); + return "failure"; + } + Map params = AliPayApi.toMap(request); + log.info("收到第三方支付支付宝回调 {}:{}",trdPayTypeEnum.name(), JSON.toJSONString(params)); + NotifyResp notifyResp = trdPayManager.getNotifyResp(params, trdPayTypeEnum); + if(!notifyResp.isSuccess()){ + return "failure"; + } + payManager.callBack(notifyResp.getOrderNo(),notifyResp.getTrdOrderNo(),params,notifyResp.getPayTypeEnum().name(), PayTypeEnum.ALI); + return trdPayTypeEnum.getNotifyResp(); + } catch (Exception e) { + log.error("第三方支付支付宝回调失败! type={}",type, e); return "failure"; } } - @PostMapping(value = "/trd/notify/{type}") + @RequestMapping(value = "/trd/notify/{type}", method = {RequestMethod.POST, RequestMethod.GET}) @Operation(hidden = true) @Log(title = "第三方支付回调", businessType = BusinessType.OTHER, isSaveDb = false) @SaIgnore + @Deprecated public String trdNotifyUrl(HttpServletRequest request,@PathVariable("type") String type) { try { if(type == null){ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/filter/EncryptionFilter.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/filter/EncryptionFilter.java index fd6ae681..2d085b90 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/filter/EncryptionFilter.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/filter/EncryptionFilter.java @@ -24,11 +24,11 @@ public class EncryptionFilter implements Filter { IGNORE_URL.add("/api/pay/wx/notify"); IGNORE_URL.add("/api/yx/im/notify"); IGNORE_URL.add("/api/yx/im/check"); - TrdPayTypeEnum[] values = TrdPayTypeEnum.values(); - for (TrdPayTypeEnum value : values) { - IGNORE_URL.add(value.getNotifyPath()); - } + IGNORE_URL.add("/api/pay/trd/notify/wx/*"); + IGNORE_URL.add("/api/pay/trd/notify/ali/*"); + IGNORE_URL.add("/api/pay/trd/notify/*"); } + private static final AntPathMatcher ANT_PATH_MATCHER = new AntPathMatcher(); private static final String KEY = "UPsfSES4456W8ILv"; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ConsumerManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ConsumerManager.java index 25ed4ac9..4ef10ce8 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ConsumerManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ConsumerManager.java @@ -215,4 +215,6 @@ public class ConsumerManager { } return resp; } + + } 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 1075c1dc..0c15867b 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 @@ -273,7 +273,7 @@ public class PayManager { return resp; } - public void updatePayType(String orderNo, String type) { + public void updatePayType(String orderNo, String type,PlatformTypeEnum typeEnum) { OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo); if(orderTypeEnum == null){ log.error("订单类型有误!orderNo={}",orderNo); @@ -283,11 +283,13 @@ public class PayManager { case VIP_ORDER_SUB: vipOrderService.update(Wrappers.lambdaUpdate(VipOrder.class) .eq(VipOrder::getOrderNo, orderNo) + .set(VipOrder::getPlatformType, typeEnum == null ? null : typeEnum.getCode()) .set(VipOrder::getAppid, type)); break; case RECHARGE_ORDER_SUB: rechargeOrderService.update(Wrappers.lambdaUpdate(RechargeOrder.class) .eq(RechargeOrder::getOrderNo, orderNo) + .set(RechargeOrder::getPlatformType, typeEnum == null ? null : typeEnum.getCode()) .set(RechargeOrder::getAppid, type)); break; default: diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayTypeEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayTypeEnum.java index 18a26bfa..21dfe1d8 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayTypeEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayTypeEnum.java @@ -3,6 +3,7 @@ package com.ruoyi.cai.pay; import lombok.Getter; @Getter +@Deprecated public enum PayTypeEnum { ALI(1), WX(2), diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/PayTotalServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/PayTotalServiceImpl.java index b15eb6d3..cbfa76d9 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/PayTotalServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/PayTotalServiceImpl.java @@ -49,7 +49,7 @@ public class PayTotalServiceImpl extends ServiceImpl im one = new PayTotal(); one.setPayId(appId); one.setDate(LocalDate.now()); - one.setPayType(payTypeEnum.getCode()); + one.setPayType(payTypeEnum == null ? PayTypeEnum.ALI.getCode() : payTypeEnum.getCode()); one.setMoney(BigDecimal.ZERO); this.save(one); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/PayTrdConfigServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/PayTrdConfigServiceImpl.java index db5f014a..673a8598 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/PayTrdConfigServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/PayTrdConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.ruoyi.cai.mapper.PayTrdConfigMapper; import com.ruoyi.cai.pay.PayManager; import com.ruoyi.cai.pay.PayOrderInfoDTO; import com.ruoyi.cai.pay.PayReturnResp; +import com.ruoyi.cai.pay.PlatformTypeEnum; import com.ruoyi.cai.service.OrderLogsService; import com.ruoyi.cai.service.PayTrdConfigService; import com.ruoyi.cai.trdpay.TrdPayManager; @@ -87,7 +88,7 @@ public class PayTrdConfigServiceImpl extends ServiceImpl sourceData); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/TrdPayTypeEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/TrdPayTypeEnum.java index ae920b11..03c0f356 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/TrdPayTypeEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/TrdPayTypeEnum.java @@ -108,6 +108,7 @@ public enum TrdPayTypeEnum { private final String notifyPath; private final String notifyResp; + TrdPayTypeEnum(String gatewayUrl, String createOrderUrl, String queryOrderUrl, String notifyPath, String notifyResp) { this.gatewayUrl = gatewayUrl; this.createOrderUrl = createOrderUrl; @@ -116,7 +117,6 @@ public enum TrdPayTypeEnum { this.notifyResp = notifyResp; } - public static TrdPayTypeEnum getByCode(String type) { TrdPayTypeEnum[] values = TrdPayTypeEnum.values(); for (TrdPayTypeEnum value : values) { @@ -126,4 +126,15 @@ public enum TrdPayTypeEnum { } return null; } + + private final static String NOTIFY_WX_PATH = "/api/pay/trd/notify/wx/"; + private final static String NOTIFY_ALI_PATH = "/api/pay/trd/notify/ali/"; + + public String getNotifyUrl(String domain,boolean wx){ + if(wx){ + return domain + NOTIFY_WX_PATH + name().toLowerCase(); + }else{ + return domain + NOTIFY_ALI_PATH + name().toLowerCase(); + } + } } 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 3fe29524..f11e2e25 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,13 +48,10 @@ public class PayTrdV1Service implements PayTrdService { params.put("productId", payTrdConfig.getProductId(wx)); params.put("mchOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceFenStr()); - String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("notifyUrl", notifyUrl); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); String url = createOrderUrl + "?" + para; String body = rest.getForEntity(url, String.class).getBody(); 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 4ca5a068..6d4d8aec 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,13 +57,10 @@ public class PayTrdV2Service implements PayTrdService { params.put("subject",payOrderInfoDTO.getSubject()); params.put("body",payOrderInfoDTO.getBody()); params.put("currency","cny"); - String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("notifyUrl", notifyUrl); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); String url = createOrderUrl + "?" + para; String body = rest.getForEntity(url, String.class).getBody(); 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 7ac401de..e5b1a492 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,13 +46,10 @@ public class PayTrdV3Service implements PayTrdService { params.put("productId", payTrdConfig.getProductId(wx)); params.put("mchOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceFenStr()); - String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("notifyUrl", notifyUrl); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); String url = createOrderUrl + "?" + para; String body = rest.getForEntity(url, String.class).getBody(); 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 21abe9b5..a5f0cd85 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,14 +45,11 @@ public class PayTrdV4Service implements PayTrdService { params.put("tradeType", payTrdConfig.getProductId(wx)); params.put("merchantPayNo", payOrderInfoDTO.getOrderNo()); params.put("amt", payOrderInfoDTO.getPrice().toString()); - String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("notifyUrl", notifyUrl); params.put("goodsName",payOrderInfoDTO.getBody()); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); String url = createOrderUrl + "?" + para; String body = rest.postForObject(url, null, String.class); 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 992da572..4255af3d 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 @@ -6,6 +6,7 @@ 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.pay.PayTypeEnum; import com.ruoyi.cai.service.OrderLogsService; import com.ruoyi.cai.trdpay.PayMd5Util; import com.ruoyi.cai.trdpay.PayTrdService; @@ -53,17 +54,14 @@ 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 = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("pay_notifyurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); MultiValueMap map = PayMd5Util.createParamsOfMap(params, payTrdConfig.getSign(), "pay_md5sign"); map.add("pay_productname",payOrderInfoDTO.getBody()); map.add("pay_ip", ServletUtils.getClientIP()); map.add("pay_userid", LoginHelper.getUserId()+""); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); @@ -105,30 +103,41 @@ public class PayTrdV5Service implements PayTrdService { @Override public JSONObject queryOrder(String orderNo, PayTrdConfig payTrdConfig) { + RestTemplate rest = RestTemplateUtil.getRest(); TrdPayTypeEnum type = getType(); Map params = new HashMap<>(); - params.put("merchantId", payTrdConfig.getMchId()); - params.put("merchantPayNo", orderNo); - String para = PayMd5Util.createParams(params,payTrdConfig.getSign()); - String gatewayUrl = type.getGatewayUrl(); - if(StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())){ - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + params.put("pay_memberid", payTrdConfig.getMchId()); + params.put("pay_orderid", orderNo); + MultiValueMap map = PayMd5Util.createParamsOfMap(params, payTrdConfig.getSign(), "pay_md5sign"); + String gatewayUrl = getGatewayUrl(payTrdConfig); String queryOrderUrl = gatewayUrl + type.getQueryOrderUrl(); - String url = queryOrderUrl + "?" + para; - String body = RestTemplateUtil.getRest().getForEntity(url, String.class).getBody(); + String body = RestTemplateUtil.postFormData(rest, queryOrderUrl, map); JSONObject jsonObject = JSON.parseObject(body); if(jsonObject == null){ - log.error("第三方支付查询失败 返回数据为空 URL={}",url); + log.error("第三方支付查询失败 返回数据为空 URL={} query={}",queryOrderUrl,JSON.toJSONString(map)); throw new ServiceException("调用支付失败"); } - log.info("第三方支付查询成功 V5 URL={}, body={}",url, body); + log.info("第三方支付查询成功 V5 URL={}, query={}, body={}",queryOrderUrl,JSON.toJSONString(map), body); return jsonObject; } @Override public JSONObject resetOrder(String orderNo, PayTrdConfig payTrdConfig, boolean updateData) { - throw new ServiceException("V5不支持订单查询"); + JSONObject jsonObject = this.queryOrder(orderNo,payTrdConfig); + if(!"00".equals(jsonObject.getString("returncode"))){ + log.info("第三方支付失败 V5统一支付查询订单失败 orderNo={}, payTrdConfig={}", orderNo, JSON.toJSONString(payTrdConfig)); + throw new ServiceException("V5统一支付查询订单失败"); + } + String status = jsonObject.getString("trade_state"); + if("SUCCESS".equals(status)){ + if(updateData){ + Map params = new HashMap<>(); + params.put("str", "主动查询出来的结果"); + params.put("data", JSON.toJSONString(jsonObject)); + payManager.callBack(orderNo,null,params,"V5", null); + } + } + return jsonObject; } } 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 7a1c178f..319d499f 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,16 +50,13 @@ 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 = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("notifyUrl", notifyUrl); params.put("subject",payOrderInfoDTO.getSubject()); params.put("body",payOrderInfoDTO.getBody()); params.put("clientIp", ServletUtils.getClientIP()); String para = PayMd5Util.createParams(params, payTrdConfig.getSign()); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); String url = createOrderUrl + "?" + para; String body = rest.postForObject(url, null, String.class); 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 5c6719ae..c6a026aa 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,16 +52,13 @@ public class PayTrdV7Service implements PayTrdService { params.put("channelType", payTrdConfig.getProductId(wx)); params.put("merchantOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceYuanStr()); - String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("notifyUrl", notifyUrl); params.put("ip", ServletUtils.getClientIP()); params.put("title", payOrderInfoDTO.getSubject()); params.put("describe", payOrderInfoDTO.getBody()); MultiValueMap map = PayMd5Util.createParamsOfMap(params, payTrdConfig.getSign()); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); 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 0dc16db3..00658f4d 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,16 +73,13 @@ public class PayTrdV8Service implements PayTrdService { params.put("device", "mobile"); params.put("type", "alipay"); params.put("out_trade_no", payOrderInfoDTO.getOrderNo()); - String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("notify_url", notifyUrl); params.put("name", payOrderInfoDTO.getSubject()); params.put("money", payOrderInfoDTO.getPriceYuanStr()); params.put("clientip", ServletUtils.getClientIP()); MultiValueMap map = createParamsOfMap(params, payTrdConfig.getSign()); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); 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 c54ebd23..8466522b 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,15 +48,12 @@ 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 = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); + String notifyUrl = type.getNotifyUrl(payTrdConfig.getNotifyUrl(), wx); params.put("pay_notifyurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); MultiValueMap map = PayMd5Util.createParamsOfMap(params, payTrdConfig.getSign(), "pay_md5sign"); map.add("pay_productname",payOrderInfoDTO.getBody()); - String gatewayUrl = type.getGatewayUrl(); - if (StringUtils.isNotBlank(payTrdConfig.getGatewayUrl())) { - gatewayUrl = payTrdConfig.getGatewayUrl(); - } + String gatewayUrl = getGatewayUrl(payTrdConfig); String createOrderUrl = gatewayUrl + type.getCreateOrderUrl(); String body = RestTemplateUtil.postFormData(rest, createOrderUrl, map); JSONObject jsonObject = JSON.parseObject(body);