using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Flurl; using Flurl.Http; namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global { public static class WechatTenpayGlobalClientExecutePartnerRefundExtensions { /// /// 异步调用 [POST] /refunds 接口。 /// /// REF:
///
///
///
///
///
///
/// ///
///
/// /// /// /// public static async Task ExecuteCreatePartnerRefundAsync(this WechatTenpayGlobalClient client, Models.CreatePartnerRefundRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); if (request.MerchantId is null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Post, "refunds"); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /refunds/out-refund-no/{out_refund_no} 接口。 /// /// REF:
///
///
///
///
///
///
/// ///
///
/// /// /// /// public static async Task ExecuteGetPartnerRefundByOutRefundNumberAsync(this WechatTenpayGlobalClient client, Models.GetPartnerRefundByOutRefundNumberRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); if (request.MerchantId is null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Get, "refunds", "out-refund-no", request.OutRefundNumber) .SetQueryParam("sp_mchid", request.MerchantId) .SetQueryParam("sub_mchid", request.SubMerchantId); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /refunds/id/{refund_id} 接口。 /// /// REF:
///
///
///
///
///
///
/// ///
///
/// /// /// /// public static async Task ExecuteGetPartnerRefundByIdAsync(this WechatTenpayGlobalClient client, Models.GetPartnerRefundByIdRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); if (request.MerchantId is null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Get, "refunds", "id", request.RefundId) .SetQueryParam("sp_mchid", request.MerchantId) .SetQueryParam("sub_mchid", request.SubMerchantId); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /refunds 接口。 /// /// REF:
///
///
///
///
///
///
/// ///
///
/// /// /// /// public static async Task ExecuteQueryPartnerRefundsAsync(this WechatTenpayGlobalClient client, Models.QueryPartnerRefundsRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); if (request.MerchantId is null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Get, "refunds") .SetQueryParam("sp_mchid", request.MerchantId) .SetQueryParam("sub_mchid", request.SubMerchantId) .SetQueryParam("out_trade_no", request.OutTradeNumber) .SetQueryParam("transaction_id", request.TransactionId) .SetQueryParam("offset", request.Offset) .SetQueryParam("count", request.Limit); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } } }