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/sh/service/impl/OrderOperationLogServiceImpl.java | 3 +--
oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java | 3 ++-
oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java | 21 ++++++++++++++++++---
oying-system/src/main/java/com/oying/modules/hwc/utils/SignUtil.java | 11 ++++++-----
4 files changed, 27 insertions(+), 11 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
index b90ba99..c0c879f 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
@@ -13,11 +13,14 @@
import com.oying.utils.enums.PayTypeEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.dom4j.DocumentException;
+import org.springframework.dao.DataIntegrityViolationException;
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.HashMap;
import java.util.Map;
@@ -75,15 +78,21 @@
}
}
response.getWriter().write(respString);
+ } catch (DataIntegrityViolationException e) {
+ log.error("汇旺财退款回调数据异常失败:{} {}", map.toString(), e.getMessage());
+ } catch (DocumentException e) {
+ log.error("汇旺财退款回调XML转码失败:{} {}", map.toString(), e.getMessage());
+ } catch (IOException e) {
+ log.error("汇旺财退款回调写入流失败:{} {}", map.toString(), e.getMessage());
} catch (Exception e) {
- log.error("汇旺财支付回调失败:{}", map.toString());
+ log.error("汇旺财退款回调失败:{} {}", map.toString(), e.getMessage());
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void returnNotify(HttpServletRequest request, HttpServletResponse response) {
- Map<String, String> map = new HashMap<>();
+ Map<String, String> map = new HashMap<>();
try {
String resString = XmlUtils.parseRequest(request);
String respString = "error";
@@ -110,8 +119,14 @@
}
}
response.getWriter().write(respString);
+ } catch (DataIntegrityViolationException e) {
+ log.error("汇旺财退款回调数据异常失败:{} {}", map.toString(), e.getMessage());
+ } catch (DocumentException e) {
+ log.error("汇旺财退款回调XML转码失败:{} {}", map.toString(), e.getMessage());
+ } catch (IOException e) {
+ log.error("汇旺财退款回调写入流失败:{} {}", map.toString(), e.getMessage());
} catch (Exception e) {
- log.error("汇旺财退款回调失败:{}", map.toString());
+ log.error("汇旺财退款回调失败:{} {}", map.toString(), e.getMessage());
}
}
}
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 1bb9545..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
@@ -40,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);
@@ -62,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;
@@ -71,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);
@@ -80,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);
diff --git a/oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java b/oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java
index 783c326..613e01e 100644
--- a/oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java
+++ b/oying-system/src/main/java/com/oying/modules/hwc/utils/XmlUtils.java
@@ -2,6 +2,7 @@
import com.oying.exception.BadRequestException;
import org.dom4j.Document;
+import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.InputSource;
@@ -101,7 +102,7 @@
/**
* 转XML map
*/
- public static Map<String, String> toMap(byte[] xmlBytes, String charset) throws Exception {
+ public static Map<String, String> toMap(byte[] xmlBytes, String charset) throws DocumentException {
SAXReader reader = new SAXReader(false);
InputSource source = new InputSource(new ByteArrayInputStream(xmlBytes));
source.setEncoding(charset);
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
index c599d6c..2f06131 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
@@ -2,7 +2,6 @@
import com.alibaba.fastjson2.JSON;
import com.oying.exception.BadRequestException;
-import com.oying.modules.message.common.MesTypeEnum;
import com.oying.modules.message.common.MsgStatusEnum;
import com.oying.modules.message.service.MesMsgRecordService;
import com.oying.modules.sh.domain.OrderOperationLog;
@@ -183,7 +182,7 @@
resources.setOperationTime(time);
orderOperationLogMapper.insert(resources);
if (msgStatusEnum != null){
- mesMsgRecordService.insertOrderMsg(response.getOrder(), msgStatusEnum, MesTypeEnum.ORDER);
+// mesMsgRecordService.insertOrderMsg(response.getOrder(), msgStatusEnum, MesTypeEnum.ORDER);
}
orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
}
--
Gitblit v1.9.3