Parcourir la source

fix: 订单超时时间

xdd il y a 1 mois
Parent
commit
5a1aab8589

+ 14 - 3
fs-api/src/main/java/com/fs/app/controller/PayController.java

@@ -9,6 +9,7 @@ import com.fs.common.config.FSSysConfig;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.utils.StringUtils;
+import com.fs.common.utils.spring.SpringUtils;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.erp.service.IErpOrderService;
@@ -26,11 +27,15 @@ import com.fs.store.domain.FsStorePayment;
 import com.fs.store.domain.TzConfigInfoDTO;
 import com.fs.store.service.*;
 import com.fs.store.vo.PrescribeVO;
+import com.fs.system.domain.SysConfig;
+import com.fs.system.mapper.SysConfigMapper;
 import com.fs.tzBank.TzBankService;
 import com.fs.tzBank.dto.TzOrderInfoDTO;
 import com.fs.tzBank.dto.TzPaymentResultDTO;
 import com.fs.tzBank.dto.TzRefundOrderDTO;
 import com.fs.tzBank.utils.TzConfigUtils;
+import com.google.gson.Gson;
+import com.tzbank.util.CallBackUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -94,9 +99,16 @@ public class PayController {
 
     @ApiOperation("台州银行第三方支付回调")
     @PostMapping(value="/tzBkPayNotify")
-    public String tzBkPayNotify( @RequestBody TzPaymentResultDTO tzPaymentResultDTO ) throws Exception {
-        logger.info("台州银行第三方支付回调接口被调用,请求参数: {}", JSON.toJSONString(tzPaymentResultDTO));
+    public String tzBkPayNotify( @RequestBody String  decryptForm ) throws Exception {
 
+        TzConfigInfoDTO tzConfigInfoDTO = TzConfigUtils.getConfig();
+
+        String decrypt = CallBackUtil.decrypt( tzConfigInfoDTO.getAppSecret(),decryptForm);
+        logger.info("台州银行第三方支付回调接口被调用,请求参数: {}", decrypt);
+
+        String filteredString = decrypt.replaceAll("[^\\x20-\\x7E]", "");
+        Gson gson = new Gson();
+        TzPaymentResultDTO tzPaymentResultDTO = gson.fromJson(filteredString, TzPaymentResultDTO.class);
         //验证
         if(tzPaymentResultDTO.getStatus().equals("90")){
             RequestDTO<QueryOrderRestDTO> requestDTO = new RequestDTO<>();
@@ -104,7 +116,6 @@ public class PayController {
             QueryOrderRestDTO queryOrderRestDTO = new QueryOrderRestDTO();
 
             queryOrderRestDTO.setOrderFlowNo(tzPaymentResultDTO.getOrderFlowNo());
-            TzConfigInfoDTO tzConfigInfoDTO = TzConfigUtils.getConfig();
 
             queryOrderRestDTO.setPlatMerCstNo(tzConfigInfoDTO.getPlatMerCstNo());
 

+ 9 - 2
fs-service-system/src/main/java/com/fs/store/service/channel/TzbkPaymentHandler.java

@@ -1,12 +1,14 @@
 package com.fs.store.service.channel;
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.fs.common.core.domain.R;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.IPUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.huifuPay.dto.*;
+import com.fs.store.config.StoreConfig;
 import com.fs.store.domain.FsStorePayment;
 import com.fs.store.domain.TzConfigInfoDTO;
 import com.fs.store.service.IFsCouponScheduleService;
@@ -47,6 +49,8 @@ public class TzbkPaymentHandler extends PaymentHandler{
     @Override
     protected R doCreateOrder(PayProcessContext context) {
         String json = configService.selectConfigByKey("store.pay");
+        String configJson=configService.selectConfigByKey("store.config");
+        StoreConfig config= JSONUtil.toBean(configJson,StoreConfig.class);
         TzConfigInfoDTO tzConfigInfoDTO = JSON.parseObject(json, TzConfigInfoDTO.class);
 
         TzPayCreateOrderReqBodyDTO reqBodyDTO = new TzPayCreateOrderReqBodyDTO();
@@ -69,8 +73,11 @@ public class TzbkPaymentHandler extends PaymentHandler{
 
         // 获取当前时间戳
         Instant currentTimestamp = Instant.now();
-        // 增加一个小时
-        Instant oneHourLater = currentTimestamp.plusSeconds(3600);
+        Integer unPayTime = config.getUnPayTime();
+        if(ObjectUtil.isNull(unPayTime)){
+            unPayTime = 1800;
+        }
+        Instant oneHourLater = currentTimestamp.plusSeconds(unPayTime*60L);
         reqBodyDTO.setExpiredTime(String.valueOf(oneHourLater.toEpochMilli()));
 
 

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -1616,6 +1616,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     @Override
     public void orderCancel() {
+
         List<FsStoreOrder> fsStoreOrders = orderService.selectFsOutDateOrder();
 
         if (fsStoreOrders.size() > 0) {

+ 2 - 4
fs-service-system/src/main/java/com/fs/store/service/impl/FsStorePaymentServiceImpl.java

@@ -19,19 +19,17 @@ import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.huifuPay.dto.*;
+import com.fs.store.domain.*;
 import com.fs.store.service.IFsStoreOrderService;
 import com.fs.store.service.channel.PaymentHandler;
 import com.fs.store.service.channel.PaymentHandlerHolder;
 import com.fs.store.service.channel.param.PayProcessContext;
 import com.fs.tzBank.TzBankService;
-import com.fs.store.domain.FsPayConfig;
-import com.fs.store.domain.TzConfigInfoDTO;
 import com.fs.store.param.FsStoreStatisticsParam;
 import com.fs.store.service.IFsCouponScheduleService;
 import com.fs.store.vo.FsStorePaymentStatisticsVO;
 import com.fs.system.service.ISysConfigService;
 import com.fs.tzBank.utils.TzConfigUtils;
-import com.fs.store.domain.FsUser;
 import com.fs.store.param.FsStorePaymentPayParam;
 import com.fs.store.param.FsStorePaymentParam;
 import com.fs.store.service.IFsUserService;
@@ -42,7 +40,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import com.fs.store.mapper.FsStorePaymentMapper;
-import com.fs.store.domain.FsStorePayment;
 import com.fs.store.service.IFsStorePaymentService;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -356,6 +353,7 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
                 } else if("70".equals(status) || "80".equals(status)) {
                     fsStorePayment.setStatus(-2);
                     this.updateFsStorePayment(fsStorePayment);
+                    return false;
                     // 10 初始状态 60交易中
                 } else if("10".equals(status) || "60".equals(status)){
                     return false;