feat(wxapi): 新增微信小店合作账号相关接口

This commit is contained in:
Fu Diwei 2024-11-04 21:56:59 +08:00
parent 949c3cd886
commit 375f43ddce
21 changed files with 787 additions and 197 deletions

View File

@ -18,6 +18,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <![CDATA[ https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/access-token/auth.getAccessToken.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/basics/getaccesstoken.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/windowproduct/getaccesstoken.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/API/basics/getaccesstoken.html ]]>
/// <![CDATA[ https://dev.weixin.qq.com/docs/framework/dev/openapi/getaccesstoken.html ]]>
/// </para>
/// </summary>
@ -45,7 +46,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getStableAccessToken.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/access-token/auth.getStableAccessToken.html ]]>
/// <![CDATA[ https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/access-token/auth.getStableAccessToken.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/basics/getStableAccessToken.html ]]>
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/API/basics/getStableAccessToken.html ]]>
/// </para>
/// </summary>
/// <param name="client"></param>

View File

@ -15,7 +15,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/offiaccount/Message_Management/API_Call_Limits.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/openapi/clearQuota.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/openApi-mgnt/clearQuota.html ]]>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/openApi-mgnt/clearQuota.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/apimgnt/clearQuota.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/API/apimgnt/clearQuota.html ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
@ -41,7 +43,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <para>异步调用 [POST] /cgi-bin/clear_quota/v2 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/offiaccount/openApi/clearQuotaByAppSecret.html ]]>
/// <![CDATA[ https://developers.weixin.qq.com/doc/offiaccount/openApi/clearQuotaByAppSecret.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/apimgnt/clearQuotaByAppSecret.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/API/apimgnt/clearQuotaByAppSecret.html ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
@ -74,6 +78,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <![CDATA[ https://developers.weixin.qq.com/doc/offiaccount/openApi/get_api_quota.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/openapi/getApiQuota.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/openApi-mgnt/getApiQuota.html ]]>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/apimgnt/getApiQuota.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/API/apimgnt/getApiQuota.html ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
@ -99,6 +105,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <![CDATA[ https://developers.weixin.qq.com/doc/offiaccount/openApi/get_rid_info.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/openapi/getRidInfo.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/openApi-mgnt/getRidInfo.html ]]>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/apimgnt/getRidInfo.html ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/API/apimgnt/getRidInfo.html ]]>
/// </para>
/// </summary>
/// <param name="client"></param>

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/list 接口的请求。</para>
/// </summary>
public class ChannelsECCooperationListRequest : WechatApiRequest, IInferable<ChannelsECCooperationListRequest, ChannelsECCooperationListResponse>
{
/// <summary>
/// 获取或设置合作账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_type")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_type")]
public int SharerType { get; set; }
}
}

View File

@ -0,0 +1,77 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/list 接口的响应。</para>
/// </summary>
public class ChannelsECCooperationListResponse : WechatApiResponse
{
public static class Types
{
public class Sharer
{
/// <summary>
/// 获取或设置合作账号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_id")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_id")]
public string SharerId { get; set; } = default!;
/// <summary>
/// 获取或设置合作账号名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_name")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_name")]
public string SharerName { get; set; } = default!;
/// <summary>
/// 获取或设置合作账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_type")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_type")]
public int SharerType { get; set; }
/// <summary>
/// 获取或设置合作账号状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置绑定时间毫秒级时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("bind_time")]
[System.Text.Json.Serialization.JsonPropertyName("bind_time")]
public long? BindTimeMilliseconds { get; set; }
/// <summary>
/// 获取或设置解绑时间毫秒级时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("unbind_time")]
[System.Text.Json.Serialization.JsonPropertyName("unbind_time")]
public long? UnbindTimeMilliseconds { get; set; }
/// <summary>
/// 获取或设置用户拒绝时间毫秒级时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("reject_time")]
[System.Text.Json.Serialization.JsonPropertyName("reject_time")]
public long? RejectTimeMilliseconds { get; set; }
/// <summary>
/// 获取或设置商家取消时间毫秒级时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("cancel_time")]
[System.Text.Json.Serialization.JsonPropertyName("cancel_time")]
public long? CancelTimeMilliseconds { get; set; }
}
}
/// <summary>
/// 获取或设置合作账号列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("data_list")]
[System.Text.Json.Serialization.JsonPropertyName("data_list")]
public Types.Sharer[] SharerList { get; set; } = default!;
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/invitation/cancel 接口的请求。</para>
/// </summary>
public class ChannelsECCooperationInvitationCancelRequest : WechatApiRequest, IInferable<ChannelsECCooperationInvitationCancelRequest, ChannelsECCooperationInvitationCancelResponse>
{
/// <summary>
/// 获取或设置合作账号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_id")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_id")]
public string SharerId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置合作账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_type")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_type")]
public int SharerType { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/invitation/cancel 接口的响应。</para>
/// </summary>
public class ChannelsECCooperationInvitationCancelResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/invitation/get 接口的请求。</para>
/// </summary>
public class ChannelsECCooperationInvitationGetRequest : WechatApiRequest, IInferable<ChannelsECCooperationInvitationGetRequest, ChannelsECCooperationInvitationGetResponse>
{
/// <summary>
/// 获取或设置合作账号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_id")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_id")]
public string SharerId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置合作账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_type")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_type")]
public int SharerType { get; set; }
}
}

View File

@ -0,0 +1,28 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/invitation/get 接口的响应。</para>
/// </summary>
public class ChannelsECCooperationInvitationGetResponse : WechatApiResponse
{
public static class Types
{
public class Data
{
/// <summary>
/// 获取或设置合作账号状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
}
}
/// <summary>
/// 获取或设置返回数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
public Types.Data Data { get; set; } = default!;
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/invitation/qrcode/generate 接口的请求。</para>
/// </summary>
public class ChannelsECCooperationInvitationQrcodeGenerateRequest : WechatApiRequest, IInferable<ChannelsECCooperationInvitationQrcodeGenerateRequest, ChannelsECCooperationInvitationQrcodeGenerateResponse>
{
/// <summary>
/// 获取或设置合作账号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_id")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_id")]
public string SharerId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置合作账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_type")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_type")]
public int SharerType { get; set; }
}
}

