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