From 215fde9671b285b4f77fa3f5a669c58b74af17c8 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 24 八月 2024 18:01:08 +0800 Subject: [PATCH] 代码提交 --- ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java | 39 ++++++++++++++++++++++++++++++++++----- 1 files changed, 34 insertions(+), 5 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 51b2238..81ea044 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 @@ -5,7 +5,7 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.payment.api.vo.PaymentOrder; import com.ruoyi.payment.wx.enums.RefundEnum; -import com.ruoyi.payment.wx.model.WxPaymentRefundModel; +import com.ruoyi.payment.api.model.WxPaymentRefundModel; import com.ruoyi.payment.wx.resp.NotifyV3PayDecodeRespBody; import com.ruoyi.payment.wx.utils.WxV3Pay; import io.swagger.annotations.Api; @@ -79,7 +79,30 @@ // TODO 退款业务处理 return AjaxResult.success(); } - + /** + * 微信v3支付-订单退款 远程调用 + * + * @return + */ + @ApiOperation("订单退款") + @PostMapping(value = "refundOrderR") + public R<String> refundOrderR(@RequestBody WxPaymentRefundModel model) { + Map<String, Object> result = wxV3Pay.refund(model); + 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(status); + } /** * 支付回调 */ @@ -87,17 +110,17 @@ 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 out_trade_no = params.get("out_trade_no").toString(); String substring = outRefundNo.substring(0, 2); switch (substring){ //购物订单 case "GW": - //更改订单状态 - //如果是优惠卷赠送优惠卷 + break; } - log.info("支付回调:{}", params); return R.ok(params); } catch (Exception e) { log.error("支付回调异常:{}", e, e); @@ -144,6 +167,12 @@ // 时间不对的话,可以调用 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, 2); + switch (substring){ + case "GW": + break; + + } // TODO 退款成功处理 wxV3Pay.ack(); } else { -- Gitblit v1.7.1