| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | | * 支付回调 |
| | | */ |
| | |
| | | @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(); |
| | | // 商户退款单号 |
| | |
| | | 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; |
| | | } |
| | | |