xin
2025-07-16 6269dc7a50d5028fa616b339cfe790b6e0d5d16e
oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
@@ -9,6 +9,7 @@
import com.oying.modules.sh.domain.vo.OrderResponse;
import com.oying.modules.sh.service.OrderReturnService;
import com.oying.modules.sh.service.OrderService;
import com.oying.utils.enums.OrderStatusEnum;
import com.oying.utils.enums.PayStateEnum;
import com.oying.utils.enums.PayTypeEnum;
import lombok.RequiredArgsConstructor;
@@ -18,6 +19,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
/**
@@ -38,18 +40,19 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
        Map<String, String> map = new HashMap<>();
        try {
            String resString = XmlUtils.parseRequest(request);
            String respString = "error";
            if (!resString.isEmpty()) {
                Map<String, String> map = XmlUtils.toMap(resString.getBytes(), "utf-8");
                map = XmlUtils.toMap(resString.getBytes(), "utf-8");
                String sign_type = map.get("sign_type");
                String reSign = map.get("sign");
                if (map.containsKey("sign")) {
                    OrderResponse order = orderService.getByOrderNum(map.get("out_trade_no"));
                    PayTypeEnum status = PayTypeEnum.find(order.getOrder().getPayType());
                    if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
                        log.error("验证签名错误!:{}", map.toString());
                        log.error("汇旺财支付验证签名错误!:{}", map.toString());
                    } else {
                        if ("0".equals(map.get("status"))) {
                            if ("0".equals(map.get("result_code"))) {
@@ -61,7 +64,7 @@
                                    PayStateEnum stateEnum = PayStateEnum.NOTPAY;
                                    if ("0".equals(map.get("pay_result"))) {
                                        stateEnum = PayStateEnum.SUCCESS;
                                        orderService.paySuccess(order);
                                        orderService.operationLog(order, OrderStatusEnum.TWO, null);
                                    }
                                    orderService.updatePayStatus(map.get("out_trade_no"), stateEnum, map.get("pay_info"), map.get("time_end"));
                                    // 处理成功
@@ -74,6 +77,7 @@
            }
            response.getWriter().write(respString);
        } catch (Exception e) {
            log.error("汇旺财支付回调失败:{}", map.toString());
            throw new BadRequestException("操作失败,原因:" + e.getMessage());
        }
    }
@@ -81,18 +85,19 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void returnNotify(HttpServletRequest request, HttpServletResponse response) {
        Map<String, String> map =  new HashMap<>();
        try {
            String resString = XmlUtils.parseRequest(request);
            String respString = "error";
            if (!resString.isEmpty()) {
                Map<String, String> map = XmlUtils.toMap(resString.getBytes(), "utf-8");
                map = XmlUtils.toMap(resString.getBytes(), "utf-8");
                String sign_type = map.get("sign_type");
                String reSign = map.get("sign");
                if (map.containsKey("sign")) {
                    OrderReturn order = returnService.getByReturnNum(map.get("out_refund_no"));
                    PayTypeEnum status = PayTypeEnum.find(order.getPayType());
                    if (SignUtil.verifySign(reSign, sign_type, map, properties, status)) {
                        log.error("验证签名错误!:{}", map.toString());
                        log.error("汇旺财退款验证签名错误!:{}", map.toString());
                    } else {
                        if ("0".equals(map.get("status"))) {
                            if ("0".equals(map.get("result_code"))) {
@@ -108,6 +113,7 @@
            }
            response.getWriter().write(respString);
        } catch (Exception e) {
            log.error("汇旺财退款回调失败:{}", map.toString());
            System.out.println("操作失败,原因:" + e.getMessage());
        }
    }