From ca0f290991d7a15748d90d01e57f0f4cd6f26c9c Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Wed, 03 Sep 2025 21:38:52 +0800
Subject: [PATCH] 汇旺财支付回调-优化日志

---
 oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java b/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
index b2a80cb..6d9450a 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java
@@ -27,8 +27,11 @@
                 throw new BadRequestException(e1.getMessage());
             }
         } else {
-            if (status.equals(PayTypeEnum.HWC)) {
-                return MD5.sign(preStr, "&key=" + properties.getKey(), "utf-8");
+            switch (status) {
+                case HWC:
+                    return MD5.sign(preStr, "&key=" + properties.getKey(), "utf-8");
+                case HWC2:
+                    return MD5.sign(preStr, "&key=" + properties.getKey2(), "utf-8");
             }
             throw new BadRequestException("汇旺财类型错误");
         }
@@ -37,7 +40,8 @@
     /**
      * 对返回参数的验证签名
      */
-    public static boolean verifySign(String sign, String signType, Map<String, String> resultMap, SwiftPassProperties properties, PayTypeEnum status) throws Exception {
+    public static boolean verifySign(String sign, String signType, Map<String, String> resultMap,
+                                     SwiftPassProperties properties, PayTypeEnum status)  {
         if ("RSA_1_256".equals(signType)) {
             Map<String, String> params = SignUtils.paraFilter(resultMap);
             StringBuilder builder = new StringBuilder((params.size() + 1) * 10);
@@ -45,8 +49,11 @@
             String preStr = builder.toString();
             return !SignUtil.verifySign(preStr, sign, "RSA_1_256", properties.getPlatPublicKey());
         } else if ("MD5".equals(signType)) {
-            if (status.equals(PayTypeEnum.HWC)) {
-                return !SignUtils.checkParam(resultMap, properties.getKey());
+            switch (status) {
+                case HWC:
+                    return !SignUtils.checkParam(resultMap, properties.getKey());
+                case HWC2:
+                    return !SignUtils.checkParam(resultMap, properties.getKey2());
             }
             throw new BadRequestException("汇旺财类型错误");
         }
@@ -56,7 +63,7 @@
     /**
      * RSA_1_256 验证签名
      */
-    public static boolean verifySign(String preStr, String sign, String signType, String platPublicKey) throws Exception {
+    public static boolean verifySign(String preStr, String sign, String signType, String platPublicKey) {
         // 调用这个函数前需要先判断是MD5还是RSA
         // 商户的验签函数要同时支持MD5和RSA
         RSAUtil.SignatureSuite suite;
@@ -65,7 +72,7 @@
         } else if ("RSA_1_256".equals(signType)) {
             suite = RSAUtil.SignatureSuite.SHA256;
         } else {
-            throw new Exception("不支持的签名方式");
+            throw new BadRequestException("不支持的签名方式");
         }
         return RSAUtil.verifySign(suite, preStr.getBytes(StandardCharsets.UTF_8), Base64.decodeBase64(sign.getBytes(StandardCharsets.UTF_8)),
                 platPublicKey);
@@ -74,14 +81,14 @@
     /**
      * RSA_1_256生成不同的sign
      */
-    public static String sign(String preStr, String signType, String mchPrivateKey) throws Exception {
+    public static String sign(String preStr, String signType, String mchPrivateKey) {
         RSAUtil.SignatureSuite suite;
         if ("RSA_1_1".equals(signType)) {
             suite = RSAUtil.SignatureSuite.SHA1;
         } else if ("RSA_1_256".equals(signType)) {
             suite = RSAUtil.SignatureSuite.SHA256;
         } else {
-            throw new Exception("不支持的签名方式");
+            throw new BadRequestException("不支持的签名方式");
         }
         byte[] signBuf = RSAUtil.sign(suite, preStr.getBytes(StandardCharsets.UTF_8),
                 mchPrivateKey);

--
Gitblit v1.9.3