mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-07-16 07:59:44 +08:00
feat(tenpayv3): 新增服务商批量转账到零钱相关 API 封装
This commit is contained in:
parent
cee0e743e9
commit
d74cc8074e
@ -109,6 +109,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter5_1_19.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_9_3.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer/chapter4_3.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter4_3.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
|
@ -18,6 +18,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <para>异步调用 [GET] /ecommerce/fund/balance/{sub_mchid} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_7_1.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_8_1.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter5_1.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter5_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
@ -40,6 +42,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /ecommerce/fund/enddaybalance/{sub_mchid} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_7_2.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter5_3.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
|
@ -17,6 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /ecommerce/fund/withdraw 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_8_2.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter6_1.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
@ -37,6 +38,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /ecommerce/fund/withdraw/out-request-no/{out_request_no} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_8_3.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter6_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
@ -57,6 +59,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /ecommerce/fund/withdraw/{withdraw_id} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_8_3.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter6_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
|
@ -17,12 +17,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /merchantfund/merchant/income-records 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer/chapter3_7.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer/chapter3_7.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.QueryMerchantFundIncomeRecordsResponse> ExecuteQueryMerchantFundIncomeRecordsAsync(this WechatTenpayClient client, Models.QueryMerchantFundIncomeRecordsRequest request, CancellationToken cancellationToken = default)
|
||||
public static async Task<Models.QueryMerchantFundMerchantIncomeRecordsResponse> ExecuteQueryMerchantFundMerchantIncomeRecordsAsync(this WechatTenpayClient client, Models.QueryMerchantFundMerchantIncomeRecordsRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
@ -36,7 +37,33 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
if (request.Offset.HasValue)
|
||||
flurlReq.SetQueryParam("offset", request.Offset);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.QueryMerchantFundIncomeRecordsResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
return await client.SendRequestWithJsonAsync<Models.QueryMerchantFundMerchantIncomeRecordsResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /merchantfund/partner/income-records 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_6.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.QueryMerchantFundPartnerIncomeRecordsResponse> ExecuteQueryMerchantFundPartnerIncomeRecordsAsync(this WechatTenpayClient client, Models.QueryMerchantFundPartnerIncomeRecordsRequest 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, "merchantfund", "partner", "income-records")
|
||||
.SetQueryParam("sub_mchid", request.SubMerchantId)
|
||||
.SetQueryParam("account_type", request.AccountType)
|
||||
.SetQueryParam("date", request.DateString)
|
||||
.SetQueryParam("limit", request.Limit);
|
||||
|
||||
if (request.Offset.HasValue)
|
||||
flurlReq.SetQueryParam("offset", request.Offset);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.QueryMerchantFundPartnerIncomeRecordsResponse>(flurlReq, cancellationToken: cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -74,6 +74,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /merchant/fund/withdraw/bill-type/{bill_type} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter7_8_4.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter6_3.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
|
@ -0,0 +1,133 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Flurl;
|
||||
using Flurl.Http;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
{
|
||||
/// <summary>
|
||||
/// 为 <see cref="WechatTenpayClient"/> 提供服务商转账相关的 API 扩展方法。
|
||||
/// </summary>
|
||||
public static class WechatTenpayClientExecutePartnerTransferExtensions
|
||||
{
|
||||
#region Batches
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /partner-transfer/batches 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter3_1.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreatePartnerTransferBatchResponse> ExecuteCreatePartnerTransferBatchAsync(this WechatTenpayClient client, Models.CreatePartnerTransferBatchRequest 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, "partner-transfer", "batches");
|
||||
|
||||
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.Offset.HasValue)
|
||||
flurlReq.SetQueryParam("offset", request.Offset.Value);
|
||||
|
||||
if (request.Limit.HasValue)
|
||||
flurlReq.SetQueryParam("limit", request.Limit.Value);
|
||||
|
||||
if (!string.IsNullOrEmpty(request.DetailStatus))
|
||||
flurlReq.SetQueryParam("detail_status", request.DetailStatus);
|
||||
|
||||
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>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPartnerTransferBatchByOutBatchNumberResponse> ExecuteGetPartnerTransferBatchByOutBatchNumberAsync(this WechatTenpayClient client, Models.GetPartnerTransferBatchByOutBatchNumberRequest 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", "out-batch-no", request.OutBatchNumber)
|
||||
.SetQueryParam("need_query_detail", request.RequireQueryDetail);
|
||||
|
||||
if (request.Offset.HasValue)
|
||||
flurlReq.SetQueryParam("offset", request.Offset.Value);
|
||||
|
||||
if (request.Limit.HasValue)
|
||||
flurlReq.SetQueryParam("limit", request.Limit.Value);
|
||||
|
||||
if (!string.IsNullOrEmpty(request.DetailStatus))
|
||||
flurlReq.SetQueryParam("detail_status", request.DetailStatus);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetPartnerTransferBatchByOutBatchNumberResponse>(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>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPartnerTransferBatchDetailByOutDetailNumberResponse> ExecuteGetPartnerTransferBatchDetailByOutDetailNumberAsync(this WechatTenpayClient client, Models.GetPartnerTransferBatchDetailByOutDetailNumberRequest 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", "out-batch-no", request.OutBatchNumber, "details", "out-detail-no", request.OutDetailNumber);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.GetPartnerTransferBatchDetailByOutDetailNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -135,6 +135,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /transfer/bill-receipt 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer/chapter4_1.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter4_1.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
@ -154,6 +155,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /transfer/bill-receipt/{out_batch_no} 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer/chapter4_2.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter4_2.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
@ -175,6 +177,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /transfer-detail/electronic-receipts 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer/chapter4_4.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter4_4.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
@ -194,6 +197,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /transfer-detail/electronic-receipts 接口。</para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer/chapter4_5.shtml </para>
|
||||
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pay/transfer_partner/chapter4_5.shtml </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
|
@ -381,5 +381,75 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>解密响应中返回的敏感数据。该方法会改变传入的响应信息。</para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="response"></param>
|
||||
/// <returns></returns>
|
||||
public static Models.GetPartnerTransferBatchDetailByOutDetailNumberResponse DecryptResponseEncryptedData(this WechatTenpayClient client, ref Models.GetPartnerTransferBatchDetailByOutDetailNumberResponse response)
|
||||
{
|
||||
if (client == null) throw new ArgumentNullException(nameof(client));
|
||||
if (response == null) throw new ArgumentNullException(nameof(response));
|
||||
|
||||
if (string.IsNullOrEmpty(client.WechatMerchantCertPrivateKey))
|
||||
throw new Exceptions.WechatTenpayResponseDecryptionException("Decrypt response failed, because of there is no merchant private key.");
|
||||
|
||||
if (!response.IsSuccessful())
|
||||
throw new Exceptions.WechatTenpayResponseDecryptionException("Decrypt response failed, because of the response is not successful.");
|
||||
|
||||
if (!string.IsNullOrEmpty(response.UserName))
|
||||
{
|
||||
try
|
||||
{
|
||||
response.UserName = Utilities.RSAUtility.DecryptWithECB(
|
||||
client.WechatMerchantCertPrivateKey,
|
||||
response.UserName
|
||||
);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exceptions.WechatTenpayResponseDecryptionException("Decrypt response failed.", ex);
|
||||
}
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>解密响应中返回的敏感数据。该方法会改变传入的响应信息。</para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="response"></param>
|
||||
/// <returns></returns>
|
||||
public static Models.GetPartnerTransferBatchDetailByDetailIdResponse DecryptResponseEncryptedData(this WechatTenpayClient client, ref Models.GetPartnerTransferBatchDetailByDetailIdResponse response)
|
||||
{
|
||||
if (client == null) throw new ArgumentNullException(nameof(client));
|
||||
if (response == null) throw new ArgumentNullException(nameof(response));
|
||||
|
||||
if (string.IsNullOrEmpty(client.WechatMerchantCertPrivateKey))
|
||||
throw new Exceptions.WechatTenpayResponseDecryptionException("Decrypt response failed, because of there is no merchant private key.");
|
||||
|
||||
if (!response.IsSuccessful())
|
||||
throw new Exceptions.WechatTenpayResponseDecryptionException("Decrypt response failed, because of the response is not successful.");
|
||||
|
||||
if (!string.IsNullOrEmpty(response.UserName))
|
||||
{
|
||||
try
|
||||
{
|
||||
response.UserName = Utilities.RSAUtility.DecryptWithECB(
|
||||
client.WechatMerchantCertPrivateKey,
|
||||
response.UserName
|
||||
);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exceptions.WechatTenpayResponseDecryptionException("Decrypt response failed.", ex);
|
||||
}
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /merchantfund/merchant/income-records 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class QueryMerchantFundIncomeRecordsRequest : WechatTenpayRequest
|
||||
public class QueryMerchantFundMerchantIncomeRecordsRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置账户类型。
|
@ -6,7 +6,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /merchantfund/merchant/income-records 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class QueryMerchantFundIncomeRecordsResponse : WechatTenpayResponse
|
||||
public class QueryMerchantFundMerchantIncomeRecordsResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /merchantfund/partner/income-records 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class QueryMerchantFundPartnerIncomeRecordsRequest : QueryMerchantFundMerchantIncomeRecordsRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /merchantfund/partner/income-records 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class QueryMerchantFundPartnerIncomeRecordsResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class IncomeRecord
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置账户类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("account_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("account_type")]
|
||||
public string AccountType { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行来账类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("income_record_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("income_record_type")]
|
||||
public string IncomeRecordType { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行来账微信单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("income_record_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("income_record_id")]
|
||||
public string IncomeRecordId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行来账金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("amount")]
|
||||
public int Amount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置企业微信的员工工号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("success_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("success_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset SuccessTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置付款方银行名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bank_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bank_name")]
|
||||
public string BankName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置付款方银行户名。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bank_account_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bank_account_name")]
|
||||
public string BankAccountName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置付款方银行卡号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("bank_account_number")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("bank_account_number")]
|
||||
public string BankAccountNumber { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行来账记录列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("data")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("data")]
|
||||
public Types.IncomeRecord[]? IncomeRecordList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置分页大小。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("limit")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("limit")]
|
||||
public int Limit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置分页开始位置。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("offset")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("offset")]
|
||||
public int Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置银行来账记录总数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_count")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
|
||||
public int TotalCount { get; set; }
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /partner-transfer/batches 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreatePartnerTransferBatchRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class TransferDetail : CreateTransferBatchRequest.Types.TransferDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务商 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sp_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sp_appid")]
|
||||
public string? AppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户授权类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("authorization_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("authorization_type")]
|
||||
public string AuthorizationType { 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("total_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_amount")]
|
||||
public int TotalAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账总笔数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_num")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
|
||||
public int TotalNumber { 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_purpose")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_purpose")]
|
||||
public string? TransferPurpose { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /partner-transfer/batches 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreatePartnerTransferBatchResponse : CreateTransferBatchResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /partner-transfer/batches/batch-id/{batch_id} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPartnerTransferBatchByBatchIdRequest : GetTransferBatchByBatchIdRequest
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,176 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /partner-transfer/batches/batch-id/{batch_id} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPartnerTransferBatchByBatchIdResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class TransferDetail : GetPartnerTransferBatchByOutBatchNumberResponse.Types.TransferDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务商商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sp_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sp_mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务商 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sp_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sp_appid")]
|
||||
public string? AppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
|
||||
/// <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_status")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_status")]
|
||||
public string BatchStatus { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_type")]
|
||||
public string BatchType { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户授权类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("authorization_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("authorization_type")]
|
||||
public string AuthorizationType { 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("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_num")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
|
||||
public int TotalNumber { 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_num")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("success_num")]
|
||||
public int SuccessNumber { 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_num")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("fail_num")]
|
||||
public int FailNumber { 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,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /partner-transfer/batches/out-batch-no/{out_batch_no} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPartnerTransferBatchByOutBatchNumberRequest : GetTransferBatchByOutBatchNumberRequest
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,176 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /partner-transfer/batches/out-batch-no/{out_batch_no} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPartnerTransferBatchByOutBatchNumberResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class TransferDetail : GetTransferBatchByOutBatchNumberResponse.Types.TransferDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务商商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sp_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sp_mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务商 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sp_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sp_appid")]
|
||||
public string? AppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
|
||||
/// <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_status")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_status")]
|
||||
public string BatchStatus { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置批次类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("batch_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("batch_type")]
|
||||
public string BatchType { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置特约商户授权类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("authorization_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("authorization_type")]
|
||||
public string AuthorizationType { 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("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_num")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
|
||||
public int TotalNumber { 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_num")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("success_num")]
|
||||
public int SuccessNumber { 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_num")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("fail_num")]
|
||||
public int FailNumber { 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,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /partner-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPartnerTransferBatchDetailByDetailIdRequest : GetTransferBatchDetailByDetailIdRequest
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /partner-transfer/batches/batch-id/{batch_id}/details/detail-id/{detail_id} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPartnerTransferBatchDetailByDetailIdResponse : GetPartnerTransferBatchDetailByOutDetailNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /partner-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPartnerTransferBatchDetailByOutDetailNumberRequest : GetTransferBatchDetailByOutDetailNumberRequest
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /partner-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPartnerTransferBatchDetailByOutDetailNumberResponse : GetTransferBatchDetailByOutDetailNumberResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置服务商商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sp_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sp_mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置收款用户姓名(需使用商户私钥解密)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("username")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("username")]
|
||||
public override string UserName { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -174,19 +174,5 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
[Newtonsoft.Json.JsonProperty("transfer_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transfer_detail_list")]
|
||||
public Types.TransferDetail[]? TransferDetailList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置分页开始位置。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("offset")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("offset")]
|
||||
public int? Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置分页每页数量。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("limit")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("limit")]
|
||||
public int? Limit { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
public string AppId { get; set; } = default!;
|
||||
public string? AppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户批次单号。
|
||||
@ -83,7 +83,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_name")]
|
||||
public string UserName { get; set; } = default!;
|
||||
public virtual string UserName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置转账发起时间。
|
||||
|
Loading…
Reference in New Issue
Block a user