| | |
| | | using LifePayment.Domain; |
| | | using LifePayment.Domain.Shared; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.Extensions.Caching.Distributed; |
| | | using Microsoft.Extensions.Logging; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | | using Volo.Abp.AspNetCore.Mvc; |
| | | using Volo.Abp.Caching; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace LifePayment.HttpApi |
| | |
| | | private readonly IWxPayApi _wxPayApi; |
| | | private readonly ILifePayService _lifePayService; |
| | | private readonly ILifePayOrderService _lifePayOrderService; |
| | | private readonly IDistributedCache<string> distributedCache; |
| | | private readonly ILogger<WxPayNotifyController> _logger; |
| | | |
| | | public WxPayNotifyController( |
| | | IWxPayApi wxPayApi, |
| | | ILogger<WxPayNotifyController> logger, |
| | | ILifePayService lifePayService, |
| | | ILifePayOrderService lifePayOrderService) |
| | | ILifePayOrderService lifePayOrderService, |
| | | IDistributedCache<string> distributedCache) |
| | | { |
| | | _wxPayApi = wxPayApi; |
| | | _logger = logger; |
| | | _lifePayService = lifePayService; |
| | | _lifePayOrderService = lifePayOrderService; |
| | | this.distributedCache = distributedCache; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | if (wxPayNotice.TradeState == LifePaymentConstant.WxPayStatus.支付成功) |
| | | { |
| | | var key = $"WxRechargeNotify_{wxPayNotice.OutTradeNo}"; |
| | | if (string.IsNullOrWhiteSpace(distributedCache.Get(key))) |
| | | { |
| | | await _lifePayService.LifePaySuccessHandler(wxPayNotice.OutTradeNo, wxPayNotice.TransactionId); |
| | | |
| | | // 插入收支流水 |
| | |
| | | ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses, |
| | | Amount = wxPayNotice.Amount.Total |
| | | }); |
| | | |
| | | distributedCache.Set(key, data, new DistributedCacheEntryOptions |
| | | { |
| | | AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10) |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } |