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_; } }