liujie
2026-05-25 03adfbce477422cd24c715a6f9c5589b0cf014f2
ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
@@ -1,5 +1,6 @@
package com.ruoyi.payment.controller;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -118,6 +119,28 @@
        String status = result.get("status").toString();
        return R.ok(result);
    }
    @ApiOperation("订单退款查询")
    @PostMapping(value = "queryRefund")
    public R<Map<String, Object>> queryRefund(@RequestParam("refund_out_trade_no") String refund_out_trade_no) {
        Map<String, Object> result = wxV3Pay.queryRefund(refund_out_trade_no);
        log.info("订单退款查询结果:{}", result);
        // 微信支付退款单号
        String refund_id = result.get("refund_id").toString();
        // 商户退款单号
        String out_refund_no = result.get("out_refund_no").toString();
        // 微信支付订单号
        String transaction_id = result.get("transaction_id").toString();
        // 商户订单号 tradeNo
        String out_trade_no = result.get("out_trade_no").toString();
        // 退款成功时间
        String success_time = Objects.nonNull(result.get("success_time")) ? result.get("success_time").toString() : null;
        // 退款状态 RefundEnum
        String status = result.get("status").toString();
        return R.ok(result);
    }
    /**
     * 支付回调
     */
@@ -174,8 +197,8 @@
    @PostMapping("refund/notify")
    public void refundNotify(HttpServletRequest request) throws IOException {
        try {
            Map<String, Object> params = wxV3Pay.verifyNotify(request, new TypeReference<Map<String, Object>>() {
            });
            Map<String, Object> params = wxV3Pay.verifyNotify(request, new TypeReference<Map<String, Object>>() {});
            log.info("退款结果回调:{}", JSON.toJSONString(params));
            // 商户订单号
            String out_trade_no = params.get("out_trade_no").toString();
            // 商户退款单号
@@ -197,14 +220,15 @@
                        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("----商城订单取消退款回调通知");
                    //会员订单
                    case "HYF":
                        orderClient.vipWxRefund(out_refund_no, refund_id, tradeState, success_time);
                        System.err.println("----会员订单消退款回调通知");
                        break;
                    //充电订单
                    //购物订单
                    case "GWF":
                        chargingOrderClient.shoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
                        System.err.println("----管理后台取消购物订单退款回调通知");
                        System.err.println("----购物订单退款回调通知");
                        break;
                }