From e0f2b29f3349d43e7f4222e079c54ba9cc4b6ee1 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 16 六月 2025 11:09:23 +0800 Subject: [PATCH] fix:支付回调及供应商回调并发问题修订 --- LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs | 59 +++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 35 insertions(+), 24 deletions(-) diff --git a/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs b/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs index 9450126..97c023c 100644 --- a/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs +++ b/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs @@ -49,6 +49,7 @@ /// </summary> /// <returns></returns> [HttpPost] + [UnitOfWork(false)] public async Task<ContentResult> AliRechargeNotify() { _logger.LogError($"鐢熸椿绠″鏀粯瀹濆厖鍊煎洖璋冮�氱煡锛氳繘鍏ユ敮浠樺疂鍥炶皟"); @@ -65,34 +66,44 @@ if (input.OutTradeNo.Contains("JF")) { - if (input.TradeStatus == LifePaymentConstant.AliPayStatus.鏀粯鎴愬姛 && input.OutBizNo.IsNullOrEmpty()) + try { - await _lifePayService.LifePaySuccessHandler(input.OutTradeNo, input.TradeNo); - // 鎻掑叆鏀舵敮娴佹按 - await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() + if (input.TradeStatus == LifePaymentConstant.AliPayStatus.鏀粯鎴愬姛 && input.OutBizNo.IsNullOrEmpty()) { - OrderNo = input.OutTradeNo, - OutOrderNo = input.TradeNo, - LifePayType = LifePayTypeEnum.AliPay, - ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses - }); - await CurrentUnitOfWork.SaveChangesAsync(); + await _lifePayService.LifePaySuccessHandler(input.OutTradeNo, input.TradeNo); + // 鎻掑叆鏀舵敮娴佹按 + await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() + { + OrderNo = input.OutTradeNo, + OutOrderNo = input.TradeNo, + LifePayType = LifePayTypeEnum.AliPay, + ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses + }); + await CurrentUnitOfWork.SaveChangesAsync(); + _logger.LogInformation("浜嬪姟瀹屾垚"); + } + else if (((input.TradeStatus == LifePaymentConstant.AliPayStatus.鏀粯鎴愬姛 || input.TradeStatus == LifePaymentConstant.AliPayStatus.瓒呮椂鍏抽棴) + && input.OutBizNo.IsNotNullOrEmpty() + && (input.RefundFee.HasValue && input.RefundFee > 0))) + { + await _lifePayService.LifePayRefundsHandler(input.OutTradeNo, LifePayRefundStatusEnum.宸查��娆�); + // 鎻掑叆鏀舵敮娴佹按 + await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() + { + OrderNo = input.OutTradeNo, + OutRefundNo = input.OutBizNo, + OutOrderNo = input.TradeNo, + LifePayType = LifePayTypeEnum.AliPay, + ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts + }); + await CurrentUnitOfWork.SaveChangesAsync(); + _logger.LogInformation("浜嬪姟瀹屾垚"); + } } - else if (((input.TradeStatus == LifePaymentConstant.AliPayStatus.鏀粯鎴愬姛 || input.TradeStatus == LifePaymentConstant.AliPayStatus.瓒呮椂鍏抽棴) - && input.OutBizNo.IsNotNullOrEmpty() - && (input.RefundFee.HasValue && input.RefundFee > 0))) + catch (Exception ex) { - await _lifePayService.LifePayRefundsHandler(input.OutTradeNo, LifePayRefundStatusEnum.宸查��娆�); - // 鎻掑叆鏀舵敮娴佹按 - await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() - { - OrderNo = input.OutTradeNo, - OutRefundNo = input.OutBizNo, - OutOrderNo = input.TradeNo, - LifePayType = LifePayTypeEnum.AliPay, - ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts - }); - await CurrentUnitOfWork.SaveChangesAsync(); + await CurrentUnitOfWork.RollbackAsync(); + _logger.LogError($"鏀粯瀹濇敮浠樺洖璋冨紓甯革細{ex.Message}", ex); } } else -- Gitblit v1.9.1