|  |  | 
 |  |  | using LifePayment.Domain.Shared; | 
 |  |  | using Microsoft.Extensions.Options; | 
 |  |  | using System.Threading.Tasks; | 
 |  |  | using ZeroD.Util.Fadd; | 
 |  |  |  | 
 |  |  | namespace LifePayment.Domain | 
 |  |  | { | 
 |  |  |     public class WxPayApi : WxClient, IWxPayApi | 
 |  |  |     { | 
 |  |  |         private readonly WxPayOption _wxPayOptions; | 
 |  |  |  | 
 |  |  |         public WxPayApi(IOptions<WxPayOption> wxPayOptions) | 
 |  |  |         { | 
 |  |  |             _wxPayOptions = wxPayOptions.Value; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public async Task<PayTransactionsNativeReponse> PayTransactionsNative(PayTransactionsNativeInput input) | 
 |  |  |         { | 
 |  |  |             var result = await PostAsync<PayTransactionsNativeInput, PayTransactionsNativeReponse>(input, LifePaymentConstant.PayTransactionsNative); | 
 |  |  | 
 |  |  |             return result; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public async Task<WxPayDomesticRefundsQueryReponse> WxPayDomesticRefundsQuery(string outTradeNo) | 
 |  |  |         { | 
 |  |  |             var url = $"{string.Format(LifePaymentConstant.WxPayDomesticRefundsQuery, outTradeNo)}"; | 
 |  |  |             var result = await Certificates<WxPayDomesticRefundsQueryReponse>(url); | 
 |  |  |             return result; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public async Task<WxPayTradeQueryReponse> WxPayTradeQuery(string outTradeNo) | 
 |  |  |         { | 
 |  |  |             var url = $"{string.Format(LifePaymentConstant.WxPayTradeQyery, outTradeNo, _wxPayOptions.Mchid)}"; | 
 |  |  |             var result = await Certificates<WxPayTradeQueryReponse>(url); | 
 |  |  |             return result; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public async Task<WxPayTradeBillApplyReponse> WxPayTradeBillApply(WxPayTradeBillApplyRequest input) | 
 |  |  |         { | 
 |  |  |             var result = await NomalPostAsync<WxPayTradeBillApplyRequest, WxPayTradeBillApplyReponse>(input, LifePaymentConstant.WxPayTradeBillApply); |