feat(wxapi): 新增小程序自定义交易组件银行信息相关接口

This commit is contained in:
Fu Diwei
2022-06-18 22:06:36 +08:00
parent 1a3e957ef3
commit 8a67fc3d58
20 changed files with 713 additions and 0 deletions

View File

@@ -1646,6 +1646,106 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync<Models.ShopFundsQrcodeCheckResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /shop/funds/getbanklist 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/funds/bank/getbanklist.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ShopFundsGetBankListResponse> ExecuteShopFundsGetBankListAsync(this WechatApiClient client, Models.ShopFundsGetBankListRequest 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, "shop", "funds", "getbanklist")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ShopFundsGetBankListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /shop/funds/getbankbynum 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/funds/bank/getbankbynum.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ShopFundsGetBankByNumberResponse> ExecuteShopFundsGetBankByNumberAsync(this WechatApiClient client, Models.ShopFundsGetBankByNumberRequest 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, "shop", "funds", "getbankbynum")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ShopFundsGetBankByNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /shop/funds/getprovince 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/funds/bank/getprovince.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ShopFundsGetProvinceResponse> ExecuteShopFundsGetProvinceAsync(this WechatApiClient client, Models.ShopFundsGetProvinceRequest 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, "shop", "funds", "getprovince")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ShopFundsGetProvinceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /shop/funds/getcity 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/funds/bank/getcity.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ShopFundsGetCityResponse> ExecuteShopFundsGetCityAsync(this WechatApiClient client, Models.ShopFundsGetCityRequest 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, "shop", "funds", "getcity")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ShopFundsGetCityResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /shop/funds/getsubbranch 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/funds/bank/getsubbranch.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ShopFundsGetSubBranchResponse> ExecuteShopFundsGetSubBranchAsync(this WechatApiClient client, Models.ShopFundsGetSubBranchRequest 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, "shop", "funds", "getsubbranch")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ShopFundsGetSubBranchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Complaint

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getbankbynum 接口的请求。</para>
/// </summary>
public class ShopFundsGetBankByNumberRequest : WechatApiRequest, IInferable<ShopFundsGetBankByNumberRequest, ShopFundsGetBankByNumberResponse>
{
/// <summary>
/// 获取或设置银行账户。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_number")]
[System.Text.Json.Serialization.JsonPropertyName("account_number")]
public string BankAccountNumber { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,64 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getbankbynum 接口的响应。</para>
/// </summary>
public class ShopFundsGetBankByNumberResponse : WechatApiResponse
{
public static class Types
{
public class Bank
{
/// <summary>
/// 获取或设置开户银行。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_bank")]
[System.Text.Json.Serialization.JsonPropertyName("account_bank")]
public string AccountBank { get; set; } = default!;
/// <summary>
/// 获取或设置银行联号。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_id")]
[System.Text.Json.Serialization.JsonPropertyName("bank_id")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]
public string BankId { get; set; } = default!;
/// <summary>
/// 获取或设置银行编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_code")]
[System.Text.Json.Serialization.JsonPropertyName("bank_code")]
public string BankCode { get; set; } = default!;
/// <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("need_branch")]
[System.Text.Json.Serialization.JsonPropertyName("need_branch")]
public bool RequireBranch { get; set; }
}
}
/// <summary>
/// 获取或设置银行列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
public Types.Bank[] BankList { get; set; } = default!;
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
}
}

View File

@@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getbanklist 接口的请求。</para>
/// </summary>
public class ShopFundsGetBankListRequest : WechatApiRequest, IInferable<ShopFundsGetBankListRequest, ShopFundsGetBankListResponse>
{
/// <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; }
/// <summary>
/// 获取或设置关键词。
/// </summary>
[Newtonsoft.Json.JsonProperty("key_words")]
[System.Text.Json.Serialization.JsonPropertyName("key_words")]
public string? Keywords { get; set; }
/// <summary>
/// 获取或设置银行类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_type")]
[System.Text.Json.Serialization.JsonPropertyName("bank_type")]
public int? BankType { get; set; }
}
}

View File

