using System; using System.Threading.Tasks; using Essensoft.AspNetCore.Payment.WeChatPay; using Essensoft.AspNetCore.Payment.WeChatPay.Notify; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; namespace WebApplicationSample.Controllers { [Route("wechatpay/v3/notify")] public class WeChatPayV3NotifyController : Controller { private readonly IWeChatPayV3NotifyClient _client; private readonly IOptions _optionsAccessor; public WeChatPayV3NotifyController(IWeChatPayV3NotifyClient client, IOptions optionsAccessor) { _client = client; _optionsAccessor = optionsAccessor; } /// /// 支付结果通知 /// [Route("transactions")] [HttpPost] public async Task Transactions() { try { var notify = await _client.ExecuteAsync(Request, _optionsAccessor.Value); if (notify.TradeState == WeChatPayTradeState.Success) { Console.WriteLine("OutTradeNo: " + notify.OutTradeNo); return WeChatPayV3NotifyResult.Success; } return NoContent(); } catch { return NoContent(); } } } }