فهرست منبع

feat: 对接汇付

xdd 5 روز پیش
والد
کامیت
fba60de9de

+ 3 - 3
deploy.sh

@@ -55,11 +55,11 @@ deploy_jar() {
 deploy_jar "$LOCAL_FS_ADMIN_JAR" "fs-admin"
 
 # 部署 fs-company
-deploy_jar "$LOCAL_FS_COMPANY_JAR" "fs-company"
+#deploy_jar "$LOCAL_FS_COMPANY_JAR" "fs-company"
 
 # 部署 fs-user-app
-deploy_jar "$LOCAL_FS_USER_APP_JAR" "fs-user-app"
-deploy_jar "$LOCAL_FS_API_APP_JAR" "fs-api"
+#deploy_jar "$LOCAL_FS_USER_APP_JAR" "fs-user-app"
+#deploy_jar "$LOCAL_FS_API_APP_JAR" "fs-api"
 
 echo "Deployment completed."
 

+ 3 - 3
fs-admin/src/main/resources/application-dev.yml

@@ -5,11 +5,11 @@ spring:
     # redis 配置
     redis:
         # 地址
-        host: 172.16.0.13
+        host: 127.0.0.1
         # 端口,默认为6379
         port: 6379
         # 密码
-        password: Yzx19860213
+        password:
         # 连接超时时间
         timeout: 10s
         lettuce:
@@ -22,7 +22,7 @@ spring:
                 max-active: 8
                 # #连接池最大阻塞等待时间(使用负值表示没有限制)
                 max-wait: -1ms
-        database: 3
+        database: 0
     datasource:
         type: com.alibaba.druid.pool.DruidDataSource
         driverClassName: com.mysql.cj.jdbc.Driver

+ 22 - 1
fs-admin/src/test/java/com/fs/store/controller/FsStorePaymentControllerTest.java

@@ -24,6 +24,7 @@ import com.fs.store.mapper.FsStorePaymentMapper;
 import com.fs.store.service.IFsCouponScheduleService;
 import com.fs.store.service.IFsStoreOrderService;
 import com.fs.store.service.IFsStorePaymentService;
+import com.fs.store.service.channel.HfPaymentHandler;
 import com.fs.store.service.channel.YbPaymentHandler;
 import com.fs.store.service.channel.param.PayProcessContext;
 import com.fs.system.service.ISysConfigService;
@@ -436,6 +437,9 @@ public class FsStorePaymentControllerTest {
     @Autowired
     private YbPaymentHandler ybPaymentHandler;
 
+    @Autowired
+    private HfPaymentHandler hfPaymentHandler;
+
     @Autowired
     private ISysConfigService configService;
     @Test
@@ -454,13 +458,30 @@ public class FsStorePaymentControllerTest {
         ybPaymentHandler.refundOrder(processContext);
     }
 
+
+    @Test
+    public void hfRefund(){
+        PayProcessContext processContext = new PayProcessContext();
+        processContext.setOrderId(null);
+        processContext.setPayType(null);
+        processContext.setPaymentId(1334828L);
+        processContext.setPayCode("1947198650681655296");
+        String json = configService.selectConfigByKey("store.pay");
+        FsPayConfig fsPayConfig = JSON.parseObject(json, FsPayConfig.class);
+        processContext.setFsPayConfig(fsPayConfig);
+        processContext.setUserId(null);
+        processContext.setGoodsInfo("商城订单支付");
+        processContext.setOrderPrefix("store-");
+        hfPaymentHandler.refundOrder(processContext);
+    }
+
     /**
      * 手动退款
      */
     @Test
     public void refund(){
         String[] data = new String[]{
-                "91929745738172076032"
+                "1947198650681655296"
         };
         TzConfigInfoDTO tzConfigInfoDTO = TzConfigUtils.getConfig();
 

+ 2 - 2
fs-api/src/main/resources/application-dev.yml

@@ -3,11 +3,11 @@ spring:
     # redis 配置
     redis:
         # 地址
-        host: 172.16.0.13
+        host: 127.0.0.1
         # 端口,默认为6379
         port: 6379
         # 密码
-        password: Yzx19860213
+        password:
         # 连接超时时间
         timeout: 10s
         lettuce:

+ 1 - 1
fs-service-system/src/main/java/com/fs/store/mapper/FsStorePaymentMapper.java

@@ -379,7 +379,7 @@ public interface FsStorePaymentMapper
     /**
      * 一个小时状态还没有变化
      */
-    @Select("select * from fs_store_payment where pay_mode='yb' and status=0 and trade_no is not null and remark is not null AND create_time < DATE_SUB(NOW(), INTERVAL 10 MINUTE)")
+    @Select("select * from fs_store_payment where pay_mode='hf' and status=0 and trade_no is not null and remark is not null AND create_time < DATE_SUB(NOW(), INTERVAL 10 MINUTE)")
     List<FsStorePayment> queryPendingDelayState();
 
     @Select("select count(1) from fs_store_payment where order_id=${orderId} limit 1")

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

@@ -110,6 +110,7 @@ public interface IFsStorePaymentService
 
     boolean queryTzbk(FsStorePayment fsStorePayment);
     boolean queryYb(FsStorePayment fsStorePayment);
+    boolean queryHf(FsStorePayment fsStorePayment);
 
     boolean updateYbBankSerial(FsStorePayment fsStorePayment);
 

+ 37 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/FsStorePaymentServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fs.store.service.impl;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
@@ -18,7 +19,10 @@ import com.fs.common.utils.DateUtils;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
+import com.fs.huifuPay.domain.HuiFuQueryOrderResult;
 import com.fs.huifuPay.dto.*;
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
+import com.fs.huifuPay.service.HuiFuService;
 import com.fs.pay.pay.util.PayUtil;
 import com.fs.store.domain.*;
 import com.fs.store.service.IFsStoreOrderService;
@@ -316,7 +320,7 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
     public void paymentSync() {
         List<FsStorePayment> fsStorePayments = fsStorePaymentMapper.queryPendingDelayState();
         for (FsStorePayment fsStorePayment : fsStorePayments) {
-            queryYb(fsStorePayment);
+            queryHf(fsStorePayment);
         }
     }
 
@@ -415,6 +419,38 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
         return false;
     }
 
+    @Autowired
+    private HuiFuService huiFuService;
+    @Override
+    public boolean queryHf(FsStorePayment fsStorePayment) {
+
+        V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
+        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(fsStorePayment.getCreateTime()));
+        request.setOrgHfSeqId(fsStorePayment.getTradeNo());
+        HuiFuQueryOrderResult huiFuQueryOrderResult;
+        try {
+            huiFuQueryOrderResult = huiFuService.queryOrder(request);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        logger.info("汇付返回"+huiFuQueryOrderResult);
+        if ("00000000".equals(huiFuQueryOrderResult.getResp_code())) {
+            if (huiFuQueryOrderResult.getTrans_stat().equals("S")) {
+                // 如果查询支付成功 更新订单状态
+                String bankTrxId = huiFuQueryOrderResult.getOut_trans_id();
+                String bankOrderId = huiFuQueryOrderResult.getParty_order_id();
+                orderService.payConfirm(1,fsStorePayment.getOrderId(), fsStorePayment.getPayCode(),
+                        fsStorePayment.getTradeNo(),bankTrxId, bankOrderId);
+                return true;
+            } else if(huiFuQueryOrderResult.getTrans_stat().equals("F")){
+                fsStorePayment.setStatus(-2);
+                this.updateFsStorePayment(fsStorePayment);
+                return false;
+            }
+        }
+        return false;
+    }
+
     @Override
     public boolean updateYbBankSerial(FsStorePayment fsStorePayment) {
         // 查询易宝

+ 3 - 3
fs-user-app/src/main/resources/application-dev.yml

@@ -3,11 +3,11 @@ spring:
     # redis 配置
     redis:
         # 地址
-        host: 172.16.0.13
+        host: 127.0.0.1
         # 端口,默认为6379
         port: 6379
         # 密码
-        password: Yzx19860213
+        password:
         # 连接超时时间
         timeout: 10s
         lettuce:
@@ -20,7 +20,7 @@ spring:
                 max-active: 8
                 # #连接池最大阻塞等待时间(使用负值表示没有限制)
                 max-wait: -1ms
-        database: 3
+        database: 0
     datasource:
         type: com.alibaba.druid.pool.DruidDataSource
         driverClassName: com.mysql.cj.jdbc.Driver