修复一次支付发放两张会员卡的问题

This commit was merged in pull request #45.
This commit is contained in:
2026-06-28 17:56:31 +08:00
parent f8279129be
commit 80759f6793
5 changed files with 2983 additions and 78 deletions
@@ -222,28 +222,25 @@ public class PaymentServiceImpl implements PaymentService {
if ("00000000".equals(respCode)) {
if ("S".equals(transStat)) {
if (!"SUCCESS".equals(order.getPayStatus())) {
log.info("[Huifu] 查询到支付成功,更新订单状态并触发业务处理, orderNo={}, orderType={}",
order.getOrderNo(), order.getOrderType());
log.info("[Huifu] 查询到支付成功,更新订单状态业务处理由汇付异步回调触发), orderNo={}", order.getOrderNo());
order.setPayStatus("SUCCESS");
order.setHfSeqId(String.valueOf(response.getOrDefault("hf_seq_id", order.getHfSeqId())));
order.setPayTime(LocalDateTime.now());
return paymentOrderRepository.save(order)
.flatMap(savedOrder -> {
log.info("[Huifu] 订单状态已更新,开始触发业务处理, orderNo={}", savedOrder.getOrderNo());
return paymentNotifyService.notifyPaymentStatus(savedOrder.getOrderNo(), "SUCCESS", memberId)
.thenReturn(convertToResponse(savedOrder));
.map(savedOrder -> {
log.info("[Huifu] 订单状态已更新为SUCCESS, orderNo={}", savedOrder.getOrderNo());
return convertToResponse(savedOrder);
});
} else {
log.info("[Huifu] 订单已处理过,跳过业务处理, orderNo={}", order.getOrderNo());
log.info("[Huifu] 订单已处理过,跳过, orderNo={}", order.getOrderNo());
}
} else if ("F".equals(transStat)) {
if (!"FAIL".equals(order.getPayStatus())) {
log.info("[Huifu] 查询到支付失败,更新订单状态, orderNo={}", order.getOrderNo());
log.info("[Huifu] 查询到支付失败,更新订单状态, orderNo={}", order.getOrderNo());
order.setPayStatus("FAIL");
order.setErrorMsg(String.valueOf(response.getOrDefault("resp_desc", "支付失败")));
return paymentOrderRepository.save(order)
.flatMap(savedOrder -> paymentNotifyService.notifyPaymentStatus(savedOrder.getOrderNo(), "FAIL", memberId)
.thenReturn(convertToResponse(savedOrder)));
.map(savedOrder -> convertToResponse(savedOrder));
}
} else if ("P".equals(transStat)) {
order.setPayStatus("PENDING");