From 1a9802a9162dc3dfbd19946e598c050144b64d04 Mon Sep 17 00:00:00 2001 From: 777 <123@qwe.com> Date: Sat, 18 Jan 2025 00:50:39 +0800 Subject: [PATCH] 33333333333 --- doc/2025-01-18.sql | 3 ++ .../cai/admin/init/CityController.java | 2 +- .../web/controller/cai/app/PayController.java | 28 +++++++++++++++++-- .../java/com/ruoyi/test/business/PayTest.java | 2 +- .../com/ruoyi/cai/domain/PayTrdConfig.java | 6 ++++ .../ruoyi/cai/service/OrderLogsService.java | 2 +- .../cai/service/PayTrdConfigService.java | 2 +- .../service/impl/OrderLogsServiceImpl.java | 5 ++-- .../service/impl/PayTrdConfigServiceImpl.java | 21 ++++++++------ .../com/ruoyi/cai/trdpay/PayTrdService.java | 10 ++++++- .../com/ruoyi/cai/trdpay/TrdPayManager.java | 4 +-- .../cai/trdpay/handle/PayTrdV1Service.java | 7 +++-- .../cai/trdpay/handle/PayTrdV2Service.java | 6 ++-- .../cai/trdpay/handle/PayTrdV3Service.java | 6 ++-- .../cai/trdpay/handle/PayTrdV4Service.java | 6 ++-- .../cai/trdpay/handle/PayTrdV5Service.java | 12 ++------ .../cai/trdpay/handle/PayTrdV6Service.java | 6 ++-- .../cai/trdpay/handle/PayTrdV7Service.java | 6 ++-- .../cai/trdpay/handle/PayTrdV8Service.java | 4 +-- .../cai/trdpay/handle/PayTrdV9Service.java | 6 ++-- 20 files changed, 92 insertions(+), 52 deletions(-) create mode 100644 doc/2025-01-18.sql diff --git a/doc/2025-01-18.sql b/doc/2025-01-18.sql new file mode 100644 index 00000000..460d36a6 --- /dev/null +++ b/doc/2025-01-18.sql @@ -0,0 +1,3 @@ +ALTER TABLE `cai_pay_trd_config` +ADD COLUMN `wx_product_id` varchar(100) NULL COMMENT '微信产品号' AFTER `sign`, +ADD COLUMN `enable_wx_status` tinyint(1) NOT NULL DEFAULT 0 AFTER `enable_status`; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/init/CityController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/init/CityController.java index 4f3508fa..bc78bff6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/init/CityController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/init/CityController.java @@ -38,7 +38,7 @@ public class CityController { @PostMapping("/createOrder") public R createOrder(@RequestBody PayOrderInfoDTO dto){ - PayReturnResp orderAli = payTrdConfigService.createOrderAli(dto); + PayReturnResp orderAli = payTrdConfigService.createOrderAli(dto,false); return R.ok(orderAli); } 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 42e9b2bc..b96b7324 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 @@ -86,10 +86,34 @@ public class PayController { return R.ok(orderPayStatusResp); } + @PostMapping(value = "/merge/wx") + @Operation(summary = "微信聚合支付") + @Log(title = "微信聚合支付", businessType = BusinessType.OTHER, isSaveDb = true) + public R trdWxPay(@RequestBody PayControllerDTO dto){ + PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo()); + if(payOrderInfo == null){ + return R.fail(600,"支付失败,未找到订单"); + } + try { + boolean openAliPay = systemConfigManager.getSystemConfigOfBool(SystemConfigEnum.OPEN_WX_PAY); + if(!openAliPay){ + orderLogsService.createBaseFail(dto.getOrderNo(),"四方微信支付","第四方微信未开启"); + return R.fail(600,"微信支付失败!未开启微信通道!"); + } + log.info("微信聚合支付 使用第三方支付 dto={}",JSON.toJSONString(dto)); + PayReturnResp orderAli = payTrdConfigService.createOrderAli(payOrderInfo,true); + return R.ok(orderAli); + }catch (Exception e){ + orderLogsService.createBaseFail(dto.getOrderNo(),"四方支付宝支付",StringUtils.cat(e.getMessage(),2000)); + log.error("微信聚合支付 使用第三方支付失败! dto={}",JSON.toJSONString(dto), e); + return R.fail(600,"支付宝支付失败!"); + } + } + @PostMapping(value = "/merge/ali") @Operation(summary = "支付宝聚合支付") @Log(title = "支付宝聚合支付", businessType = BusinessType.OTHER, isSaveDb = true) - public R trdWxPay(@RequestBody PayControllerDTO dto){ + public R trdAliPay(@RequestBody PayControllerDTO dto){ PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo()); if(payOrderInfo == null){ return R.fail(600,"支付失败,未找到订单"); @@ -104,7 +128,7 @@ public class PayController { return R.fail(600,"支付宝支付失败!未开启支付宝通道!"); } log.info("支付宝聚合支付 使用第三方支付 dto={}",JSON.toJSONString(dto)); - PayReturnResp orderAli = payTrdConfigService.createOrderAli(payOrderInfo); + PayReturnResp orderAli = payTrdConfigService.createOrderAli(payOrderInfo,false); // orderLogsService.createBaseSuccess(dto.getOrderNo(),"四方支付宝支付"); return R.ok(orderAli); }catch (Exception e){ diff --git a/ruoyi-admin/src/test/java/com/ruoyi/test/business/PayTest.java b/ruoyi-admin/src/test/java/com/ruoyi/test/business/PayTest.java index 8a3c6cb2..cc9d8001 100644 --- a/ruoyi-admin/src/test/java/com/ruoyi/test/business/PayTest.java +++ b/ruoyi-admin/src/test/java/com/ruoyi/test/business/PayTest.java @@ -30,7 +30,7 @@ public class PayTest { dto.setSubject("subject"); dto.setPrice(new BigDecimal("10")); dto.setOrderNo("ORSKALKLASJDKLAS"); - PayReturnResp orderAli = payTrdConfigService.createOrderAli(dto); + PayReturnResp orderAli = payTrdConfigService.createOrderAli(dto,false); log.info(JSON.toJSONString(orderAli)); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/PayTrdConfig.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/PayTrdConfig.java index b43a2883..2d27cc4e 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/PayTrdConfig.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/PayTrdConfig.java @@ -51,6 +51,7 @@ public class PayTrdConfig implements Serializable { private String sign; private String aliProductId; + private String wxProductId; private BigDecimal minAmount; private BigDecimal maxAmount; @@ -58,6 +59,7 @@ public class PayTrdConfig implements Serializable { private Integer sortBy; private Integer enableStatus; + private Integer enableWxStatus; /** * 是否删除 */ @@ -65,4 +67,8 @@ public class PayTrdConfig implements Serializable { private LocalDateTime createTime; + public String getProductId(boolean wx){ + return wx?wxProductId:aliProductId; + } + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/OrderLogsService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/OrderLogsService.java index 3af74696..f7db6690 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/OrderLogsService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/OrderLogsService.java @@ -21,5 +21,5 @@ public interface OrderLogsService extends IService { void createBaseSuccess(String orderNo, String stepName); - void createAliPayLogs(String orderNo, String inParams, JSONObject jsonObject, boolean success,TrdPayTypeEnum typeEnum); + void createAliPayLogs(String orderNo, String inParams, JSONObject jsonObject, boolean success,TrdPayTypeEnum typeEnum,String stepName); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/PayTrdConfigService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/PayTrdConfigService.java index 72292f7c..5a7f524a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/PayTrdConfigService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/PayTrdConfigService.java @@ -15,7 +15,7 @@ import com.ruoyi.cai.pay.PayReturnResp; public interface PayTrdConfigService extends IService { void resetPayTrdConfig(); - PayReturnResp createOrderAli(PayOrderInfoDTO dto); + PayReturnResp createOrderAli(PayOrderInfoDTO dto, boolean wx); JSONObject queryOrder(String orderNo, String trdPayType); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/OrderLogsServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/OrderLogsServiceImpl.java index a2588ae4..ae340b72 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/OrderLogsServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/OrderLogsServiceImpl.java @@ -49,11 +49,10 @@ public class OrderLogsServiceImpl extends ServiceImpl list = new ArrayList<>(); for(PayTrdConfig payTrdConfig : PAY_TRD_CONFIG_LIST){ - if(payTrdConfig.getEnableStatus() == 0){ - continue; + if(wx){ + if(payTrdConfig.getEnableWxStatus() == 0){ + continue; + } + }else{ + if(payTrdConfig.getEnableStatus() == 0){ + continue; + } } if(payTrdConfig.getMaxAmount().compareTo(BigDecimal.ZERO) == 0 && payTrdConfig.getMinAmount().compareTo(BigDecimal.ZERO) == 0){ list.add(payTrdConfig); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/PayTrdService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/PayTrdService.java index 3ee3ff69..a0beab40 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/PayTrdService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/PayTrdService.java @@ -11,7 +11,15 @@ import java.util.Map; public interface PayTrdService { TrdPayTypeEnum getType(); - PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig); + default PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig){ + return createOrderAli(payOrderInfoDTO,payTrdConfig,false); + } + + default String getStepName(boolean wx){ + return wx?"四方微信支付":"四方支付宝支付"; + } + + PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig,boolean wx); NotifyResp getNotifyResp(Map sourceData); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/TrdPayManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/TrdPayManager.java index 8888e1e8..1d5f6246 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/TrdPayManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trdpay/TrdPayManager.java @@ -69,9 +69,9 @@ public class TrdPayManager { @Autowired private SystemConfigManager systemConfigManager; - public PayReturnResp createOrderAliMerge(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig,TrdPayTypeEnum typeEnum){ + public PayReturnResp createOrderAliMerge(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig,TrdPayTypeEnum typeEnum, boolean wx){ PayTrdService payTrdService = getPayTrdService(typeEnum.name()); - return payTrdService.createOrderAli(payOrderInfoDTO,payTrdConfig); + return payTrdService.createOrderAli(payOrderInfoDTO,payTrdConfig,wx); } public NotifyResp getNotifyResp(Map sourceData,TrdPayTypeEnum typeEnum){ 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 96b41877..3fe29524 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 @@ -38,13 +38,14 @@ public class PayTrdV1Service implements PayTrdService { return TrdPayTypeEnum.V1; } + @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig,boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getRest(); Map params = new HashMap<>(); params.put("mchId", payTrdConfig.getMchId()); - params.put("productId", payTrdConfig.getAliProductId()); + params.put("productId", payTrdConfig.getProductId(wx)); params.put("mchOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceFenStr()); String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); @@ -59,7 +60,7 @@ public class PayTrdV1Service implements PayTrdService { String body = rest.getForEntity(url, String.class).getBody(); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject, success, type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject, success, type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V1统一支付失败失败 url={} body={}, payTrdConfig={}, typeEnum={}", url, body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败"); 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 426d9b51..4ca5a068 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 @@ -43,12 +43,12 @@ public class PayTrdV2Service implements PayTrdService { } @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig,boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getRest(); Map params = new HashMap<>(); params.put("mchId", payTrdConfig.getMchId()); - params.put("productId", payTrdConfig.getAliProductId()); + params.put("productId", payTrdConfig.getProductId(wx)); params.put("mchOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceFenStr()); params.put("reqTime", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); @@ -69,7 +69,7 @@ public class PayTrdV2Service implements PayTrdService { String body = rest.getForEntity(url, String.class).getBody(); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject, success,type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject, success,type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V2统一支付失败失败 url={} body={}, payTrdConfig={}, typeEnum={}", url, body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败"); 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 1b323345..7ac401de 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 @@ -38,12 +38,12 @@ public class PayTrdV3Service implements PayTrdService { } @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig, boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getRest(); Map params = new HashMap<>(); params.put("mchId", payTrdConfig.getMchId()); - params.put("productId", payTrdConfig.getAliProductId()); + params.put("productId", payTrdConfig.getProductId(wx)); params.put("mchOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceFenStr()); String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); @@ -58,7 +58,7 @@ public class PayTrdV3Service implements PayTrdService { String body = rest.getForEntity(url, String.class).getBody(); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject, success, type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject, success, type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V3 统一支付失败失败 url={} body={}, payTrdConfig={}, typeEnum={}", url,body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败"); 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 6a1ac78f..21abe9b5 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 @@ -37,12 +37,12 @@ public class PayTrdV4Service implements PayTrdService { } @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig, boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getRest(); Map params = new HashMap<>(); params.put("merchantId", payTrdConfig.getMchId()); - params.put("tradeType", payTrdConfig.getAliProductId()); + params.put("tradeType", payTrdConfig.getProductId(wx)); params.put("merchantPayNo", payOrderInfoDTO.getOrderNo()); params.put("amt", payOrderInfoDTO.getPrice().toString()); String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); @@ -58,7 +58,7 @@ public class PayTrdV4Service implements PayTrdService { String body = rest.postForObject(url, null, String.class); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject,success, type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject,success, type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V4 统一支付失败失败 url={} body={}, payTrdConfig={}, typeEnum={}", url, body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败"); 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 7e996f09..992da572 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 @@ -1,9 +1,7 @@ package com.ruoyi.cai.trdpay.handle; -import cn.hutool.crypto.digest.DigestUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -import com.google.api.client.util.SecurityUtils; import com.ruoyi.cai.domain.PayTrdConfig; import com.ruoyi.cai.pay.PayManager; import com.ruoyi.cai.pay.PayOrderInfoDTO; @@ -24,17 +22,13 @@ import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; -import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.stream.Collectors; @Service @Slf4j @@ -51,14 +45,14 @@ public class PayTrdV5Service implements PayTrdService { } @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig,boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getRest(); Map params = new HashMap<>(); params.put("pay_memberid", payTrdConfig.getMchId()); 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.getAliProductId()); + params.put("pay_bankcode", payTrdConfig.getProductId(wx)); String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); params.put("pay_notifyurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); @@ -77,7 +71,7 @@ public class PayTrdV5Service implements PayTrdService { String body = rest.postForObject(createOrderUrl, request, String.class); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), createOrderUrl+JSON.toJSONString(map), jsonObject, success, type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), createOrderUrl+JSON.toJSONString(map), jsonObject, success, type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V5 统一支付失败失败 url={} params={} body={}, payTrdConfig={}, typeEnum={}", createOrderUrl,JSON.toJSONString(map), body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败"); 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 0dddb3e0..7a1c178f 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 @@ -41,13 +41,13 @@ public class PayTrdV6Service implements PayTrdService { } @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig, boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getRest(); Map params = new HashMap<>(); params.put("mchId", payTrdConfig.getMchId()); params.put("mchOrderNo", payOrderInfoDTO.getOrderNo()); - params.put("productId", payTrdConfig.getAliProductId()); + 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(); @@ -65,7 +65,7 @@ public class PayTrdV6Service implements PayTrdService { String body = rest.postForObject(url, null, String.class); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject, success, type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), url, jsonObject, success, type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V6 统一支付失败失败 url={} body={}, payTrdConfig={}, typeEnum={}", url, body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败"); 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 adfadfd5..5c6719ae 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 @@ -44,12 +44,12 @@ public class PayTrdV7Service implements PayTrdService { } @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig, boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getNoSSLRest(); Map params = new HashMap<>(); params.put("merchantCode", payTrdConfig.getMchId()); - params.put("channelType", payTrdConfig.getAliProductId()); + params.put("channelType", payTrdConfig.getProductId(wx)); params.put("merchantOrderNo", payOrderInfoDTO.getOrderNo()); params.put("amount", payOrderInfoDTO.getPriceYuanStr()); String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); @@ -69,7 +69,7 @@ public class PayTrdV7Service implements PayTrdService { String body = rest.postForObject(createOrderUrl, request, String.class); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), createOrderUrl+JSON.toJSONString(map), jsonObject, success, type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), createOrderUrl+JSON.toJSONString(map), jsonObject, success, type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V7 统一支付失败失败 url={} params={} body={}, payTrdConfig={}, typeEnum={}", createOrderUrl,JSON.toJSONString(map), body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败"); 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 46033e1a..0dc16db3 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 @@ -65,7 +65,7 @@ public class PayTrdV8Service implements PayTrdService { @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig, boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getNoSSLRest(); Map params = new HashMap<>(); @@ -90,7 +90,7 @@ public class PayTrdV8Service implements PayTrdService { String body = rest.postForObject(createOrderUrl, request, String.class); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), createOrderUrl+JSON.toJSONString(map), jsonObject,success, type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), createOrderUrl+JSON.toJSONString(map), jsonObject,success, type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V8 统一支付失败失败 url={} params={} body={}, payTrdConfig={}, typeEnum={}", createOrderUrl,JSON.toJSONString(map), body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败"); 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 c0730ddc..c54ebd23 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 @@ -40,14 +40,14 @@ public class PayTrdV9Service implements PayTrdService { } @Override - public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig) { + public PayReturnResp createOrderAli(PayOrderInfoDTO payOrderInfoDTO, PayTrdConfig payTrdConfig, boolean wx) { TrdPayTypeEnum type = getType(); RestTemplate rest = RestTemplateUtil.getRest(); Map params = new HashMap<>(); params.put("pay_memberid", payTrdConfig.getMchId()); 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.getAliProductId()); + params.put("pay_bankcode", payTrdConfig.getProductId(wx)); String notifyUrl = payTrdConfig.getNotifyUrl() + type.getNotifyPath(); params.put("pay_notifyurl", notifyUrl); params.put("pay_amount", payOrderInfoDTO.getPriceYuanStr()); @@ -61,7 +61,7 @@ public class PayTrdV9Service implements PayTrdService { String body = RestTemplateUtil.postFormData(rest, createOrderUrl, map); JSONObject jsonObject = JSON.parseObject(body); boolean success = checkSuccess(jsonObject); - orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), createOrderUrl+JSON.toJSONString(map), jsonObject, success, type); + orderLogsService.createAliPayLogs(payOrderInfoDTO.getOrderNo(), createOrderUrl+JSON.toJSONString(map), jsonObject, success, type, getStepName(wx)); if(!success){ log.info("第三方支付失败 V9 统一支付失败失败 url={} params={} body={}, payTrdConfig={}, typeEnum={}", createOrderUrl,JSON.toJSONString(map), body, JSON.toJSONString(payTrdConfig), JSON.toJSONString(jsonObject)); throw new ServiceException("调用支付失败");