@@ -0,0 +1,64 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getbanklist 接口的响应。</para>
/// </summary>
public class ShopFundsGetBankListResponse : WechatApiResponse
{
public static class Types
{
public class Bank
{
/// <summary>
/// 获取或设置开户银行。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_bank")]
[System.Text.Json.Serialization.JsonPropertyName("account_bank")]
public string AccountBank { get; set; } = default!;
/// <summary>
/// 获取或设置银行类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_type")]
[System.Text.Json.Serialization.JsonPropertyName("bank_type")]
public int BankType { get; set; }
/// <summary>
/// 获取或设置银行联号。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_id")]
[System.Text.Json.Serialization.JsonPropertyName("bank_id")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]
public string BankId { get; set; } = default!;
/// <summary>
/// 获取或设置银行编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_code")]
[System.Text.Json.Serialization.JsonPropertyName("bank_code")]
public string BankCode { get; set; } = default!;
/// <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("need_branch")]
[System.Text.Json.Serialization.JsonPropertyName("need_branch")]
public bool RequireBranch { get; set; }
}
}
/// <summary>
/// 获取或设置银行列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
public Types.Bank[] BankList { get; set; } = default!;
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getcity 接口的请求。</para>
/// </summary>
public class ShopFundsGetCityRequest : WechatApiRequest, IInferable<ShopFundsGetCityRequest, ShopFundsGetCityResponse>
{
/// <summary>
/// 获取或设置省份编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("province_code")]
[System.Text.Json.Serialization.JsonPropertyName("province_code")]
public int ProvinceCode { get; set; }
}
}

View File

@@ -0,0 +1,49 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getcity 接口的响应。</para>
/// </summary>
public class ShopFundsGetCityResponse : WechatApiResponse
{
public static class Types
{
public class City
{
/// <summary>
/// 获取或设置城市编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("city_code")]
[System.Text.Json.Serialization.JsonPropertyName("city_code")]
public int CityCode { get; set; }
/// <summary>
/// 获取或设置城市名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("city_name")]
[System.Text.Json.Serialization.JsonPropertyName("city_name")]
public string CityName { get; set; } = default!;
/// <summary>
/// 获取或设置银行省市编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_address_code")]
[System.Text.Json.Serialization.JsonPropertyName("bank_address_code")]
public string BankAddressCode { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置城市列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
public Types.City[] CityList { get; set; } = default!;
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getprovince 接口的请求。</para>
/// </summary>
public class ShopFundsGetProvinceRequest : WechatApiRequest, IInferable<ShopFundsGetProvinceRequest, ShopFundsGetProvinceResponse>
{
}
}

View File

@@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getprovince 接口的响应。</para>
/// </summary>
public class ShopFundsGetProvinceResponse : WechatApiResponse
{
public static class Types
{
public class Province
{
/// <summary>
/// 获取或设置省份编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("province_code")]
[System.Text.Json.Serialization.JsonPropertyName("province_code")]
public int ProvinceCode { get; set; }
/// <summary>
/// 获取或设置省份名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("province_name")]
[System.Text.Json.Serialization.JsonPropertyName("province_name")]
public string ProvinceName { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置省份列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
public Types.Province[] ProvinceList { get; set; } = default!;
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
}
}

View File

@@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getsubbranch 接口的请求。</para>
/// </summary>
public class ShopFundsGetSubBranchRequest : WechatApiRequest, IInferable<ShopFundsGetSubBranchRequest, ShopFundsGetSubBranchResponse>
{
/// <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; }
/// <summary>
/// 获取或设置城市编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("city_code")]
[System.Text.Json.Serialization.JsonPropertyName("city_code")]
public int CityCode { get; set; }
/// <summary>
/// 获取或设置银行编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_code")]
[System.Text.Json.Serialization.JsonPropertyName("bank_code")]
public string BankCode { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,80 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/funds/getsubbranch 接口的响应。</para>
/// </summary>
public class ShopFundsGetSubBranchResponse : WechatApiResponse
{
public static class Types
{
public class Branch
{
/// <summary>
/// 获取或设置支行联号。
/// </summary>
[Newtonsoft.Json.JsonProperty("branch_id")]
[System.Text.Json.Serialization.JsonPropertyName("branch_id")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]
public string BranchId { get; set; } = default!;
/// <summary>
/// 获取或设置支行名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("branch_name")]
[System.Text.Json.Serialization.JsonPropertyName("branch_name")]
public string BranchName { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置开户银行。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_bank")]
[System.Text.Json.Serialization.JsonPropertyName("account_bank")]
public string AccountBank { get; set; } = default!;
/// <summary>
/// 获取或设置开户银行编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_bank_code")]
[System.Text.Json.Serialization.JsonPropertyName("account_bank_code")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]
public string AccountBankCode { get; set; } = default!;
/// <summary>
/// 获取或设置银行别名。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_alias")]
[System.Text.Json.Serialization.JsonPropertyName("bank_alias")]
public string BankAlias { get; set; }= default!;
/// <summary>
/// 获取或设置银行别名编码。
/// </summary>
[Newtonsoft.Json.JsonProperty("bank_alias_code")]
[System.Text.Json.Serialization.JsonPropertyName("bank_alias_code")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]
public string BankAliasCode { get; set; } = default!;
/// <summary>
/// 获取或设置支行列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
public Types.Branch[] BranchList { get; set; } = default!;
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置总页数。
/// </summary>
[Newtonsoft.Json.JsonProperty("count")]
[System.Text.Json.Serialization.JsonPropertyName("count")]
public int PageCount { get; set; }
}
}