| | |
| | | { |
| | | await using var orderLock = await distributedLock.TryAcquireAsync($"LockKey:UpdateOrder:{orderNo}", TimeSpan.FromSeconds(60)); |
| | | _logger.LogInformation($"锁:LockKey:UpdateOrder:{orderNo} - {orderLock != null}"); |
| | | |
| | | try |
| | | { |
| | | var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync(); |
| | | |
| | | CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "订单不存在"); |
| | |
| | | await _lifePayOrderService.CreatLifePayConsumption(acoolyStatus, order.OrderNo, order.ACOOLYOrderNo, |
| | | order.PlatformDeductionAmount ?? 0, order.ChannelId, order.CreationTime, order.FinishTime, order.ChannleRate, parValue, actualParValue); |
| | | |
| | | await CurrentUnitOfWork.SaveChangesAsync(); |
| | | await CurrentUnitOfWork.CompleteAsync(); |
| | | |
| | | _logger.LogInformation("事务完成"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | await CurrentUnitOfWork.RollbackAsync(); |
| | | _logger.LogError($"供应商回调异常:{ex.Message}", ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [AllowAnonymous] |
| | | [UnitOfWork(false)] |
| | | public async Task ACOOLYNotify() |
| | | { |
| | | _logger.LogError("ACOOLY回调通知开始进入"); |
| | |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [UnitOfWork(false)] |
| | | public async Task<ContentResult> AliRechargeNotify() |
| | | { |
| | | _logger.LogError($"生活管家支付宝充值回调通知:进入支付宝回调"); |
| | |
| | | |
| | | if (input.OutTradeNo.Contains("JF")) |
| | | { |
| | | try |
| | | { |
| | | if (input.TradeStatus == LifePaymentConstant.AliPayStatus.支付成功 && input.OutBizNo.IsNullOrEmpty()) |
| | | { |
| | | await _lifePayService.LifePaySuccessHandler(input.OutTradeNo, input.TradeNo); |
| | |
| | | ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses |
| | | }); |
| | | await CurrentUnitOfWork.SaveChangesAsync(); |
| | | _logger.LogInformation("事务完成"); |
| | | } |
| | | else if (((input.TradeStatus == LifePaymentConstant.AliPayStatus.支付成功 || input.TradeStatus == LifePaymentConstant.AliPayStatus.超时关闭) |
| | | && input.OutBizNo.IsNotNullOrEmpty() |
| | |
| | | LifePayType = LifePayTypeEnum.AliPay, |
| | | ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts |
| | | }); |
| | | await CurrentUnitOfWork.SaveChangesAsync(); |
| | | await CurrentUnitOfWork.CompleteAsync(); |
| | | _logger.LogInformation("事务完成"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | await CurrentUnitOfWork.RollbackAsync(); |
| | | _logger.LogError($"支付宝支付回调异常:{ex.Message}", ex); |
| | | } |
| | | } |
| | | else |
| | |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [UnitOfWork(false)] |
| | | public async Task<WxRechargeNotifyResult> WxRechargeNotify(WxRechargeNotifyInput input) |
| | | { |
| | | try |
| | |
| | | AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10) |
| | | }); |
| | | |
| | | await CurrentUnitOfWork.SaveChangesAsync(); |
| | | await CurrentUnitOfWork.CompleteAsync(); |
| | | _logger.LogInformation("事务完成"); |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | await CurrentUnitOfWork.RollbackAsync(); |
| | | _logger.LogError($"微信支付回调异常:{ex.Message}", ex); |
| | | return new WxRechargeNotifyResult |
| | | { |
| | | Code = "FAIL", |