33333333333

This commit is contained in:
777
2025-01-18 00:50:39 +08:00
parent a096f565e1
commit 1a9802a916
20 changed files with 92 additions and 52 deletions

3
doc/2025-01-18.sql Normal file
View File

@@ -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`;

View File

@@ -38,7 +38,7 @@ public class CityController {
@PostMapping("/createOrder")
public R<Object> createOrder(@RequestBody PayOrderInfoDTO dto){
PayReturnResp orderAli = payTrdConfigService.createOrderAli(dto);
PayReturnResp orderAli = payTrdConfigService.createOrderAli(dto,false);
return R.ok(orderAli);
}

View File

@@ -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<PayReturnResp> 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<PayReturnResp> trdWxPay(@RequestBody PayControllerDTO dto){
public R<PayReturnResp> 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){

View File

@@ -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));
}

View File

@@ -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;
}
}

View File

@@ -21,5 +21,5 @@ public interface OrderLogsService extends IService<OrderLogs> {
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);
}

View File

@@ -15,7 +15,7 @@ import com.ruoyi.cai.pay.PayReturnResp;
public interface PayTrdConfigService extends IService<PayTrdConfig> {
void resetPayTrdConfig();
PayReturnResp createOrderAli(PayOrderInfoDTO dto);
PayReturnResp createOrderAli(PayOrderInfoDTO dto, boolean wx);
JSONObject queryOrder(String orderNo, String trdPayType);

View File

@@ -49,11 +49,10 @@ public class OrderLogsServiceImpl extends ServiceImpl<OrderLogsMapper, OrderLogs
}
@Override
public void createAliPayLogs(String orderNo, String inParams, JSONObject jsonObject, boolean success,TrdPayTypeEnum typeEnum){
public void createAliPayLogs(String orderNo, String inParams, JSONObject jsonObject, boolean success,TrdPayTypeEnum typeEnum,String stepName){
OrderLogs orderLogs = new OrderLogs();
orderLogs.setOrderNo(orderNo);
orderLogs.setStepName("四方支付宝支付请求日志");
orderLogs.setSuccess("请求日志");
orderLogs.setStepName(stepName);
orderLogs.setInParams(JSON.toJSONString(new UrlJson(inParams)));
orderLogs.setOutParams(JSON.toJSONString(jsonObject));
orderLogs.setFlagName(typeEnum.name());

View File

@@ -67,8 +67,7 @@ public class PayTrdConfigServiceImpl extends ServiceImpl<PayTrdConfigMapper, Pay
}
@Override
public PayReturnResp createOrderAli(PayOrderInfoDTO dto){
// PayTrdConfig payTrdConfig = getEnableStatus();
public PayReturnResp createOrderAli(PayOrderInfoDTO dto, boolean wx){
String payCustom = systemConfigManager.getSystemConfig(SystemConfigEnum.PAY_CUSTOM);
PayTrdConfig payTrdConfig = null;
if(StringUtils.isNotEmpty(payCustom)){
@@ -78,7 +77,7 @@ public class PayTrdConfigServiceImpl extends ServiceImpl<PayTrdConfigMapper, Pay
}
}
if(payTrdConfig == null){
payTrdConfig = getConfig(dto.getPrice());
payTrdConfig = getConfig(dto.getPrice(),wx);
}
if(payTrdConfig == null){
throw new ServiceException("未开启支付,请联系客服");
@@ -87,17 +86,23 @@ public class PayTrdConfigServiceImpl extends ServiceImpl<PayTrdConfigMapper, Pay
if(typeEnum == null){
throw new ServiceException("未开启支付,请联系客服");
}
log.info("使用支付 {}", payTrdConfig.getType());
log.info("使用支付 {} wx={}", payTrdConfig.getType(), wx);
payManager.updatePayType(dto.getOrderNo(), payTrdConfig.getType());
return trdPayManager.createOrderAliMerge(dto, payTrdConfig, typeEnum);
return trdPayManager.createOrderAliMerge(dto, payTrdConfig, typeEnum, wx);
}
private PayTrdConfig getConfig(BigDecimal amount){
private PayTrdConfig getConfig(BigDecimal amount,boolean wx){
List<PayTrdConfig> list = new ArrayList<>();
for(PayTrdConfig payTrdConfig : PAY_TRD_CONFIG_LIST){
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);
continue;

View File

@@ -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<String,String> sourceData);

View File

@@ -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<String,String> sourceData,TrdPayTypeEnum typeEnum){

View File

@@ -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<String, String> 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("调用支付失败");

View File

@@ -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<String, String> 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("调用支付失败");

View File

@@ -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<String, String> 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("调用支付失败");

View File

@@ -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<String, String> 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("调用支付失败");

View File

@@ -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<String, String> 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("调用支付失败");

View File

@@ -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<String, String> 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("调用支付失败");

View File

@@ -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<String, String> 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("调用支付失败");

View File

@@ -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<String, String> 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("调用支付失败");

View File

@@ -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<String, String> 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("调用支付失败");