mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-20 02:29:40 +08:00
feat(tenpayv3): 新增银行批量转账相关接口
This commit is contained in:
@@ -0,0 +1,210 @@
|
||||
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
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /bank-transfer/batches 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_2_1.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreateBankTransferBatchResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Post, "bank-transfer", "batches");
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CreateBankTransferBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /bank-transfer/batches/out-batch-no/{out_batch_no} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_4.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetBankTransferBatchByOutBatchNumberResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Get, "bank-transfer", "batches", "out-batch-no", request.OutBatchNumber)
|
||||
.SetQueryParam("need_query_detail", request.RequireQueryDetail);
|
||||
|
||||
if (request.DetailStatus != null)
|
||||
flurlReq.SetQueryParam("detail_status", request.DetailStatus);
|
||||
|
||||
if (request.Offset != null)
|
||||
flurlReq.SetQueryParam("offset", request.Offset.Value);
|
||||
|
||||
if (request.Limit != null)
|
||||
flurlReq.SetQueryParam("limit", request.Limit.Value);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetBankTransferBatchByOutBatchNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /bank-transfer/batches/batch-id/{batch_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_2_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetBankTransferBatchByBatchIdResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Get, "bank-transfer", "batches", "batch-id", request.BatchId)
|
||||
.SetQueryParam("need_query_detail", request.RequireQueryDetail);
|
||||
|
||||
if (request.DetailStatus != null)
|
||||
flurlReq.SetQueryParam("detail_state", request.DetailStatus);
|
||||
|
||||
if (request.Offset != null)
|
||||
flurlReq.SetQueryParam("offset", request.Offset.Value);
|
||||
|
||||
if (request.Limit != null)
|
||||
flurlReq.SetQueryParam("limit", request.Limit.Value);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetBankTransferBatchByBatchIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /bank-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_5.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetBankTransferBatchDetailByOutDetailNumberResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Get, "bank-transfer", "batches", "out-batch-no", request.OutBatchNumber, "details", "out-detail-no", request.OutDetailNumber);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetBankTransferBatchDetailByOutDetailNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /bank-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_3.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetBankTransferBatchDetailByDetailIdResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Get, "bank-transfer", "batches", "batch-id", request.BatchId, "details", "detail-id", request.DetailId);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetBankTransferBatchDetailByDetailIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Receipt
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /bank-batch-transfer/receipt/summary-receipts 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_2_6.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreateBankBatchTransferSummaryReceiptResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Post, "bank-batch-transfer", "receipt", "summary-receipts");
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CreateBankBatchTransferSummaryReceiptResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /bank-batch-transfer/receipt/summary-receipts 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_2_7.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetBankBatchTransferSummaryReceiptByOutBatchNumberResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Get, "bank-batch-transfer", "receipt", "summary-receipts")
|
||||
.SetQueryParam("out_batch_no", request.OutBatchNumber);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetBankBatchTransferSummaryReceiptByOutBatchNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /bank-batch-transfer/receipt/detail-receipts 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_2_8.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreateBankBatchTransferDetailReceiptResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Post, "bank-batch-transfer", "receipt", "detail-receipts");
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CreateBankBatchTransferDetailReceiptResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /bank-batch-transfer/receipt/detail-receipts 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_2_9.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetBankBatchTransferDetailReceiptByOutDetailNumberResponse> 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
|
||||
.CreateRequest(request, HttpMethod.Get, "bank-batch-transfer", "receipt", "detail-receipts")
|
||||
.SetQueryParam("out_batch_no", request.OutBatchNumber)
|
||||
.SetQueryParam("out_detail_no", request.OutDetailNumber);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetBankBatchTransferDetailReceiptByOutDetailNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -29,54 +29,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
return await client.SendRequestWithJsonAsync<Models.CreatePartnerTransferBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /partner-transfer/batches/batch-id/{batch_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPartnerTransferBatchByBatchIdResponse> ExecuteGetPartnerTransferBatchByBatchIdAsync(this WechatTenpayClient client, Models.GetPartnerTransferBatchByBatchIdRequest 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
|
||||
.CreateRequest(request, HttpMethod.Get, "partner-transfer", "batches", "batch-id", request.BatchId)
|
||||
.SetQueryParam("need_query_detail", request.RequireQueryDetail);
|
||||
|
||||
if (request.DetailStatus != null)
|
||||
flurlReq.SetQueryParam("detail_status", request.DetailStatus);
|
||||
|
||||
if (request.Offset != null)
|
||||
flurlReq.SetQueryParam("offset", request.Offset.Value);
|
||||
|
||||
if (request.Limit != null)
|
||||
flurlReq.SetQueryParam("limit", request.Limit.Value);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetPartnerTransferBatchByBatchIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /partner-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_3.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPartnerTransferBatchDetailByDetailIdResponse> ExecuteGetPartnerTransferBatchDetailByDetailIdAsync(this WechatTenpayClient client, Models.GetPartnerTransferBatchDetailByDetailIdRequest 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
|
||||
.CreateRequest(request, HttpMethod.Get, "partner-transfer", "batches", "batch-id", request.BatchId, "details", "detail-id", request.DetailId);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetPartnerTransferBatchDetailByDetailIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /partner-transfer/batches/out-batch-no/{out_batch_no} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_4.shtml </para>
|
||||
@@ -106,6 +58,35 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
return await client.SendRequestWithJsonAsync<Models.GetPartnerTransferBatchByOutBatchNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /partner-transfer/batches/batch-id/{batch_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPartnerTransferBatchByBatchIdResponse> ExecuteGetPartnerTransferBatchByBatchIdAsync(this WechatTenpayClient client, Models.GetPartnerTransferBatchByBatchIdRequest 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
|
||||
.CreateRequest(request, HttpMethod.Get, "partner-transfer", "batches", "batch-id", request.BatchId)
|
||||
.SetQueryParam("need_query_detail", request.RequireQueryDetail);
|
||||
|
||||
if (request.DetailStatus != null)
|
||||
flurlReq.SetQueryParam("detail_status", request.DetailStatus);
|
||||
|
||||
if (request.Offset != null)
|
||||
flurlReq.SetQueryParam("offset", request.Offset.Value);
|
||||
|
||||
if (request.Limit != null)
|
||||
flurlReq.SetQueryParam("limit", request.Limit.Value);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetPartnerTransferBatchByBatchIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /partner-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_5.shtml </para>
|
||||
@@ -124,6 +105,25 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetPartnerTransferBatchDetailByOutDetailNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /partner-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_3.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPartnerTransferBatchDetailByDetailIdResponse> ExecuteGetPartnerTransferBatchDetailByDetailIdAsync(this WechatTenpayClient client, Models.GetPartnerTransferBatchDetailByDetailIdRequest 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
|
||||
.CreateRequest(request, HttpMethod.Get, "partner-transfer", "batches", "batch-id", request.BatchId, "details", "detail-id", request.DetailId);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetPartnerTransferBatchDetailByDetailIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@@ -29,54 +29,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
return await client.SendRequestWithJsonAsync<Models.CreateTransferBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /transfer/batches/batch-id/{batch_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetTransferBatchByBatchIdResponse> ExecuteGetTransferBatchByBatchIdAsync(this WechatTenpayClient client, Models.GetTransferBatchByBatchIdRequest 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
|
||||
.CreateRequest(request, HttpMethod.Get, "transfer", "batches", "batch-id", request.BatchId)
|
||||
.SetQueryParam("need_query_detail", request.RequireQueryDetail);
|
||||
|
||||
if (request.DetailStatus != null)
|
||||
flurlReq.SetQueryParam("detail_status", request.DetailStatus);
|
||||
|
||||
if (request.Offset != null)
|
||||
flurlReq.SetQueryParam("offset", request.Offset.Value);
|
||||
|
||||
if (request.Limit != null)
|
||||
flurlReq.SetQueryParam("limit", request.Limit.Value);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetTransferBatchByBatchIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetTransferBatchDetailByDetailIdResponse> ExecuteGetTransferBatchDetailByDetailIdAsync(this WechatTenpayClient client, Models.GetTransferBatchDetailByDetailIdRequest 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
|
||||
.CreateRequest(request, HttpMethod.Get, "transfer", "batches", "batch-id", request.BatchId, "details", "detail-id", request.DetailId);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetTransferBatchDetailByDetailIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /transfer/batches/out-batch-no/{out_batch_no} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_5.shtml </para>
|
||||
@@ -106,6 +58,35 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
return await client.SendRequestWithJsonAsync<Models.GetTransferBatchByOutBatchNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /transfer/batches/batch-id/{batch_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetTransferBatchByBatchIdResponse> ExecuteGetTransferBatchByBatchIdAsync(this WechatTenpayClient client, Models.GetTransferBatchByBatchIdRequest 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
|
||||
.CreateRequest(request, HttpMethod.Get, "transfer", "batches", "batch-id", request.BatchId)
|
||||
.SetQueryParam("need_query_detail", request.RequireQueryDetail);
|
||||
|
||||
if (request.DetailStatus != null)
|
||||
flurlReq.SetQueryParam("detail_status", request.DetailStatus);
|
||||
|
||||
if (request.Offset != null)
|
||||
flurlReq.SetQueryParam("offset", request.Offset.Value);
|
||||
|
||||
if (request.Limit != null)
|
||||
flurlReq.SetQueryParam("limit", request.Limit.Value);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetTransferBatchByBatchIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_6.shtml </para>
|
||||
@@ -124,6 +105,25 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetTransferBatchDetailByOutDetailNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetTransferBatchDetailByDetailIdResponse> ExecuteGetTransferBatchDetailByDetailIdAsync(this WechatTenpayClient client, Models.GetTransferBatchDetailByDetailIdRequest 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
|
||||
.CreateRequest(request, HttpMethod.Get, "transfer", "batches", "batch-id", request.BatchId, "details", "detail-id", request.DetailId);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetTransferBatchDetailByDetailIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region BillReceipt
|
||||
@@ -168,7 +168,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Detail
|
||||
#region DetailReceipt
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /transfer-detail/electronic-receipts 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_9.shtml </para>
|
||||
@@ -214,8 +214,5 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
return await client.SendRequestWithJsonAsync<Models.GetTransferDetailElectronicReceiptByOutDetailNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Transfer
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,115 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /bank-transfer/batches 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreateBankTransferBatchRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class TransferDetail : CreateTransferBatchRequest.Types.TransferDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务平台商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("platform_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("platform_mchid")]
|
||||
public string PlatformMerchantId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置付款企业商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("specialized_payment_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("specialized_payment_mchid")]
|
||||
public string SpecializedPaymentMerchantId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际出资商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sponsor_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sponsor_mchid")]
|
||||
public string SponsorMerchantId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户授权商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_authorized_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_authorized_mchid")]
|
||||
public string UserAuthorizedMerchantId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户授权 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_authorized_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_authorized_appid")]
|
||||
public string UserAuthorizedAppId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_batch_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_batch_no")]
|
||||
public string OutBatchNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_name")]
|
||||
public string BatchName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次备注。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_remark")]
|
||||
public string BatchRemark { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置附加信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("attach_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("attach_remark")]
|
||||
public string? Attachment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_amount")]
|
||||
public int TotalAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账总笔数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_count")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
|
||||
public int TotalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账明细列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_detail_list")]
|
||||
public IList<Types.TransferDetail> TransferDetailList { get; set; } = new List<Types.TransferDetail>();
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账场景。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_scene")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_scene")]
|
||||
public string? TransferScene { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账用途。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_purpose")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_purpose")]
|
||||
public string? TransferPurpose { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /bank-transfer/batches 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreateBankTransferBatchResponse : CreateTransferBatchResponse
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-transfer/batches/batch-id/{batch_id} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetBankTransferBatchByBatchIdRequest : GetTransferBatchByBatchIdRequest
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,189 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-transfer/batches/batch-id/{batch_id} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetBankTransferBatchByBatchIdResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class TransferDetail : GetBankTransferBatchByOutBatchNumberResponse.Types.TransferDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行服务商号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bank_sp_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bank_sp_mchid")]
|
||||
public string BankMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务平台商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("platform_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("platform_mchid")]
|
||||
public string PlatformMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置付款企业商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("specialized_payment_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("specialized_payment_mchid")]
|
||||
public string SpecializedPaymentMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际出资商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sponsor_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sponsor_mchid")]
|
||||
public string SponsorMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户授权商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_authorized_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_authorized_mchid")]
|
||||
public string UserAuthorizedMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户授权 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_authorized_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_authorized_appid")]
|
||||
public string UserAuthorizedAppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_batch_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_batch_no")]
|
||||
public string OutBatchNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_id")]
|
||||
public string BatchId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_state")]
|
||||
public string BatchStatus { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_name")]
|
||||
public string BatchName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次备注。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_remark")]
|
||||
public string BatchRemark { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置附加信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("attach_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("attach_remark")]
|
||||
public string? Attachment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次关闭原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("close_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("close_reason")]
|
||||
public string? CloseReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_amount")]
|
||||
public int TotalAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账总笔数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_count")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
|
||||
public int TotalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次创建时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("create_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次更新时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("update_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("update_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
|
||||
public DateTimeOffset? UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账成功金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("success_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("success_amount")]
|
||||
public int SuccessAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账成功笔数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("success_count")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("success_count")]
|
||||
public int SuccessCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账失败金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("fail_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("fail_amount")]
|
||||
public int FailAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账失败笔数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("fail_count")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("fail_count")]
|
||||
public int FailCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账场景。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_scene")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_scene")]
|
||||
public string? TransferScene { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账用途。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_purpose")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_purpose")]
|
||||
public string? TransferPurpose { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账明细单列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_detail_list")]
|
||||
public Types.TransferDetail[]? TransferDetailList { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-transfer/batches/out-batch-no/{out_batch_no} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetBankTransferBatchByOutBatchNumberRequest : GetTransferBatchByOutBatchNumberRequest
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,216 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-transfer/batches/out-batch-no/{out_batch_no} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetBankTransferBatchByOutBatchNumberResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class TransferDetail
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商户明细单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_detail_no")]
|
||||
public string OutDetailNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信明细单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("detail_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("detail_id")]
|
||||
public string DetailId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置明细状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("detail_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("detail_state")]
|
||||
public string DetailStatus { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置失败原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("fail_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("fail_reason")]
|
||||
public string? FailReason { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行服务商号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bank_sp_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bank_sp_mchid")]
|
||||
public string BankMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务平台商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("platform_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("platform_mchid")]
|
||||
public string PlatformMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置付款企业商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("specialized_payment_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("specialized_payment_mchid")]
|
||||
public string SpecializedPaymentMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际出资商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sponsor_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sponsor_mchid")]
|
||||
public string SponsorMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户授权商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_authorized_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_authorized_mchid")]
|
||||
public string UserAuthorizedMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户授权 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_authorized_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_authorized_appid")]
|
||||
public string UserAuthorizedAppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_batch_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_batch_no")]
|
||||
public string OutBatchNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_id")]
|
||||
public string BatchId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_state")]
|
||||
public string BatchStatus { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_name")]
|
||||
public string BatchName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次备注。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_remark")]
|
||||
public string BatchRemark { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置附加信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("attach_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("attach_remark")]
|
||||
public string? Attachment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次关闭原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("close_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("close_reason")]
|
||||
public string? CloseReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_amount")]
|
||||
public int TotalAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账总笔数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_count")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
|
||||
public int TotalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次创建时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("create_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次更新时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("update_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("update_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
|
||||
public DateTimeOffset? UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账成功金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("success_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("success_amount")]
|
||||
public int SuccessAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账成功笔数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("success_count")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("success_count")]
|
||||
public int SuccessCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账失败金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("fail_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("fail_amount")]
|
||||
public int FailAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账失败笔数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("fail_count")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("fail_count")]
|
||||
public int FailCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账场景。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_scene")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_scene")]
|
||||
public string? TransferScene { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账用途。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_purpose")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_purpose")]
|
||||
public string? TransferPurpose { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账明细单列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_detail_list")]
|
||||
public Types.TransferDetail[]? TransferDetailList { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetBankTransferBatchDetailByDetailIdRequest : GetTransferBatchDetailByDetailIdRequest
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetBankTransferBatchDetailByDetailIdResponse : GetBankTransferBatchDetailByOutDetailNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetBankTransferBatchDetailByOutDetailNumberRequest : GetTransferBatchDetailByOutDetailNumberRequest
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,171 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no} 接口的响应。</para>
|
||||
/// </summary>
|
||||
[WechatTenpaySensitive]
|
||||
public class GetBankTransferBatchDetailByOutDetailNumberResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置银行服务商号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bank_sp_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bank_sp_mchid")]
|
||||
public string BankMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务平台商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("platform_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("platform_mchid")]
|
||||
public string PlatformMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置付款企业商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("specialized_payment_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("specialized_payment_mchid")]
|
||||
public string SpecializedPaymentMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际出资商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sponsor_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sponsor_mchid")]
|
||||
public string SponsorMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户授权商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_authorized_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_authorized_mchid")]
|
||||
public string UserAuthorizedMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户授权 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_authorized_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_authorized_appid")]
|
||||
public string UserAuthorizedAppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_batch_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_batch_no")]
|
||||
public string OutBatchNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_id")]
|
||||
public string BatchId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户明细单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_detail_no")]
|
||||
public string OutDetailNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信明细单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("detail_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("detail_id")]
|
||||
public string DetailId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置明细状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("detail_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("detail_state")]
|
||||
public string DetailStatus { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_amount")]
|
||||
public int TransferAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账备注。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_remark")]
|
||||
public string TransferRemark { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账场景。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transfer_scene")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_scene")]
|
||||
public string? TransferScene { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置失败原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("fail_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("fail_reason")]
|
||||
public string? FailReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置收款账户类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("account_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("account_type")]
|
||||
public string AccountType { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置收款用户 OpenId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string OpenId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置收款用户姓名(需使用商户私钥解密)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("username")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("username")]
|
||||
[WechatTenpaySensitiveProperty(scheme: Constants.SignSchemes.WECHATPAY2_RSA_2048_WITH_SHA256, algorithm: Constants.EncryptionAlgorithms.RSA_2048_ECB_PKCS8_OAEP_WITH_SHA1_AND_MGF1)]
|
||||
[WechatTenpaySensitiveProperty(scheme: Constants.SignSchemes.WECHATPAY2_SM2_WITH_SM3, algorithm: Constants.EncryptionAlgorithms.SM2_C1C3C2_ASN1)]
|
||||
public string UserName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bank_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bank_name")]
|
||||
public string? BankName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行卡尾号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bank_card_number_tail")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bank_card_number_tail")]
|
||||
public string? BankCardNumberTail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账发起时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("initiate_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("initiate_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset InitiateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置明细更新时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("update_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("update_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset UpdateTime { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /bank-batch-transfer/receipt/detail-receipts 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreateBankBatchTransferDetailReceiptRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_batch_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_batch_no")]
|
||||
public string OutBatchNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行明细单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_detail_no")]
|
||||
public string OutDetailNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /bank-batch-transfer/receipt/detail-receipts 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreateBankBatchTransferDetailReceiptResponse : GetBankBatchTransferDetailReceiptByOutDetailNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /bank-batch-transfer/receipt/summary-receipts 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreateBankBatchTransferSummaryReceiptRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_batch_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_batch_no")]
|
||||
public string OutBatchNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /bank-batch-transfer/receipt/summary-receipts 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreateBankBatchTransferSummaryReceiptResponse : GetBankBatchTransferSummaryReceiptByOutBatchNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-batch-transfer/receipt/detail-receipts 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetBankBatchTransferDetailReceiptByOutDetailNumberRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutBatchNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行明细单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutDetailNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-batch-transfer/receipt/detail-receipts 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetBankBatchTransferDetailReceiptByOutDetailNumberResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_batch_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_batch_no")]
|
||||
public string OutBatchNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行明细单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_detail_no")]
|
||||
public string OutDetailNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单申请单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("receipt_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("receipt_no")]
|
||||
public string ReceiptNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("receipt_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("receipt_state")]
|
||||
public string? ReceiptStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单文件的哈希方法。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("hash_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("hash_type")]
|
||||
public string? HashType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单文件的哈希值。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("hash_value")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("hash_value")]
|
||||
public string? HashValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单文件的下载地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("download_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("download_url")]
|
||||
public string? DownloadUrl { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-batch-transfer/receipt/summary-receipts 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetBankBatchTransferSummaryReceiptByOutBatchNumberRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutBatchNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /bank-batch-transfer/receipt/summary-receipts 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetBankBatchTransferSummaryReceiptByOutBatchNumberResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置银行批次单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_batch_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_batch_no")]
|
||||
public string OutBatchNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单申请单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("receipt_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("receipt_no")]
|
||||
public string ReceiptNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("receipt_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("receipt_state")]
|
||||
public string? ReceiptStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单文件的哈希方法。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("hash_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("hash_type")]
|
||||
public string? HashType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单文件的哈希值。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("hash_value")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("hash_value")]
|
||||
public string? HashValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置电子回单文件的下载地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("download_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("download_url")]
|
||||
public string? DownloadUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置创建时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("create_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
|
||||
public DateTimeOffset? CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置更新时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("update_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("update_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
|
||||
public DateTimeOffset? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
|
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"attach_remark": "付款专用商户单号11111",
|
||||
"batch_name": "2019年1月深圳分部报销单",
|
||||
"batch_remark": "2019年1月深圳分部报销单",
|
||||
"out_batch_no": "plfk2020042013",
|
||||
"platform_mchid": "1900001109",
|
||||
"specialized_payment_mchid": "1900001109",
|
||||
"sponsor_mchid": "1900001109",
|
||||
"total_amount": 4000000,
|
||||
"total_count": 200,
|
||||
"transfer_detail_list": [
|
||||
{
|
||||
"openid": "o-MYE42l80oelYMDE34nYD456Xoy",
|
||||
"out_detail_no": "x23zy545Bd5436",
|
||||
"transfer_amount": 200000,
|
||||
"transfer_remark": "2020年4月报销"
|
||||
|
||||
}
|
||||
],
|
||||
"transfer_purpose": "COMMISSION",
|
||||
"transfer_scene": "ORDINARY_TRANSFER",
|
||||
"user_authorized_appid": "wxaffdakkk11112e3",
|
||||
"user_authorized_mchid": "1900001109"
|
||||
}
|
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"batch_id": "1130000071100999991182020050700019480001",
|
||||
"create_time": "2015-05-20T13:29:35+08:00",
|
||||
"out_batch_no": "plfk2020042013"
|
||||
}
|
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"attach_remark": "付款专用商户单号11111",
|
||||
"bank_sp_mchid": "1900001109",
|
||||
"batch_id": "1130000071100999991182020050700019480001",
|
||||
"batch_name": "2019年1月深圳分部报销单",
|
||||
"batch_remark": "2019年1月深圳分部报销单",
|
||||
"batch_state": "ACCEPTED",
|
||||
"close_reason": "OVERDUE_CLOSE",
|
||||
"create_time": "2015-05-20T13:29:35+08:00",
|
||||
"fail_amount": 100000,
|
||||
"fail_count": 1,
|
||||
"out_batch_no": "plfk2020042013",
|
||||
"platform_mchid": "1900001109",
|
||||
"specialized_payment_mchid": "1900001109",
|
||||
"sponsor_mchid": "1900001109",
|
||||
"success_amount": 3900000,
|
||||
"success_count": 199,
|
||||
"total_amount": 4000000,
|
||||
"total_count": 200,
|
||||
"transfer_detail_list": [
|
||||
{
|
||||
"detail_id": "1140000071100999991182020050700019500100",
|
||||
"detail_state": "SUCCESS",
|
||||
"fail_reason": "ACCOUNT_FROZEN",
|
||||
"out_detail_no": "x23zy545Bd5436"
|
||||
}
|
||||
],
|
||||
"transfer_purpose": "COMMISSION",
|
||||
"transfer_scene": "ORDINARY_TRANSFER",
|
||||
"update_time": "2015-05-20T13:29:35+08:00",
|
||||
"user_authorized_appid": "wxf636efh567hg4356",
|
||||
"user_authorized_mchid": "1900001109"
|
||||
}
|
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"attach_remark": "付款专用商户单号11111",
|
||||
"bank_sp_mchid": "1900001109",
|
||||
"batch_id": "1130000071100999991182020050700019480001",
|
||||
"batch_name": "2019年1月深圳分部报销单",
|
||||
"batch_remark": "2019年1月深圳分部报销单",
|
||||
"batch_state": "ACCEPTED",
|
||||
"close_reason": "OVERDUE_CLOSE",
|
||||
"create_time": "2015-05-20T13:29:35+08:00",
|
||||
"fail_amount": 100000,
|
||||
"fail_count": 1,
|
||||
"out_batch_no": "plfk2020042013",
|
||||
"platform_mchid": "1900001109",
|
||||
"specialized_payment_mchid": "1900001109",
|
||||
"sponsor_mchid": "1900001109",
|
||||
"success_amount": 3900000,
|
||||
"success_count": 199,
|
||||
"total_amount": 4000000,
|
||||
"total_count": 200,
|
||||
"transfer_detail_list": [
|
||||
{
|
||||
"detail_id": "1140000071100999991182020050700019500100",
|
||||
"detail_state": "SUCCESS",
|
||||
"fail_reason": "ACCOUNT_FROZEN",
|
||||
"out_detail_no": "x23zy545Bd5436"
|
||||
}
|
||||
],
|
||||
"transfer_purpose": "COMMISSION",
|
||||
"transfer_scene": "ORDINARY_TRANSFER",
|
||||
"update_time": "2015-05-20T13:29:35+08:00",
|
||||
"user_authorized_appid": "wxf636efh567hg4356",
|
||||
"user_authorized_mchid": "1900001109"
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"account_type": "BANK_ACCOUNT",
|
||||
"bank_card_number_tail": "1234",
|
||||
"bank_name": "招商银行",
|
||||
"bank_sp_mchid": "1900001109",
|
||||
"batch_id": "1130000071100999991182020050700019480001",
|
||||
"detail_id": "1140000071100999991182020050700019500100",
|
||||
"detail_state": "SUCCESS",
|
||||
"fail_reason": "ACCOUNT_FROZEN",
|
||||
"initiate_time": "2015-05-20T13:29:35+08:00",
|
||||
"openid": "o-MYE42l80oelYMDE34nYD456Xoy",
|
||||
"out_batch_no": "plfk2020042013",
|
||||
"out_detail_no": "x23zy545Bd5436",
|
||||
"platform_mchid": "1900001109",
|
||||
"specialized_payment_mchid": "1900001109",
|
||||
"sponsor_mchid": "1900001109",
|
||||
"transfer_amount": 200000,
|
||||
"transfer_remark": "2020年4月报销",
|
||||
"transfer_scene": "PAYROLL_CARD_TRANSFER",
|
||||
"update_time": "2015-05-20T13:29:35+08:00",
|
||||
"user_authorized_appid": "wxaffdakkk11112e3",
|
||||
"user_authorized_mchid": "1900001109",
|
||||
"username": "757b340b45ebef5467rter35gf464344v3542sdf4t6re4tb4f54ty45t4yyry45"
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"account_type": "BANK_ACCOUNT",
|
||||
"bank_card_number_tail": "1234",
|
||||
"bank_name": "招商银行",
|
||||
"bank_sp_mchid": "1900001109",
|
||||
"batch_id": "1130000071100999991182020050700019480001",
|
||||
"detail_id": "1140000071100999991182020050700019500100",
|
||||
"detail_state": "SUCCESS",
|
||||
"fail_reason": "ACCOUNT_FROZEN",
|
||||
"initiate_time": "2015-05-20T13:29:35+08:00",
|
||||
"openid": "o-MYE42l80oelYMDE34nYD456Xoy",
|
||||
"out_batch_no": "plfk2020042013",
|
||||
"out_detail_no": "x23zy545Bd5436",
|
||||
"platform_mchid": "1900001109",
|
||||
"specialized_payment_mchid": "1900001109",
|
||||
"sponsor_mchid": "1900001109",
|
||||
"transfer_amount": 200000,
|
||||
"transfer_remark": "2020年4月报销",
|
||||
"transfer_scene": "PAYROLL_CARD_TRANSFER",
|
||||
"update_time": "2015-05-20T13:29:35+08:00",
|
||||
"user_authorized_appid": "wxaffdakkk11112e3",
|
||||
"user_authorized_mchid": "1900001109",
|
||||
"username": "757b340b45ebef5467rter35gf464344v3542sdf4t6re4tb4f54ty45t4yyry45"
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"out_batch_no": "GD2021011610162610BBdkkIwcu3",
|
||||
"out_detail_no": "mx0911231610162610v4CNkO4HAf"
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"download_url": "https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx",
|
||||
"hash_type": "SHA256",
|
||||
"hash_value": "DE731F35146A0BEFADE5DB9D1E468D96C01CA8898119C674FEE9F11F4DBE5529",
|
||||
"out_batch_no": "GD2021011610162610BBdkkIwcu3",
|
||||
"out_detail_no": "mx0911231610162610v4CNkO4HAf",
|
||||
"receipt_no": "1050000010509999485212020110200058820001",
|
||||
"receipt_state": "ACCEPTED"
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"out_batch_no": "GD2021011610162610BBdkkIwcu3"
|
||||
}
|
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"create_time": "2020-05-20T13:29:35.120+08:00",
|
||||
"download_url": "https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx",
|
||||
"hash_type": "SHA256",
|
||||
"hash_value": "DE731F35146A0BEFADE5DB9D1E468D96C01CA8898119C674FEE9F11F4DBE5529",
|
||||
"out_batch_no": "plfk2020042013",
|
||||
"receipt_no": "1050000010509999485212020110200058820001",
|
||||
"receipt_state": "ACCEPTED",
|
||||
"update_time": "2020-05-21T13:29:35.120+08:00"
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"download_url": "https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx",
|
||||
"hash_type": "SHA256",
|
||||
"hash_value": "DE731F35146A0BEFADE5DB9D1E468D96C01CA8898119C674FEE9F11F4DBE5529",
|
||||
"out_batch_no": "GD2021011610162610BBdkkIwcu3",
|
||||
"out_detail_no": "mx0911231610162610v4CNkO4HAf",
|
||||
"receipt_no": "1050000010509999485212020110200058820001",
|
||||
"receipt_state": "ACCEPTED"
|
||||
}
|
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"create_time": "2020-05-20T13:29:35.120+08:00",
|
||||
"download_url": "https://api.mch.weixin.qq.com/v3/billdownload/file?token=xxx",
|
||||
"hash_type": "SHA256",
|
||||
"hash_value": "DE731F35146A0BEFADE5DB9D1E468D96C01CA8898119C674FEE9F11F4DBE5529",
|
||||
"out_batch_no": "plfk2020042013",
|
||||
"receipt_no": "1050000010509999485212020110200058820001",
|
||||
"receipt_state": "ACCEPTED",
|
||||
"update_time": "2020-05-21T13:29:35.120+08:00"
|
||||
}
|
Reference in New Issue
Block a user