From 2d8cb7ff2c2d9feadb83e8495a49e70354263ecb Mon Sep 17 00:00:00 2001 From: jkcdev Date: Tue, 20 May 2025 10:55:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E6=AC=BE=E5=90=84?= =?UTF-8?q?=E4=B8=AA=E7=8E=AF=E8=8A=82=E5=90=8C=E6=AD=A5=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=9A=84=E5=AE=9E=E7=8E=B0=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A06-=E9=80=80=E6=AC=BE=E7=94=B3=E8=AF=B7=E4=B8=AD=207-?= =?UTF-8?q?=E9=80=80=E6=AC=BE=E9=A9=B3=E5=9B=9E=208-=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E4=B8=89=E7=A7=8D=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EbikeWxPaymentController.java | 7 +----- .../service/impl/EbikeRefundServiceImpl.java | 17 ++++++++------ .../service/impl/WxPayServiceImpl.java | 23 ++++++++++++------- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java b/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java index 81a0274b..d1f73651 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/controller/EbikeWxPaymentController.java @@ -85,12 +85,7 @@ public class EbikeWxPaymentController { @PostMapping("/refund") public JsonResult refund(@RequestBody ReqRefundDto refundDto) { HandleNotifyResult r = wxPayService.refund(refundDto); - if (r.isSuccess()) - return JsonResult.success(); - JSONObject error = JSONObject.parseObject(r.getMessage()); - if (error==null) - return JsonResult.failed(r.getMessage()); - return JsonResult.failed("退款失败", error); + return r.isSuccess()?JsonResult.success(true):JsonResult.failed(r.getMessage()); } /** diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java index 0ec226c1..b4dbc195 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/EbikeRefundServiceImpl.java @@ -42,7 +42,7 @@ public class EbikeRefundServiceImpl extends ServiceImpl ordersFeignClient.refund(orderId); + case SUCCESS -> ordersFeignClient.doneRefund(orderId); + case ABNORMAL -> ordersFeignClient.failRefund(orderId); } return updateById(ebikeRefund); } diff --git a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/WxPayServiceImpl.java b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/WxPayServiceImpl.java index cd44ffe9..229e36e0 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/service/impl/WxPayServiceImpl.java +++ b/ebike-payment/src/main/java/com/cdzy/payment/service/impl/WxPayServiceImpl.java @@ -366,7 +366,6 @@ public class WxPayServiceImpl implements WxPayService { ebikeRefund.setRefundApply(ebikePayment.getTotal()); ebikeRefund.setTransactionId(transactionId); ebikeRefund.setReason(reason); - ebikeRefund.setStatus(String.valueOf(Status.PROCESSING.ordinal())); ebikeRefund.setProcessState(String.valueOf(RefundProcessState.applying.ordinal())); ebikeRefund.setSource(String.valueOf(RefoundApplySource.user.ordinal())); ebikeRefundService.saveRefundResult(ebikeRefund); @@ -388,6 +387,10 @@ public class WxPayServiceImpl implements WxPayService { ebikeRefund.setRefund(ebikeRefund.getRefundApply()); ebikeRefund.setRefundMethod(processDto.getMethod()); } + if (String.valueOf(RefundProcessState.closed.ordinal()).equals(processDto.getOperate())) { + // 更新订单状态 + ordersFeignClient.rejectRefund(Long.valueOf(ebikeRefund.getOrderId())); + } return ebikeRefundService.updateById(ebikeRefund); } @@ -452,12 +455,11 @@ public class WxPayServiceImpl implements WxPayService { ebikeRefund.setTotal(amount.getTotal()); ebikeRefund.setStatus(String.valueOf(result.getStatus().ordinal())); ebikeRefund.setCurrency(amount.getCurrency()); - if (Status.SUCCESS.equals(result.getStatus())) { - ebikeRefund.setRefund(result.getAmount().getRefund().doubleValue() / 100.0); - ebikeRefund.setRefundTime(LocalDateTime.now()); - ebikeRefund.setRemark(refundDto.getRemark()); - ebikeRefund.setRefundTransactionId(result.getRefundId()); - } + ebikeRefund.setRefund(result.getAmount().getRefund().doubleValue() / 100.0); + ebikeRefund.setRefundTime(LocalDateTime.now()); + ebikeRefund.setRemark(refundDto.getRemark()); + ebikeRefund.setProcessState(String.valueOf(RefundProcessState.processed.ordinal())); + ebikeRefund.setRefundTransactionId(result.getRefundId()); ebikeRefundService.updateById(ebikeRefund); result_.setSuccess(true); result_.setMessage("退款成功"); @@ -468,7 +470,12 @@ public class WxPayServiceImpl implements WxPayService { return result_; } catch (Exception e) { String err = logError("退款refund", e); - result_.setMessage(err); + try { + JSONObject json = JSON.parseObject(err); + result_.setMessage(json.getString("message")); + }catch (Exception ex) { + result_.setMessage(err); + } return result_; } }