using Alipay.EasySDK.Factory; using Alipay.EasySDK.Kernel; using Alipay.EasySDK.Payment.Common.Models; using Alipay.EasySDK.Payment.FaceToFace.Models; using LifePayment.Domain.Shared; using Microsoft.Extensions.Options; using System.Threading.Tasks; namespace LifePayment.Domain { public class AliPayApi : IAliPayApi { private readonly Config _options; public AliPayApi( IOptionsMonitor optionsMonitor) { _options = optionsMonitor.CurrentValue; } public async Task GetAliPayQRCode(GetPayQrCodeInput input) { AlipayTradePrecreateResponse response = Factory.Payment.FaceToFace() .AsyncNotify($"{_options.NotifyUrl}{LifePaymentConstant.AliRechargeNotifySectionUrl}") .PreCreate(input.Subject, input.OutTradeNo, input.TotalAmount.ToString()); return response; } public AlipayTradeQueryResponse OrderInQuiry(OrderInQuiryInput input) { AlipayTradeQueryResponse response = Factory.Payment.Common().Query(input.OutTradeNo); return response; } public async Task TradeRefund(AlipayTradeRefundRequest input) { AlipayTradeRefundResponse response = Factory.Payment.Common().Refund(input.OutTradeNo,input.RefundAmount); return response; } } }