puzhibing
2024-09-29 c44e660304d6599d90e23da0e52f2c734a81c2ec
ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
@@ -3,7 +3,9 @@
import com.fasterxml.jackson.core.type.TypeReference;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.feignClient.OrderClient;
import com.ruoyi.order.api.feignClient.ShoppingOrderClient;
import com.ruoyi.payment.api.vo.PaymentOrder;
import com.ruoyi.payment.api.vo.WxRefundNotifyResp;
import com.ruoyi.payment.wx.enums.RefundEnum;
@@ -37,6 +39,12 @@
    @Resource
    private OrderClient orderClient;
    @Resource
    private ChargingOrderClient chargingOrderClient;
    @Resource
    private ShoppingOrderClient shoppingOrderClient;
@@ -121,6 +129,7 @@
            log.info("支付回调:{}", params);
            String outRefundNo = (String) params.get("transaction_id");
            String out_trade_no = params.get("out_trade_no").toString();
            String attach = params.get("attach").toString();
            String substring = out_trade_no.substring(0, 2);
            switch (substring){
                //购物订单
@@ -132,8 +141,12 @@
                    orderClient.vipCallBack(out_trade_no,outRefundNo);
                    System.err.println("----收到会员回调");
                    break;
                case "CD":
                    chargingOrderClient.chargingOrderWXCallback(out_trade_no, outRefundNo, attach);
                    System.err.println("----充电支付回调");
                    break;
            }
            wxV3Pay.ack();
            return R.ok(params);
        } catch (Exception e) {
            log.error("支付回调异常:{}", e, e);
@@ -180,6 +193,19 @@
            // 时间不对的话,可以调用  WxTimeUtils.toRfc3339Date(success_time)转换一下
            String success_time = params.get("success_time").toString();
            if (tradeState.equals(RefundEnum.SUCCESS.name())) {
                String substring = out_refund_no.substring(0, 3);
                switch (substring){
                    //充电订单
                    case "CDF":
                        chargingOrderClient.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time);
                        System.err.println("----充电启动失败退款回调通知");
                        break;
                    case "GDF":
                        shoppingOrderClient.cancelShoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
                        System.err.println("----商城订单取消退款回调通知");
                        break;
                }
                WxRefundNotifyResp resp = new WxRefundNotifyResp();
                resp.setOut_trade_no(out_trade_no);
                resp.setOut_refund_no(out_refund_no);