Pu Zhibing
2024-11-06 73be7ff2317fea8194b7a6dc0452b64a511c7836
ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java
@@ -1,11 +1,12 @@
package com.ruoyi.payment.controller;
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.payment.ali.config.AliProperties;
import com.ruoyi.payment.ali.v2.AppletPayUtil;
import com.ruoyi.payment.ali.v2.model.PaymentReq;
import com.ruoyi.payment.ali.v2.model.PaymentResp;
import com.ruoyi.payment.ali.v2.model.QueryResp;
import com.ruoyi.payment.api.model.*;
import com.ruoyi.payment.api.vo.AliPaymentReq;
import com.ruoyi.payment.api.vo.AliPaymentResp;
import com.ruoyi.payment.api.vo.AliQueryOrder;
@@ -13,6 +14,8 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
/**
 * @author zhibing.pu
@@ -43,7 +46,6 @@
      if(null != payment){
         AliPaymentResp aliPaymentResp = new AliPaymentResp();
         aliPaymentResp.setTradeNo(payment.getTradeNo());
         aliPaymentResp.setNotifyUrl(aliProperties.getNotifyUrl());
         return R.ok(aliPaymentResp);
      }
      return R.ok();
@@ -78,6 +80,47 @@
         throw new RuntimeException("关闭支付宝订单失败");
      }
   }
   /**
    * 后台退款 远程调用
    */
   @PostMapping("/refund")
   public R<RefundResp> refund(@RequestBody RefundReq dto){
      return R.ok(appletPayUtil.refund(dto));
   }
   @Resource
   private OrderClient orderClient;
   @Resource
   private ChargingOrderClient chargingOrderClient;
   @ResponseBody
   @PostMapping(value = "/callBack")
   public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response) {
      try {
         String out_trade_no = aliQueryOrder.getOutTradeNo();
         String transaction_id = aliQueryOrder.getTradeNo();
         String attach = aliQueryOrder.getPassbackParams();
         String substring = out_trade_no.substring(0, 2);
         switch (substring){
            //购物订单
            case "GW":
               R r = orderClient.callBack(out_trade_no, transaction_id);
               System.err.println("----收到购物回调");
               break;
            case "HY":
               orderClient.vipCallBack(out_trade_no,transaction_id);
               System.err.println("----收到会员回调");
               break;
            case "CD":
               chargingOrderClient.chargingOrderWXCallback(out_trade_no, transaction_id, attach);
               System.err.println("----充电支付回调");
               break;
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }