From 76e0a1248fb3abef43ae2493611be89ed5ed9f73 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 27 九月 2024 10:36:30 +0800 Subject: [PATCH] 修改bug --- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java | 10 +++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 6 +- ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java | 2 ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java | 20 ------ ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java | 15 ----- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java | 26 ++++++++ ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java | 18 ++++++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 31 +++------- ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java | 5 + 9 files changed, 72 insertions(+), 61 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java index 75e3c52..de3afd7 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserTagFallbackFactory.java @@ -30,6 +30,11 @@ public R<TAppUserTag> getUserTag(TAppUserTag appUserTag) { return R.fail("获取用户标签关系失败:" + throwable.getMessage()); } + + @Override + public void addUserTag(TAppUserTag appUserTag) { + + } }; } } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java index 72ebc17..294d7b0 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java @@ -118,6 +118,16 @@ public R<String> stopCharging(String id) { return R.fail("手动停止充电失败:" + throwable.getMessage()); } + + @Override + public void chargingOrderWXCallback(String out_trade_no, String transaction_id, String attach) { + log.error("充电支付成功回调通知失败:" + throwable.getMessage()); + } + + @Override + public void chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time) { + log.error("远程启动失败后退款通知失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java index b395682..c92882a 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java @@ -137,4 +137,30 @@ */ @PutMapping(value = "/t-charging-order/stopCharging/{id}") R<String> stopCharging(@PathVariable("id") String id); + + + /** + * 充电支付成功回调通知 + * @param out_trade_no + * @param transaction_id + * @param attach + */ + @PostMapping("/t-charging-order/chargingOrderWXCallback") + void chargingOrderWXCallback(@RequestParam("out_trade_no") String out_trade_no, + @RequestParam("transaction_id") String transaction_id, + @RequestParam("attach") String attach); + + + /** + * 远程启动失败后退款回调 + * @param out_refund_no + * @param refund_id + * @param tradeState + * @param success_time + */ + @PostMapping("/t-charging-order/chargingOrderStartupFailureWxRefund") + void chargingOrderStartupFailureWxRefund(@RequestParam("out_trade_no") String out_refund_no, + @RequestParam("out_trade_no") String refund_id, + @RequestParam("out_trade_no") String tradeState, + @RequestParam("out_trade_no") String success_time); } diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java index 71c165e..763ea46 100644 --- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java @@ -38,16 +38,6 @@ public R<Map<String, Object>> orderPay(PaymentOrder paymentOrder) { return R.fail("调起微信支付失败:" + throwable.getMessage()); } - - @Override - public R<Map<String, Object>> payNotify(HttpServletRequest request) { - return R.fail("微信支付回调失败:" + throwable.getMessage()); - } - - @Override - public void ack() { - - } @Override public void close(String outTradeNo) { @@ -57,11 +47,6 @@ @Override public R<String> refundOrderR(WxPaymentRefundModel model) { return R.fail("微信退款失败:" + throwable.getMessage()); - } - - @Override - public R<WxRefundNotifyResp> refundNotify(HttpServletRequest request) { - return R.fail("微信退款回调失败:" + throwable.getMessage()); } }; } diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java index 8f6e6c2..b96a0d5 100644 --- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java +++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/WxPaymentClient.java @@ -41,20 +41,6 @@ R<Map<String, Object>> orderPay(@RequestBody PaymentOrder paymentOrder); - /** - * 支付回调 - * @param request - * @return - */ - @PostMapping("/wx/pay/notify") - R<Map<String, Object>> payNotify(HttpServletRequest request); - - /** - * 支付回调成功后的成功应答 - */ - @PostMapping("/wx/pay/ack") - void ack(); - /** * 关闭订单 @@ -66,10 +52,4 @@ @ApiOperation("订单退款") @PostMapping(value = "/wx/refundOrderR") public R<String> refundOrderR(@RequestBody WxPaymentRefundModel model); - - - - @ApiOperation("订单退款回调") - @PostMapping(value = "/wx/refund/notify") - R<WxRefundNotifyResp> refundNotify(HttpServletRequest request); } diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java index 08d54c1..3fac737 100644 --- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java +++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/vo/PaymentOrder.java @@ -29,5 +29,5 @@ /** * 回调地址 */ - private String notifyUrl ="http://221.182.45.100:9000/payment/wx/pay/notify"; + private String notifyUrl ="/payment/wx/pay/notify"; } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index 16e7970..f591474 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -68,6 +68,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; @@ -428,21 +429,12 @@ /** * 充电充值支付回调 - * @param request */ @ResponseBody @PostMapping(value = "/chargingOrderWXCallback") - public void chargingOrderWXCallback(HttpServletRequest request) { - Map<String, Object> data = wxPaymentClient.payNotify(request).getData(); - if (null != data) { - String out_trade_no = data.get("out_trade_no").toString(); - String transaction_id = data.get("transaction_id").toString(); - String attach = data.get("attach").toString(); - AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach); - if (ajaxResult.isSuccess()) { - wxPaymentClient.ack(); - } - } + public void chargingOrderWXCallback(@RequestParam("out_trade_no") String out_trade_no, @RequestParam("transaction_id") String transaction_id, + @RequestParam("attach") String attach) { + AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach); } @@ -471,19 +463,14 @@ /** * 远程启动失败后退款回调 - * @param request */ @ResponseBody @PostMapping(value = "/chargingOrderStartupFailureWxRefund") - public void chargingOrderStartupFailureWxRefund(HttpServletRequest request){ - WxRefundNotifyResp data = wxPaymentClient.refundNotify(request).getData(); - if(null != data){ - String out_refund_no = data.getOut_refund_no(); - String refund_id = data.getRefund_id(); - String tradeState = data.getTradeState(); - String success_time = data.getSuccess_time(); - chargingOrderService.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time); - } + public void chargingOrderStartupFailureWxRefund(@RequestParam("out_trade_no") String out_refund_no, + @RequestParam("out_trade_no") String refund_id, + @RequestParam("out_trade_no") String tradeState, + @RequestParam("out_trade_no") String success_time){ + chargingOrderService.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index a558cc9..10655bc 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -498,7 +498,7 @@ paymentOrder.setAmount(addChargingOrder.getPaymentAmount()); paymentOrder.setOpenId(appUser.getWxOpenid()); paymentOrder.setDescription("充电充值"); - paymentOrder.setNotifyUrl("/order/t-charging-order/chargingOrderWXCallback"); + paymentOrder.setNotifyUrl("/payment/wx/pay/notify"); Map<String, Object> data = wxPaymentClient.orderPay(paymentOrder).getData(); return AjaxResult.success(data); } @@ -711,7 +711,7 @@ model.setOut_trade_no(chargingOrder.getCode()); model.setOut_refund_no(chargingOrderRefund.getRefundCode()); model.setReason("充电失败,取消充电订单"); - model.setNotify_url("/order/t-charging-order/chargingOrderStartupFailureWxRefund"); + model.setNotify_url("/payment/wx/refund/notify"); WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount(); amount.setRefund(rechargeAmount.multiply(new BigDecimal(100)).intValue()); amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue()); @@ -1115,7 +1115,7 @@ model.setOut_trade_no(chargingOrder.getCode()); model.setOut_refund_no(chargingOrderRefund.getRefundCode()); model.setReason("充电完成退款"); - model.setNotify_url("http://221.182.45.100:9000/order/t-charging-order/chargingOrderStartupFailureWxRefund"); + model.setNotify_url("/payment/wx/refund/notify"); WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount(); amount.setRefund(refundAmount.multiply(new BigDecimal(100)).intValue()); amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue()); 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 6c834a0..3a1672f 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,7 @@ 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; @@ -37,6 +38,9 @@ @Resource private OrderClient orderClient; + + @Resource + private ChargingOrderClient chargingOrderClient; @@ -121,6 +125,7 @@ log.info("支付回调:{}", params); 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){ //购物订单 @@ -131,6 +136,10 @@ 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; } @@ -180,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