using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
{
public static class WechatTenpayClientExecutePasswordExemptContractExtensions
{
///
/// 异步调用 [POST] /password-exempt-contract/contracts/qs/pre-entrust-sign/mini-program 接口。
///
/// REF:
///
///
///
///
///
///
///
public static async Task ExecutePresignPasswordExemptContractQsEntrustMiniProgramAsync(this WechatTenpayClient client, Models.PresignPasswordExemptContractQsEntrustMiniProgramRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "password-exempt-contract", "contracts", "qs", "pre-entrust-sign", "mini-program");
return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
///
/// 异步调用 [POST] /password-exempt-contract/contracts/qs/pre-entrust-sign/pay-redirect-sign 接口。
///
/// REF:
///
///
///
///
///
///
///
public static async Task ExecutePresignPasswordExemptContractQsEntrustPayRedirectSignAsync(this WechatTenpayClient client, Models.PresignPasswordExemptContractQsEntrustPayRedirectSignRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "password-exempt-contract", "contracts", "qs", "pre-entrust-sign", "pay-redirect-sign");
return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
///
/// 异步调用 [POST] /password-exempt-contract/contracts/service-provider/pre-entrust-sign/mini-program 接口。
///
/// REF:
///
///
///
///
///
///
///
public static async Task ExecutePresignPasswordExemptContractServiceProviderEntrustMiniProgramAsync(this WechatTenpayClient client, Models.PresignPasswordExemptContractServiceProviderEntrustMiniProgramRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "password-exempt-contract", "contracts", "service-provider", "pre-entrust-sign", "mini-program");
return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
///
/// 异步调用 [POST] /password-exempt-contract/contracts/service-provider/pre-entrust-sign/pay-redirect-sign 接口。
///
/// REF:
///
///
///
///
///
///
///
public static async Task ExecutePresignPasswordExemptContractServiceProviderEntrustPayRedirectSignAsync(this WechatTenpayClient client, Models.PresignPasswordExemptContractServiceProviderEntrustPayRedirectSignRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "password-exempt-contract", "contracts", "service-provider", "pre-entrust-sign", "pay-redirect-sign");
return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
///
/// 异步调用 [GET] /password-exempt-contract/contracts/service-id/{service_id}/out-contract-code/{out_contract_code} 接口。
///
/// REF:
///
///
///
///
///
///
///
public static async Task ExecuteGetPasswordExemptContractByOutContractCodeAsync(this WechatTenpayClient client, Models.GetPasswordExemptContractByOutContractCodeRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Get, "password-exempt-contract", "contracts", "service-id", request.ServiceId, "out-contract-code", request.OutContractCode);
return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
///
/// 异步调用 [POST] /password-exempt-contract/contracts/service-id/{service_id}/out-contract-code/{out_contract_code}/terminate 接口。
///
/// REF:
///
///
///
///
///
///
///
public static async Task ExecuteTerminatePasswordExemptContractAsync(this WechatTenpayClient client, Models.TerminatePasswordExemptContractRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "password-exempt-contract", "contracts", "service-id", request.ServiceId, "out-contract-code", request.OutContractCode, "terminate");
return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
}
}