彭雪彬
2025-07-15 a7501803a3ca43310e57a5dd912e5047919c2e43
oying-system/src/main/java/com/oying/modules/hwc/service/impl/CallbackServiceImpl.java
@@ -5,10 +5,11 @@
import com.oying.modules.hwc.utils.SignUtil;
import com.oying.modules.hwc.utils.XmlUtils;
import com.oying.modules.security.config.SwiftPassProperties;
import com.oying.modules.sh.domain.Order;
import com.oying.modules.sh.domain.OrderReturn;
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;
@@ -46,21 +47,22 @@
                String sign_type = map.get("sign_type");
                String reSign = map.get("sign");
                if (map.containsKey("sign")) {
                    Order order = orderService.getByOrderNum(map.get("out_trade_no"));
                    PayTypeEnum status = PayTypeEnum.find(order.getPayType());
                    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());
                    } else {
                        if ("0".equals(map.get("status"))) {
                            if ("0".equals(map.get("result_code"))) {
                                //业务处理
                                if (PayStateEnum.SUCCESS.getKey().equals(order.getPayState())) {
                                if (PayStateEnum.SUCCESS.getKey().equals(order.getOrder().getPayState())) {
                                    // 已处理
                                    respString = "success";
                                } else {
                                    PayStateEnum stateEnum = PayStateEnum.NOTPAY;
                                    if ("0".equals(map.get("pay_result"))) {
                                        stateEnum = PayStateEnum.SUCCESS;
                                        orderService.operationLog(order, OrderStatusEnum.TWO);
                                    }
                                    orderService.updatePayStatus(map.get("out_trade_no"), stateEnum, map.get("pay_info"), map.get("time_end"));
                                    // 处理成功