From 83396a38be3c69c81f8acc4681c18f5dd0e698be Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Tue, 08 Jul 2025 21:17:41 +0800
Subject: [PATCH] 完善提交订单逻辑

---
 oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java |  107 +++++++++++++----------------------------------------
 1 files changed, 26 insertions(+), 81 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java
index e300f79..4a63f07 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/SwiftPassServiceImpl.java
@@ -1,6 +1,7 @@
 package com.oying.modules.hwc.service.impl;
 
 import com.alibaba.fastjson2.JSONObject;
+import com.google.gson.Gson;
 import com.oying.exception.BadRequestException;
 import com.oying.modules.hwc.domain.HwcResponse;
 import com.oying.modules.hwc.service.SwiftPassService;
@@ -9,8 +10,6 @@
 import com.oying.modules.hwc.utils.XmlUtils;
 import com.oying.modules.security.config.SwiftPassProperties;
 import com.oying.modules.security.config.WeiXinProperties;
-import com.oying.modules.sh.service.OrderReturnService;
-import com.oying.modules.sh.service.OrderService;
 import com.oying.utils.CloseUtil;
 import com.oying.utils.enums.PayTypeEnum;
 import lombok.RequiredArgsConstructor;
@@ -24,9 +23,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 import java.util.*;
 
 /**
@@ -48,14 +44,12 @@
     private final static String service_close = "unified.trade.close";
 
     private final SwiftPassProperties properties;
-    private final OrderService orderService;
-    private final OrderReturnService returnService;
     private final WeiXinProperties weiXinProperties;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HwcResponse pay(String ip, String total, String timeExpire, String description, String openId,
-                           String orderNum, PayTypeEnum status)  {
+                           String orderNum, PayTypeEnum status) {
         SortedMap<String, String> map = new TreeMap<>();
         map.put("service", service_pay);
         map.put("version", version);
@@ -75,6 +69,9 @@
         switch (status) {
             case HWC:
                 map.put("mch_id", properties.getMchId());
+                break;
+            case HWC2:
+                map.put("mch_id", properties.getMchId2());
                 break;
             default:
                 throw new BadRequestException("汇旺财类型错误");
@@ -106,9 +103,8 @@
                     throw new BadRequestException("验证签名错误");
                 } else {
                     if ("0".equals(resultMap.get("status")) && "0".equals(resultMap.get("result_code"))) {
-//                        Gson gson = new Gson();
-//                        return gson.fromJson(resultMap.get("pay_info"), HwcResponse.class);
-                        return null;
+                        Gson gson = new Gson();
+                        return gson.fromJson(resultMap.get("pay_info"), HwcResponse.class);
                     } else {
                         throw new BadRequestException(resultMap.get("err_code") + " : " + resultMap.get("err_msg") + "\n" +
                                 resultMap.get("status") + " : " + resultMap.get("message"));
@@ -132,7 +128,7 @@
     }
 
     @Override
-    public JSONObject query(String orderNum, PayTypeEnum status) throws IOException {
+    public JSONObject query(String orderNum, PayTypeEnum status) {
         // 参数
         SortedMap<String, String> map = new TreeMap<>();
         map.put("service", service_query);
@@ -143,6 +139,9 @@
         switch (status) {
             case HWC:
                 map.put("mch_id", properties.getMchId());
+                break;
+            case HWC2:
+                map.put("mch_id", properties.getMchId2());
                 break;
             default:
                 throw new BadRequestException("汇旺财类型错误");
@@ -190,16 +189,16 @@
             throw new BadRequestException("操作失败,原因:" + e.getMessage());
         } finally {
             if (response != null) {
-                response.close();
+                CloseUtil.close(response);
             }
             if (client != null) {
-                client.close();
+                CloseUtil.close(client);
             }
         }
     }
 
     @Override
-    public void closeOrder(String outTradeNo, PayTypeEnum status) throws IOException {
+    public void closeOrder(String outTradeNo, PayTypeEnum status) {
         // 参数
         SortedMap<String, String> map = new TreeMap<>();
         map.put("service", service_close);
@@ -210,6 +209,9 @@
         switch (status) {
             case HWC:
                 map.put("mch_id", properties.getMchId());
+                break;
+            case HWC2:
+                map.put("mch_id", properties.getMchId2());
                 break;
             default:
                 throw new BadRequestException("汇旺财类型错误");
@@ -254,10 +256,10 @@
             throw new BadRequestException("操作失败,原因:" + e.getMessage());
         } finally {
             if (response != null) {
-                response.close();
+                CloseUtil.close(response);
             }
             if (client != null) {
-                client.close();
+                CloseUtil.close(client);
             }
         }
     }
@@ -265,7 +267,7 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Map<String, String> refund(String returnNum, String orderNum, String reason, long refund,
-                                      long total, PayTypeEnum payType) throws IOException {
+                                      long total, PayTypeEnum payType) {
         // 参数
         SortedMap<String, String> map = new TreeMap<>();
         map.put("service", service_refund);
@@ -281,6 +283,10 @@
             case HWC:
                 map.put("mch_id", properties.getMchId());
                 map.put("op_user_id", properties.getMchId());
+                break;
+            case HWC2:
+                map.put("mch_id", properties.getMchId2());
+                map.put("op_user_id", properties.getMchId2());
                 break;
             default:
                 throw new BadRequestException("汇旺财类型错误");
@@ -324,74 +330,13 @@
             throw new BadRequestException("操作失败,原因:" + e);
         } finally {
             if (response != null) {
-                response.close();
+                CloseUtil.close(response);
             }
             if (client != null) {
-                client.close();
+                CloseUtil.close(client);
             }
         }
     }
 
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
-        try {
-            String resString = XmlUtils.parseRequest(request);
-            String respString = "error";
-            if (!resString.isEmpty()) {
-                Map<String, String> map = XmlUtils.toMap(resString.getBytes(), "utf-8");
-                String sign_type = map.get("sign_type");
-                String reSign = map.get("sign");
-                if (map.containsKey("sign")) {
-//                    OrderDto order = orderService.findByOrderNum(map.get("out_trade_no"));
-                    PayTypeEnum status = PayTypeEnum.find("order.getPayType()");
-                    if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
-                        System.out.println("验证签名错误!:" + map);
-                    } else {
-                        if ("0".equals(map.get("status"))) {
-                            if ("0".equals(map.get("result_code"))) {
-                                //业务处理
-                                respString = "success";
-                                response.getWriter().write(respString);
-                            }
-                        }
-                    }
-                }
-            }
-            response.getWriter().write(respString);
-        } catch (Exception e) {
-            throw new BadRequestException("操作失败,原因:" + e.getMessage());
-        }
-    }
 
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void returnNotify(HttpServletRequest request, HttpServletResponse response) {
-        try {
-            String resString = XmlUtils.parseRequest(request);
-            String respString = "error";
-            if (!resString.isEmpty()) {
-                Map<String, String> map = XmlUtils.toMap(resString.getBytes(), "utf-8");
-                String sign_type = map.get("sign_type");
-                String reSign = map.get("sign");
-                if (map.containsKey("sign")) {
-//                    ReturnOrder returnOrder = returnOrderRepository.findByReturnNum(map.get("out_refund_no"));
-                    PayTypeEnum status = PayTypeEnum.find("order.getPayType()");
-                    if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
-                        System.out.println("验证签名错误!:" + map);
-                    } else {
-                        if ("0".equals(map.get("status"))) {
-                            if ("0".equals(map.get("result_code"))) {
-                                // 业务处理
-                                respString = "success";
-                            }
-                        }
-                    }
-                }
-            }
-            response.getWriter().write(respString);
-        } catch (Exception e) {
-            System.out.println("操作失败,原因:" + e.getMessage());
-        }
-    }
 }

--
Gitblit v1.9.3