Commit 36a657cb by 郑云飞

退款bugfix

parent 7becfd9a
......@@ -530,9 +530,17 @@ public class DbOrderServiceImpl implements IDbOrderService {
if (ObjectUtils.isEmpty(order)) {
return R.fail("订单不存在");
}
String refundNo = CodeUtils.createSerialNumber("TK");
if (order.getStatus() == OrderStatusEnum.REFUNDED.getCode()) {
return R.fail("此订单已退款,请勿重复提交");
}
if (order.getPayAmount().compareTo(refundAmount) < 0) {
return R.fail("退款金额大于已支付金额,请重新填写");
}
if (StringUtils.isEmpty(order.getRefundNo())) {
String refundNo = CodeUtils.createSerialNumber("TK");
order.setRefundNo(refundNo);
}
// 修改订单
order.setRefundNo(refundNo);
order.setRefundAmount(refundAmount);
baseMapper.updateById(order);
// 组装退款参数
......@@ -540,13 +548,13 @@ public class DbOrderServiceImpl implements IDbOrderService {
request.setTransactionId(order.getWxOrderNo());
request.setTotalFee(order.getPayAmount().multiply(BigDecimal.valueOf(100L)).intValue());
request.setRefundFee(refundAmount.multiply(BigDecimal.valueOf(100L)).intValue());
request.setOutRefundNo(refundNo);
request.setOutRefundNo(order.getRefundNo());
request.setNotifyUrl(refundNotifyUrl);
// 发起退款
try {
WxPayRefundResult refund = wxPayService.refund(request);
if ("SUCCESS".equals(refund.getReturnCode())) {
return R.ok("退款申请成功");
return R.ok("退款成功");
}
} catch (WxPayException e) {
log.error("退款报错:{}", e.getMessage());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment