From 0ce1f94a0f262a8831f8eb9fd5cf67422dd1d69b Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 27 九月 2024 12:07:38 +0800 Subject: [PATCH] 合併代碼 --- ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java | 34 +++++++++++++++++++++++++++++++--- 1 files changed, 31 insertions(+), 3 deletions(-) diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java index 0836ade..7b6c42b 100644 --- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java +++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java @@ -3,6 +3,8 @@ 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.payment.api.vo.PaymentOrder; import com.ruoyi.payment.api.vo.WxRefundNotifyResp; import com.ruoyi.payment.wx.enums.RefundEnum; @@ -15,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.math.BigDecimal; @@ -32,6 +35,13 @@ public class WxPayController { @Autowired private WxV3Pay wxV3Pay; + + @Resource + private OrderClient orderClient; + + @Resource + private ChargingOrderClient chargingOrderClient; + /** @@ -108,22 +118,31 @@ * 支付回调 */ @PostMapping("pay/notify") + @ApiOperation("订单回调") public R<Map<String, Object>> payNotify(HttpServletRequest request) throws Exception { try { Map<String, Object> params = wxV3Pay.verifyNotify(request, new TypeReference<Map<String, Object>>() {}); log.info("支付回调:{}", params); - String outRefundNo = (String) params.get("out_refund_no"); + 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){ //购物订单 case "GW": - System.err.println("----收到购物回调"); + R r = orderClient.callBack(out_trade_no, outRefundNo); + System.err.println("----收到购物回调"); break; case "HY": + 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); @@ -170,6 +189,15 @@ // 时间不对的话,可以调用 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; + } + WxRefundNotifyResp resp = new WxRefundNotifyResp(); resp.setOut_trade_no(out_trade_no); resp.setOut_refund_no(out_refund_no); -- Gitblit v1.7.1