zhengyuxuan
2025-03-30 65e7b312659c358970262b027901bb55d764f0f9
LifePayment/LifePayment.Domain/WeChat/WxPayApi.cs
@@ -1,10 +1,19 @@
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);
@@ -31,7 +40,33 @@
        public async Task<WxPayDomesticRefundsReponse> WxPayDomesticRefunds(WxPayDomesticRefundsRequest input)
        {
            var result = await RefundsPostAsync<WxPayDomesticRefundsRequest, WxPayDomesticRefundsReponse>(input, LifePaymentConstant.WxPayDomesticRefunds);
            var result = await NomalPostAsync<WxPayDomesticRefundsRequest, WxPayDomesticRefundsReponse>(input, LifePaymentConstant.WxPayDomesticRefunds);
            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);
            return result;
        }
        public async Task<WxPayTradeBillQueryReponse> WxPayTradeBillQuery(WxPayTradeBillQueryRequest input)
        {
            var result = await NomalPostAsync<WxPayTradeBillQueryRequest, WxPayTradeBillQueryReponse>(input, LifePaymentConstant.WxPayTradeBillQuery);
            return result;
        }
    }