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 Nest;
|
using System.Threading.Tasks;
|
|
namespace LifePayment.Domain
|
{
|
public class AliPayApi : IAliPayApi
|
{
|
private readonly Config _options;
|
|
public AliPayApi(
|
IOptionsMonitor<Config> optionsMonitor)
|
{
|
_options = optionsMonitor.CurrentValue;
|
}
|
|
public async Task<AlipayTradePrecreateResponse> GetAliPayQRCode(GetPayQrCodeInput input)
|
{
|
AlipayTradePrecreateResponse response = Factory.Payment.FaceToFace()
|
.AsyncNotify($"{_options.NotifyUrl}{LifePaymentConstant.AliRechargeNotifySectionUrl}")
|
.PreCreate(input.Subject,
|
input.OutTradeNo,
|
input.TotalAmount.ToString());
|
return response;
|
}
|
|
public async Task<AlipayTradeQueryResponse> OrderInQuiry(OrderInQuiryInput input)
|
{
|
AlipayTradeQueryResponse response = Factory.Payment.Common().Query(input.OutTradeNo);
|
return response;
|
}
|
|
public async Task<AlipayTradeRefundResponse> TradeRefund(AlipayTradeRefundRequest input)
|
{
|
AlipayTradeRefundResponse response = Factory.Payment.Common().Refund(input.OutTradeNo,input.RefundAmount);
|
return response;
|
}
|
|
}
|
}
|