using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Flurl; using Flurl.Http; namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 { public static class WechatTenpayClientExecuteBankTransferExtensions { #region Batches /// /// 异步调用 [POST] /bank-transfer/batches 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCreateBankTransferBatchAsync(this WechatTenpayClient client, Models.CreateBankTransferBatchRequest 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, "bank-transfer", "batches"); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /bank-transfer/batches/out-batch-no/{out_batch_no} 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteGetBankTransferBatchByOutBatchNumberAsync(this WechatTenpayClient client, Models.GetBankTransferBatchByOutBatchNumberRequest 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, "bank-transfer", "batches", "out-batch-no", request.OutBatchNumber) .SetQueryParam("need_query_detail", request.RequireQueryDetail) .SetQueryParam("detail_status", request.DetailStatus) .SetQueryParam("offset", request.Offset) .SetQueryParam("limit", request.Limit); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /bank-transfer/batches/batch-id/{batch_id} 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteGetBankTransferBatchByBatchIdAsync(this WechatTenpayClient client, Models.GetBankTransferBatchByBatchIdRequest 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, "bank-transfer", "batches", "batch-id", request.BatchId) .SetQueryParam("need_query_detail", request.RequireQueryDetail) .SetQueryParam("detail_state", request.DetailStatus) .SetQueryParam("offset", request.Offset) .SetQueryParam("limit", request.Limit); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /bank-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no} 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteGetBankTransferBatchDetailByOutDetailNumberAsync(this WechatTenpayClient client, Models.GetBankTransferBatchDetailByOutDetailNumberRequest 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, "bank-transfer", "batches", "out-batch-no", request.OutBatchNumber, "details", "out-detail-no", request.OutDetailNumber); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /bank-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteGetBankTransferBatchDetailByDetailIdAsync(this WechatTenpayClient client, Models.GetBankTransferBatchDetailByDetailIdRequest 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, "bank-transfer", "batches", "batch-id", request.BatchId, "details", "detail-id", request.DetailId); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion #region Receipt /// /// 异步调用 [POST] /bank-batch-transfer/receipt/summary-receipts 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCreateBankBatchTransferSummaryReceiptAsync(this WechatTenpayClient client, Models.CreateBankBatchTransferSummaryReceiptRequest 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, "bank-batch-transfer", "receipt", "summary-receipts"); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /bank-batch-transfer/receipt/summary-receipts 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteGetBankBatchTransferSummaryReceiptByOutBatchNumberAsync(this WechatTenpayClient client, Models.GetBankBatchTransferSummaryReceiptByOutBatchNumberRequest 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, "bank-batch-transfer", "receipt", "summary-receipts") .SetQueryParam("out_batch_no", request.OutBatchNumber); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [POST] /bank-batch-transfer/receipt/detail-receipts 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteCreateBankBatchTransferDetailReceiptAsync(this WechatTenpayClient client, Models.CreateBankBatchTransferDetailReceiptRequest 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, "bank-batch-transfer", "receipt", "detail-receipts"); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// 异步调用 [GET] /bank-batch-transfer/receipt/detail-receipts 接口。 /// /// REF:
/// ///
///
/// /// /// /// public static async Task ExecuteGetBankBatchTransferDetailReceiptByOutDetailNumberAsync(this WechatTenpayClient client, Models.GetBankBatchTransferDetailReceiptByOutDetailNumberRequest 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, "bank-batch-transfer", "receipt", "detail-receipts") .SetQueryParam("out_batch_no", request.OutBatchNumber) .SetQueryParam("out_detail_no", request.OutDetailNumber); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion } }