From ff944a77874b50431c110d06c7481ddec6d92c25 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 17 Jan 2022 16:11:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E9=9A=8F=E5=AE=98=E6=96=B9?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20URL=20Scheme=20/=20URL=20Link=20=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WechatApiClientExecuteWxaExtensions.cs | 42 ++++++ .../Wxa/UrlLink/WxaGenerateUrlLinkRequest.cs | 18 ++- .../Wxa/UrlLink/WxaQueryUrlLinkRequest.cs | 15 ++ .../Wxa/UrlLink/WxaQueryUrlLinkResponse.cs | 135 ++++++++++++++++++ .../Wxa/UrlScheme/WxaGenerateSchemeRequest.cs | 23 ++- .../UrlScheme/WxaGenerateSchemeResponse.cs | 2 +- .../Wxa/UrlScheme/WxaQuerySchemeRequest.cs | 15 ++ .../Wxa/UrlScheme/WxaQuerySchemeResponse.cs | 87 +++++++++++ .../WxaCode/WxaGetWxaCodeUnlimitRequest.cs | 2 +- .../Wxa/UrlLink/WxaQueryUrlLinkRequest.json | 3 + .../Wxa/UrlLink/WxaQueryUrlLinkResponse.json | 23 +++ .../Wxa/UrlScheme/WxaQuerySchemeRequest.json | 3 + .../Wxa/UrlScheme/WxaQuerySchemeResponse.json | 16 +++ 13 files changed, 379 insertions(+), 5 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaQueryUrlLinkRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaQueryUrlLinkResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaQuerySchemeRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaQuerySchemeResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlLink/WxaQueryUrlLinkRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlLink/WxaQueryUrlLinkResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlScheme/WxaQuerySchemeRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlScheme/WxaQuerySchemeResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaExtensions.cs index 476ead37..6b1c31d7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaExtensions.cs @@ -304,6 +304,27 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [POST] /wxa/queryscheme 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-scheme/urlscheme.query.html + /// REF: https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/url-scheme/urlscheme.query.html + /// + /// + /// + /// + /// + public static async Task ExecuteWxaQuerySchemeAsync(this WechatApiClient client, Models.WxaQuerySchemeRequest 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, "wxa", "queryscheme") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } #endregion #region UrlLink @@ -327,6 +348,27 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [POST] /wxa/query_urllink 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.query.html + /// REF: https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/url-link/urllink.query.html + /// + /// + /// + /// + /// + public static async Task ExecuteWxaQueryUrlLinkAsync(this WechatApiClient client, Models.WxaQueryUrlLinkRequest 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, "wxa", "query_urllink") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } #endregion #region Security diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaGenerateUrlLinkRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaGenerateUrlLinkRequest.cs index 4e400a0d..0389f8b4 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaGenerateUrlLinkRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaGenerateUrlLinkRequest.cs @@ -36,6 +36,13 @@ [Newtonsoft.Json.JsonProperty("query")] [System.Text.Json.Serialization.JsonPropertyName("query")] public string? Query { get; set; } + + /// + /// 获取或设置第三方平台的 AppId。 + /// + [Newtonsoft.Json.JsonProperty("resource_appid")] + [System.Text.Json.Serialization.JsonPropertyName("resource_appid")] + public string? ResourceAppId { get; set; } } } @@ -53,12 +60,19 @@ [System.Text.Json.Serialization.JsonPropertyName("query")] public string? Query { get; set; } + /// + /// 获取或设置要打开的小程序版本。 + /// + [Newtonsoft.Json.JsonProperty("env_version")] + [System.Text.Json.Serialization.JsonPropertyName("env_version")] + public string? EnvironmentVersion { get; set; } + /// /// 获取或设置是否到期失效。 /// [Newtonsoft.Json.JsonProperty("is_expire")] [System.Text.Json.Serialization.JsonPropertyName("is_expire")] - public bool? IsExpire { get; set; } + public bool? IsExpirable { get; set; } /// /// 获取或设置失效类型。 @@ -75,7 +89,7 @@ public long? ExpireTimestamp { get; set; } /// - /// 获取或设置到期失效的间隔天数。 + /// 获取或设置到期失效的时间间隔(单位:天)。 /// [Newtonsoft.Json.JsonProperty("expire_interval")] [System.Text.Json.Serialization.JsonPropertyName("expire_interval")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaQueryUrlLinkRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaQueryUrlLinkRequest.cs new file mode 100644 index 00000000..977311e3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaQueryUrlLinkRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /wxa/query_urllink 接口的请求。 + /// + public class WxaQueryUrlLinkRequest : WechatApiRequest + { + /// + /// 获取或设置小程序 URL Link。 + /// + [Newtonsoft.Json.JsonProperty("url_link")] + [System.Text.Json.Serialization.JsonPropertyName("url_link")] + public string UrlLink { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaQueryUrlLinkResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaQueryUrlLinkResponse.cs new file mode 100644 index 00000000..8e945a9e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlLink/WxaQueryUrlLinkResponse.cs @@ -0,0 +1,135 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /wxa/query_urllink 接口的响应。 + /// + public class WxaQueryUrlLinkResponse : WechatApiResponse + { + public static class Types + { + public class UrlLink + { + public static class Types + { + public class CloudBase + { + /// + /// 获取或设置云开发环境 ID。 + /// + [Newtonsoft.Json.JsonProperty("env")] + [System.Text.Json.Serialization.JsonPropertyName("env")] + public string EnvironmentId { get; set; } = string.Empty; + + /// + /// 获取或设置静态网站自定义域名。 + /// + [Newtonsoft.Json.JsonProperty("domain")] + [System.Text.Json.Serialization.JsonPropertyName("domain")] + public string? Domain { get; set; } + + /// + /// 获取或设置云开发静态网站 H5 页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string? Path { get; set; } + + /// + /// 获取或设置云开发静态网站 H5 页面参数。 + /// + [Newtonsoft.Json.JsonProperty("query")] + [System.Text.Json.Serialization.JsonPropertyName("query")] + public string? Query { get; set; } + + /// + /// 获取或设置第三方平台的 AppId。 + /// + [Newtonsoft.Json.JsonProperty("resource_appid")] + [System.Text.Json.Serialization.JsonPropertyName("resource_appid")] + public string? ResourceAppId { get; set; } + } + } + + /// + /// 获取或设置小程序 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = default!; + + /// + /// 获取或设置小程序页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string Path { get; set; } = default!; + + /// + /// 获取或设置小程序页面参数。 + /// + [Newtonsoft.Json.JsonProperty("query")] + [System.Text.Json.Serialization.JsonPropertyName("query")] + public string? Query { get; set; } + + /// + /// 获取或设置要打开的小程序版本。 + /// + [Newtonsoft.Json.JsonProperty("env_version")] + [System.Text.Json.Serialization.JsonPropertyName("env_version")] + public string EnvironmentVersion { get; set; } = default!; + + /// + /// 获取或设置过期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("expire_time")] + [System.Text.Json.Serialization.JsonPropertyName("expire_time")] + public long ExpireTimestamp { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + + /// + /// 获取或设置云开发静态网站自定义 H5 配置参数。 + /// + [Newtonsoft.Json.JsonProperty("cloud_base")] + [System.Text.Json.Serialization.JsonPropertyName("cloud_base")] + public Types.CloudBase? CloudBase { get; set; } + } + + public class Quota + { + /// + /// 获取或设置长期有效的已生成次数。 + /// + [Newtonsoft.Json.JsonProperty("long_time_used")] + [System.Text.Json.Serialization.JsonPropertyName("long_time_used")] + public int LongTimeUsed { get; set; } + + /// + /// 获取或设置长期有效的次数上限。 + /// + [Newtonsoft.Json.JsonProperty("long_time_limit")] + [System.Text.Json.Serialization.JsonPropertyName("long_time_limit")] + public int LongTimeLimit { get; set; } + } + } + + /// + /// 获取或设置 URL Link 信息。 + /// + [Newtonsoft.Json.JsonProperty("url_link_info")] + [System.Text.Json.Serialization.JsonPropertyName("url_link_info")] + public Types.UrlLink UrlLink { get; set; } = default!; + + /// + /// 获取或设置配额信息。 + /// + [Newtonsoft.Json.JsonProperty("url_link_quota")] + [System.Text.Json.Serialization.JsonPropertyName("url_link_quota")] + public Types.Quota Quota { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaGenerateSchemeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaGenerateSchemeRequest.cs index 6f0226c0..81b9a65c 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaGenerateSchemeRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaGenerateSchemeRequest.cs @@ -22,6 +22,13 @@ [Newtonsoft.Json.JsonProperty("query")] [System.Text.Json.Serialization.JsonPropertyName("query")] public string? Query { get; set; } + + /// + /// 获取或设置要打开的小程序版本。 + /// + [Newtonsoft.Json.JsonProperty("env_version")] + [System.Text.Json.Serialization.JsonPropertyName("env_version")] + public string? EnvironmentVersion { get; set; } } } @@ -37,7 +44,14 @@ /// [Newtonsoft.Json.JsonProperty("is_expire")] [System.Text.Json.Serialization.JsonPropertyName("is_expire")] - public bool? IsExpire { get; set; } + public bool? IsExpirable { get; set; } + + /// + /// 获取或设置到期失效类型。 + /// + [Newtonsoft.Json.JsonProperty("expire_type")] + [System.Text.Json.Serialization.JsonPropertyName("expire_type")] + public int ExpireType { get; set; } /// /// 获取或设置到期失效的时间戳。 @@ -45,5 +59,12 @@ [Newtonsoft.Json.JsonProperty("expire_time")] [System.Text.Json.Serialization.JsonPropertyName("expire_time")] public long? ExpireTimestamp { get; set; } + + /// + /// 获取或设置到期失效的时间间隔(单位:天)。 + /// + [Newtonsoft.Json.JsonProperty("expire_interval")] + [System.Text.Json.Serialization.JsonPropertyName("expire_interval")] + public int? ExpireInterval { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaGenerateSchemeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaGenerateSchemeResponse.cs index 8e859bd8..d20eaf7e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaGenerateSchemeResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaGenerateSchemeResponse.cs @@ -10,6 +10,6 @@ /// [Newtonsoft.Json.JsonProperty("openlink")] [System.Text.Json.Serialization.JsonPropertyName("openlink")] - public string OpenLink { get; set; } = default!; + public string UrlScheme { get; set; } = default!; } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaQuerySchemeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaQuerySchemeRequest.cs new file mode 100644 index 00000000..e31363b3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaQuerySchemeRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /wxa/queryscheme 接口的请求。 + /// + public class WxaQuerySchemeRequest : WechatApiRequest + { + /// + /// 获取或设置小程序 URL Scheme。 + /// + [Newtonsoft.Json.JsonProperty("scheme")] + [System.Text.Json.Serialization.JsonPropertyName("scheme")] + public string UrlScheme { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaQuerySchemeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaQuerySchemeResponse.cs new file mode 100644 index 00000000..5e3b9cec --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/UrlScheme/WxaQuerySchemeResponse.cs @@ -0,0 +1,87 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /wxa/queryscheme 接口的响应。 + /// + public class WxaQuerySchemeResponse : WechatApiResponse + { + public static class Types + { + public class UrlScheme + { + /// + /// 获取或设置小程序 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = default!; + + /// + /// 获取或设置小程序页面路径。 + /// + [Newtonsoft.Json.JsonProperty("path")] + [System.Text.Json.Serialization.JsonPropertyName("path")] + public string Path { get; set; } = default!; + + /// + /// 获取或设置小程序页面参数。 + /// + [Newtonsoft.Json.JsonProperty("query")] + [System.Text.Json.Serialization.JsonPropertyName("query")] + public string? Query { get; set; } + + /// + /// 获取或设置要打开的小程序版本。 + /// + [Newtonsoft.Json.JsonProperty("env_version")] + [System.Text.Json.Serialization.JsonPropertyName("env_version")] + public string EnvironmentVersion { get; set; } = default!; + + /// + /// 获取或设置过期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("expire_time")] + [System.Text.Json.Serialization.JsonPropertyName("expire_time")] + public long ExpireTimestamp { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + + public class Quota + { + /// + /// 获取或设置长期有效的已生成次数。 + /// + [Newtonsoft.Json.JsonProperty("long_time_used")] + [System.Text.Json.Serialization.JsonPropertyName("long_time_used")] + public int LongTimeUsed { get; set; } + + /// + /// 获取或设置长期有效的次数上限。 + /// + [Newtonsoft.Json.JsonProperty("long_time_limit")] + [System.Text.Json.Serialization.JsonPropertyName("long_time_limit")] + public int LongTimeLimit { get; set; } + } + } + + /// + /// 获取或设置 URL Scheme 信息。 + /// + [Newtonsoft.Json.JsonProperty("scheme_info")] + [System.Text.Json.Serialization.JsonPropertyName("scheme_info")] + public Types.UrlScheme UrlScheme { get; set; } = default!; + + /// + /// 获取或设置配额信息。 + /// + [Newtonsoft.Json.JsonProperty("scheme_quota")] + [System.Text.Json.Serialization.JsonPropertyName("scheme_quota")] + public Types.Quota Quota { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/WxaCode/WxaGetWxaCodeUnlimitRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/WxaCode/WxaGetWxaCodeUnlimitRequest.cs index becbaddc..a0e03b1d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/WxaCode/WxaGetWxaCodeUnlimitRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Wxa/WxaCode/WxaGetWxaCodeUnlimitRequest.cs @@ -59,7 +59,7 @@ /// [Newtonsoft.Json.JsonProperty("check_path")] [System.Text.Json.Serialization.JsonPropertyName("check_path")] - public bool? RequireCheckPagePath { get; set; } + public bool? RequireCheckPath { get; set; } /// /// 获取或设置要打开的小程序版本。 diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlLink/WxaQueryUrlLinkRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlLink/WxaQueryUrlLinkRequest.json new file mode 100644 index 00000000..1c1d7e57 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlLink/WxaQueryUrlLinkRequest.json @@ -0,0 +1,3 @@ +{ + "url_link": "https://wxaurl.cn/BQZRrcFCPvg" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlLink/WxaQueryUrlLinkResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlLink/WxaQueryUrlLinkResponse.json new file mode 100644 index 00000000..4ed48cec --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlLink/WxaQueryUrlLinkResponse.json @@ -0,0 +1,23 @@ +{ + "errcode": 0, + "errmsg": "ok", + "url_link_info": { + "appid": "appid", + "path": "", + "query": "", + "create_time": 611928113, + "expire_time": 0, + "env_version": "release", + "cloud_base": { + "env": "", + "doamin": "", + "path": "", + "query": "", + "resource_appid": "" + } + }, + "url_link_quota": { + "long_time_used": 100, + "long_time_limit": 100000 + } +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlScheme/WxaQuerySchemeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlScheme/WxaQuerySchemeRequest.json new file mode 100644 index 00000000..6e08ceb1 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlScheme/WxaQuerySchemeRequest.json @@ -0,0 +1,3 @@ +{ + "scheme": "weixin://dl/business/?t=XTSkBZlzqmn" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlScheme/WxaQuerySchemeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlScheme/WxaQuerySchemeResponse.json new file mode 100644 index 00000000..9f65a409 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Wxa/UrlScheme/WxaQuerySchemeResponse.json @@ -0,0 +1,16 @@ +{ + "errcode": 0, + "errmsg": "ok", + "scheme_info": { + "appid": "appid", + "path": "", + "query": "", + "create_time": 611928113, + "expire_time": 0, + "env_version": "release" + }, + "scheme_quota": { + "long_time_used": 100, + "long_time_limit": 100000 + } +} \ No newline at end of file