View File

@ -0,0 +1,28 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/invitation/qrcode/generate 接口的响应。</para>
/// </summary>
public class ChannelsECCooperationInvitationQrcodeGenerateResponse : WechatApiResponse
{
public static class Types
{
public class Data
{
/// <summary>
/// 获取或设置经过 Base64 编码后的二维码数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("qrcode_base64")]
[System.Text.Json.Serialization.JsonPropertyName("qrcode_base64")]
public string EncodingQrcodeData { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置返回数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
public Types.Data Data { get; set; } = default!;
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/invitation/unbind 接口的请求。</para>
/// </summary>
public class ChannelsECCooperationInvitationUnbindRequest : WechatApiRequest, IInferable<ChannelsECCooperationInvitationUnbindRequest, ChannelsECCooperationInvitationUnbindResponse>
{
/// <summary>
/// 获取或设置合作账号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_id")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_id")]
public string SharerId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置合作账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_type")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_type")]
public int SharerType { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/cooperation/invitation/unbind 接口的响应。</para>
/// </summary>
public class ChannelsECCooperationInvitationUnbindResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,26 @@
{
"errcode": 0,
"errmsg": "ok",
"data_list": [
{
"sharer_id": "sphDFZbOEY46mMQ",
"status": 2,
"sharer_name": "视频号昵称1",
"sharer_type": 1,
"bind_time": 1728908643533,
"unbind_time": 1728909064625,
"reject_time": 0,
"cancel_time": 0
},
{
"sharer_id": "sphv31FDyX6sQOK",
"status": 1,
"sharer_name": "视频号昵称2",
"sharer_type": 1,
"bind_time": 1728903434994,
"unbind_time": 0,
"reject_time": 0,
"cancel_time": 0
}
]
}

View File

@ -0,0 +1,4 @@
{
"sharer_id": "sph3FZbOEY64mWQ",
"sharer_type": 1
}

View File

@ -0,0 +1,7 @@
{
"errcode": 0,
"errmsg": "ok",
"data": {
"status": 7
}
}

View File

@ -0,0 +1,7 @@
{
"errcode": 0,
"errmsg": "ok",
"data": {
"qrcode_base64": "/9j/4A"
}
}