diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs index 4303a673..00fbfa17 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs @@ -4185,6 +4185,77 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion + + #region ECMerchant/PrivatePhone + /// + /// 异步调用 [POST] /channels/ec/merchant/privatenumber/sendverifycode 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECMerchantPrivateNumberSendVerifyCodeAsync(this WechatApiClient client, Models.ChannelsECMerchantPrivateNumberSendVerifyCodeRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "ec", "merchant", "privatenumber", "sendverifycode") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /channels/ec/merchant/privatenumber/addphone 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECMerchantPrivateNumberAddPhoneAsync(this WechatApiClient client, Models.ChannelsECMerchantPrivateNumberAddPhoneRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "ec", "merchant", "privatenumber", "addphone") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /channels/ec/merchant/privatenumber/getphone 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECMerchantPrivateNumberGetPhoneAsync(this WechatApiClient client, Models.ChannelsECMerchantPrivateNumberGetPhoneRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "ec", "merchant", "privatenumber", "getphone") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion #endregion #region ECOpen diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneRequest.cs new file mode 100644 index 00000000..7b3006b6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/merchant/privatenumber/addphone 接口的请求。 + /// + public class ChannelsECMerchantPrivateNumberAddPhoneRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置待认证的手机号。 + /// + [Newtonsoft.Json.JsonProperty("house_number")] + [System.Text.Json.Serialization.JsonPropertyName("house_number")] + public string MobileNumber { get; set; } = string.Empty; + + /// + /// 获取或设置短信验证码。 + /// + [Newtonsoft.Json.JsonProperty("verify_code")] + [System.Text.Json.Serialization.JsonPropertyName("verify_code")] + public string VerifyCode { get; set; } = string.Empty; + + /// + /// 获取或设置小店成员的微信号。 + /// + [Newtonsoft.Json.JsonProperty("wxusername")] + [System.Text.Json.Serialization.JsonPropertyName("wxusername")] + public string? Username { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneResponse.cs new file mode 100644 index 00000000..2d3f2761 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/merchant/privatenumber/addphone 接口的响应。 + /// + public class ChannelsECMerchantPrivateNumberAddPhoneResponse : WechatApiResponse + { + /// + /// 获取或设置认证链接。 + /// + [Newtonsoft.Json.JsonProperty("qrcode_url")] + [System.Text.Json.Serialization.JsonPropertyName("qrcode_url")] + public string QrcodeUrl { get; set; } = default!; + + /// + /// 获取或设置认证状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneRequest.cs new file mode 100644 index 00000000..0f55648e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/merchant/privatenumber/getphone 接口的请求。 + /// + public class ChannelsECMerchantPrivateNumberGetPhoneRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置待认证的手机号。 + /// + [Newtonsoft.Json.JsonProperty("house_number")] + [System.Text.Json.Serialization.JsonPropertyName("house_number")] + public string MobileNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneResponse.cs new file mode 100644 index 00000000..63846b90 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/merchant/privatenumber/getphone 接口的响应。 + /// + public class ChannelsECMerchantPrivateNumberGetPhoneResponse : WechatApiResponse + { + /// + /// 获取或设置认证状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置失败原因。 + /// + [Newtonsoft.Json.JsonProperty("fail_reason")] + [System.Text.Json.Serialization.JsonPropertyName("fail_reason")] + public string? FailReason { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeRequest.cs new file mode 100644 index 00000000..17aeea6f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/merchant/privatenumber/sendverifycode 接口的请求。 + /// + public class ChannelsECMerchantPrivateNumberSendVerifyCodeRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置待认证的手机号。 + /// + [Newtonsoft.Json.JsonProperty("house_number")] + [System.Text.Json.Serialization.JsonPropertyName("house_number")] + public string MobileNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeResponse.cs new file mode 100644 index 00000000..9da22c50 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/merchant/privatenumber/sendverifycode 接口的响应。 + /// + public class ChannelsECMerchantPrivateNumberSendVerifyCodeResponse : WechatApiResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneRequest.json new file mode 100644 index 00000000..6e2b5db4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneRequest.json @@ -0,0 +1,5 @@ +{ + "mobile": "1358012313432", + "verify_code": "12345", + "wxusername": "xxxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneResponse.json new file mode 100644 index 00000000..71e99769 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberAddPhoneResponse.json @@ -0,0 +1,6 @@ +{ + "errcode": 0, + "errmsg": "ok", + "qrcode_url": "https://xxxxxx", + "status": 3 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneRequest.json new file mode 100644 index 00000000..9b72dd26 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneRequest.json @@ -0,0 +1,3 @@ +{ + "mobile": "133423124351" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneResponse.json new file mode 100644 index 00000000..4d6002b3 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberGetPhoneResponse.json @@ -0,0 +1,6 @@ +{ + "status": 2, + "fail_reason": "xxx", + "errcode": 0, + "errmsg": "ok" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeRequest.json new file mode 100644 index 00000000..48fe9cf4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECMerchant/PrivateNumber/ChannelsECMerchantPrivateNumberSendVerifyCodeRequest.json @@ -0,0 +1,3 @@ +{ + "mobile": "135800000111" +}