From 9dd180642c3fb6229f566d8e505290b1561a84dd Mon Sep 17 00:00:00 2001
From: mc7246
Date: Mon, 2 May 2022 21:41:06 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E9=9A=90?=
=?UTF-8?q?=E7=A7=81=E6=8E=A5=E5=8F=A3=E6=9D=83=E9=99=90=E7=94=B3=E8=AF=B7?=
=?UTF-8?q?=E5=8F=8A=E4=BA=8B=E4=BB=B6=E6=8E=A8=E9=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ApplyPrivacyInterfaceJsonResult.cs | 14 +++
.../GetPrivacyInterfaceJsonResult.cs | 72 +++++++++++++++
.../Senparc.Weixin.Open/WxaAPIs/WxaApi.cs | 87 +++++++++++++++++++
.../Event/RequestMessageEvent_PrivacyApply.cs | 75 ++++++++++++++++
.../Senparc.Weixin.WxOpen/Enums.cs | 3 +-
.../WxOpenMessageHandler.Event.cs | 27 +++++-
6 files changed, 276 insertions(+), 2 deletions(-)
create mode 100644 src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/ApplyPrivacyInterfaceJsonResult.cs
create mode 100644 src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/GetPrivacyInterfaceJsonResult.cs
create mode 100644 src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/ApplyPrivacyInterfaceJsonResult.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/ApplyPrivacyInterfaceJsonResult.cs
new file mode 100644
index 0000000000..2ea849dd02
--- /dev/null
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/ApplyPrivacyInterfaceJsonResult.cs
@@ -0,0 +1,14 @@
+using Senparc.Weixin.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Senparc.Weixin.Open.WxaAPIs
+{
+ public class ApplyPrivacyInterfaceJsonResult : WxJsonResult
+ {
+ public uint audit_id { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/GetPrivacyInterfaceJsonResult.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/GetPrivacyInterfaceJsonResult.cs
new file mode 100644
index 0000000000..feb9b403e4
--- /dev/null
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/GetPrivacyInterfaceJsonResult.cs
@@ -0,0 +1,72 @@
+using Senparc.Weixin.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Senparc.Weixin.Open.WxaAPIs
+{
+ ///
+ /// 获取隐私接口列表结果
+ ///
+ [Serializable]
+ public class GetPrivacyInterfaceJsonResult : WxJsonResult
+ {
+ ///
+ /// 隐私接口
+ ///
+ public List interface_list { get; set; }
+ }
+
+ [Serializable]
+ public class PrivacyInterfaceInfo
+ {
+ ///
+ /// api 英文名
+ ///
+ public string api_name { get; set; }
+
+ ///
+ /// api 中文名
+ ///
+ public string api_ch_name { get; set; }
+
+ ///
+ /// api描述
+ ///
+ public string api_desc { get; set; }
+
+ ///
+ /// 申请时间 ,该字段发起申请后才会有
+ ///
+ public uint apply_time { get; set; }
+
+ ///
+ /// 接口状态,该字段发起申请后才会有
+ /// 1-待申请开通,2-无权限,3-申请中,4-申请失败,5-已开通
+ ///
+ public int status { get; set; }
+
+ ///
+ /// 申请单号,该字段发起申请后才会有
+ ///
+ public uint audit_id { get; set; }
+
+ ///
+ /// 申请被驳回原因或者无权限,该字段申请驳回时才会有
+ ///
+ public string fail_reason { get; set; }
+
+ ///
+ /// api文档链接
+ ///
+ public string api_link { get; set; }
+
+ ///
+ /// 分组名
+ ///
+ public string group_name { get; set; }
+ }
+
+}
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/WxaApi.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/WxaApi.cs
index 60c609a035..0d62c445d8 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/WxaApi.cs
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/WxaApi.cs
@@ -40,6 +40,7 @@ and limitations under the License.
using Senparc.NeuChar;
using Senparc.Weixin.CommonAPIs;
using Senparc.Weixin.Entities;
+using System.Collections.Generic;
using System.Threading.Tasks;
namespace Senparc.Weixin.Open.WxaAPIs
@@ -146,6 +147,49 @@ public static GetAppealRecordsJsonResult GetAppealRecords(string accessToken, st
return CommonJsonSend.Send(null, url, data);
}
+ #endregion
+ #region 隐私接口
+ ///
+ /// 获取隐私接口列表
+ /// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/apply_api/get_privacy_interface.html
+ ///
+ ///
+ ///
+ public static GetPrivacyInterfaceJsonResult GetPrivacyInterface(string accessToken)
+ {
+ var url = $"{Config.ApiMpHost}/wxa/security/get_privacy_interface?access_token={accessToken.AsUrlData()}";
+
+
+ return CommonJsonSend.Send(null, url, null, CommonJsonSendType.GET);
+
+ }
+
+ ///
+ /// 申请隐私接口
+ /// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/apply_api/apply_privacy_interface.html
+ ///
+ ///
+ /// 申请的api英文名,例如wx.choosePoi,严格区分大小写
+ /// 申请说原因,不超过300个字符;需要以utf-8编码提交,否则会出现审核失败
+ /// (辅助网页)例如,上传官网网页链接用于辅助审核
+ /// (辅助图片)填写图片的url ,最多10个
+ /// (辅助视频)填写视频的链接 ,最多支持1个;视频格式只支持mp4格式
+ ///
+ public static ApplyPrivacyInterfaceJsonResult ApplyPrivacyInterface(string accessToken, string api_name, string content, List url_list = null,List pic_list=null,List video_list=null)
+ {
+ var url = $"{Config.ApiMpHost}/wxa/security/apply_privacy_interface?access_token={accessToken.AsUrlData()}";
+
+ var data = new
+ {
+ api_name,
+ content,
+ url_list,
+ pic_list,
+ video_list
+ };
+
+ return CommonJsonSend.Send(null, url, data);
+ }
#endregion
#endregion
@@ -245,6 +289,49 @@ public static async Task GetAppealRecordsAsync(strin
return await CommonJsonSend.SendAsync(null, url, data).ConfigureAwait(false);
}
+ #endregion
+ #region 隐私接口
+ ///
+ /// 【异步方法】获取隐私接口列表
+ /// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/apply_api/get_privacy_interface.html
+ ///
+ ///
+ ///
+ public static async Task GetPrivacyInterfaceAsync(string accessToken)
+ {
+ var url = $"{Config.ApiMpHost}/wxa/security/get_privacy_interface?access_token={accessToken.AsUrlData()}";
+
+
+ return await CommonJsonSend.SendAsync(null, url, null, CommonJsonSendType.GET).ConfigureAwait(false);
+
+ }
+
+ ///
+ /// 【异步方法】申请隐私接口
+ /// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/apply_api/apply_privacy_interface.html
+ ///
+ ///
+ /// 申请的api英文名,例如wx.choosePoi,严格区分大小写
+ /// 申请说原因,不超过300个字符;需要以utf-8编码提交,否则会出现审核失败
+ /// (辅助网页)例如,上传官网网页链接用于辅助审核
+ /// (辅助图片)填写图片的url ,最多10个
+ /// (辅助视频)填写视频的链接 ,最多支持1个;视频格式只支持mp4格式
+ ///
+ public static async Task ApplyPrivacyInterfaceAsync(string accessToken, string api_name, string content, List url_list = null, List pic_list = null, List video_list = null)
+ {
+ var url = $"{Config.ApiMpHost}/wxa/security/apply_privacy_interface?access_token={accessToken.AsUrlData()}";
+
+ var data = new
+ {
+ api_name,
+ content,
+ url_list,
+ pic_list,
+ video_list
+ };
+
+ return await CommonJsonSend.SendAsync(null, url, data).ConfigureAwait(false);
+ }
#endregion
#endregion
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
new file mode 100644
index 0000000000..eef61afda3
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
@@ -0,0 +1,75 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2022 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
+
+----------------------------------------------------------------*/
+#endregion Apache License Version 2.0
+
+/*----------------------------------------------------------------
+ Copyright (C) 2022 Senparc
+
+ 文件名:RequestMessageEvent_WeAppAuditSuccess.cs
+ 文件功能描述:事件之小程序审核成功
+
+
+ 创建标识:Senparc - 2010828
+
+----------------------------------------------------------------*/
+
+namespace Senparc.Weixin.WxOpen.Entities
+{
+ ///
+ /// 事件之隐私权限审核结果推送
+ ///
+ public class RequestMessageEvent_PrivacyApply : RequestMessageEventBase, IRequestMessageEventBase
+ {
+ ///
+ /// 事件类型
+ ///
+ public override Event Event
+ {
+ get { return Event.wxa_privacy_apply; }
+ }
+
+ ///
+ /// 审核成功时的时间(整型),时间戳
+ ///
+ public string SuccTime { get; set; }
+
+ ///
+ /// 审核结果
+ ///
+ public PrivacyApplyResultInfo result_info { get; set; }
+ }
+
+ public class PrivacyApplyResultInfo
+ {
+ public string api_name { get; set; }
+
+ public string apply_time { get; set; }
+
+ public string audit_id { get; set; }
+
+ public string audit_time { get; set; }
+
+ public string reason { get; set; }
+
+ ///
+ /// 2-审核不通过,3-审核通过
+ ///
+ public string status { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs
index 34277d01de..a51e68e28a 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs
@@ -60,7 +60,8 @@ public enum Event
weapp_audit_fail,
weapp_audit_delay,
wxa_illegal_record, //小程序违规记录事件
- wxa_appeal_record //小程序申诉记录推送
+ wxa_appeal_record, //小程序申诉记录推送
+ wxa_privacy_apply //隐私权限审核结果推送
}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs
index e47c6da43a..608eb7bec9 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs
@@ -89,6 +89,9 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ
case Event.wxa_appeal_record:
responseMessage = OnEvent_AppealRecordRequest(RequestMessage as RequestMessageEvent_AppealRecord);
break;
+ case Event.wxa_privacy_apply:
+ responseMessage = OnEvent_PrivacyApplyRequest(RequestMessage as RequestMessageEvent_PrivacyApply);
+ break;
default:
throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
}
@@ -96,7 +99,6 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ
}
#region Event 下属分类
-
///
/// 在腾讯地图中创建门店的审核结果
///
@@ -195,6 +197,16 @@ public virtual IResponseMessageBase OnEvent_AppealRecordRequest(RequestMessageEv
return DefaultResponseMessage(requestMessage);
}
+ ///
+ /// 隐私权限申请结果推送
+ ///
+ ///
+ ///
+ public virtual IResponseMessageBase OnEvent_PrivacyApplyRequest(RequestMessageEvent_PrivacyApply requestMessage)
+ {
+ return DefaultResponseMessage(requestMessage);
+ }
+
#endregion
@@ -243,6 +255,9 @@ public virtual async Task OnEventRequestAsync(IRequestMess
case Event.wxa_appeal_record:
responseMessage = await OnEvent_AppealRecordRequestAsync(RequestMessage as RequestMessageEvent_AppealRecord);
break;
+ case Event.wxa_privacy_apply:
+ responseMessage = await OnEvent_PrivacyApplyRequestAsync(RequestMessage as RequestMessageEvent_PrivacyApply);
+ break;
default:
throw new UnknownRequestMsgTypeException("未知的Event下属请求信息", null);
}
@@ -348,6 +363,16 @@ public virtual async Task OnEvent_AppealRecordRequestAsync
return await DefaultAsyncMethod(requestMessage, () => OnEvent_AppealRecordRequest(requestMessage)).ConfigureAwait(false);
}
+ ///
+ /// 【异步方法】隐私权限申请结果推送
+ ///
+ ///
+ ///
+ public virtual async Task OnEvent_PrivacyApplyRequestAsync(RequestMessageEvent_PrivacyApply requestMessage)
+ {
+ return await DefaultAsyncMethod(requestMessage, () => OnEvent_PrivacyApplyRequest(requestMessage)).ConfigureAwait(false);
+ }
+
#endregion
From ac23724d2221edcf287aa01a6a35f5e869973ddd Mon Sep 17 00:00:00 2001
From: mc7246
Date: Mon, 2 May 2022 21:47:39 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E4=B9=8B=E9=9A=90?=
=?UTF-8?q?=E7=A7=81=E6=9D=83=E9=99=90=E5=AE=A1=E6=A0=B8=E7=BB=93=E6=9E=9C?=
=?UTF-8?q?=E6=8E=A8=E9=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
index eef61afda3..690c403e60 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
@@ -22,7 +22,7 @@ and limitations under the License.
Copyright (C) 2022 Senparc
文件名:RequestMessageEvent_WeAppAuditSuccess.cs
- 文件功能描述:事件之小程序审核成功
+ 文件功能描述:事件之隐私权限审核结果推送
创建标识:Senparc - 2010828
From 8e7258b75c0cd31848edf9cfd6699fcdb2ed90b1 Mon Sep 17 00:00:00 2001
From: JeffreySu
Date: Wed, 4 May 2022 00:35:04 +0800
Subject: [PATCH 3/4] =?UTF-8?q?MP=20v16.18.1=20=E5=85=AC=E4=BC=97=E5=8F=B7?=
=?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=B7=BB=E5=8A=A0=20article=5Fid=E3=80=81art?=
=?UTF-8?q?icle=5Fview=5Flimited=20=E7=B1=BB=E5=9E=8B=20#2621=20=E6=84=9F?=
=?UTF-8?q?=E8=B0=A2=20=20@niuniu12345677777?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...arc.Weixin.Net6Sample.CommonService.csproj | 2 +-
.../Senparc.Weixin.Sample.Net6.csproj | 6 +-
.../Views/Menu/Index.cshtml | 6 ++
.../wwwroot/Scripts/senparc.menu.js | 27 ++++++++-
.../Senparc.WebSocket.net6.csproj | 2 +-
.../Senparc.Weixin.AspNet.net6.csproj | 4 +-
.../Senparc.Weixin.Cache.CsRedis.net6.csproj | 2 +-
...Senparc.Weixin.Cache.Memcached.net6.csproj | 2 +-
.../Senparc.Weixin.Cache.Redis.net6.csproj | 2 +-
.../Senparc.Weixin.MP.Middleware.net6.csproj | 4 +-
...Senparc.Weixin.MP.MvcExtension.net6.csproj | 4 +-
.../CommonAPIs/Menu/CommonApi.Menu.Common.cs | 57 +++++++++++++++++--
.../JsonResult/Menu/GetMenuResultFull.cs | 3 +
.../Menu/Buttons/SingleArticleIdButton.cs | 51 +++++++++++++++++
.../Buttons/SingleArticleViewLimitedButton.cs | 55 ++++++++++++++++++
.../Menu/Buttons/SingleMediaIdButton.cs | 2 +
.../Menu/Buttons/SingleViewLimitedButton.cs | 2 +
.../Senparc.Weixin.MP.net6.csproj | 7 ++-
.../Senparc.Weixin.Open.net6.csproj | 4 +-
.../Senparc.Weixin.TenPay.net6.csproj | 2 +-
.../Senparc.Weixin.TenPayV3.net6.csproj | 4 +-
...Senparc.Weixin.Work.Middleware.net6.csproj | 4 +-
.../Helpers/EntityHelper.cs | 16 +++---
.../Senparc.Weixin.Work.net6.csproj | 6 +-
...nparc.Weixin.WxOpen.Middleware.net6.csproj | 4 +-
.../Senparc.Weixin.WxOpen.net6.csproj | 4 +-
.../Senparc.Weixin/Senparc.Weixin.net6.csproj | 6 +-
27 files changed, 239 insertions(+), 49 deletions(-)
create mode 100644 src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleArticleIdButton.cs
create mode 100644 src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleArticleViewLimitedButton.cs
diff --git a/Samples/All/Senparc.Weixin.Sample.CommonService/Senparc.Weixin.Net6Sample.CommonService.csproj b/Samples/All/Senparc.Weixin.Sample.CommonService/Senparc.Weixin.Net6Sample.CommonService.csproj
index da130e8a0c..a14ea01626 100644
--- a/Samples/All/Senparc.Weixin.Sample.CommonService/Senparc.Weixin.Net6Sample.CommonService.csproj
+++ b/Samples/All/Senparc.Weixin.Sample.CommonService/Senparc.Weixin.Net6Sample.CommonService.csproj
@@ -19,7 +19,7 @@
-
+
diff --git a/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/Senparc.Weixin.Sample.Net6.csproj b/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/Senparc.Weixin.Sample.Net6.csproj
index 911768e2ed..2bb24fcc17 100644
--- a/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/Senparc.Weixin.Sample.Net6.csproj
+++ b/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/Senparc.Weixin.Sample.Net6.csproj
@@ -2,7 +2,7 @@
net6.0
- 6.5.13
+ 6.5.14
35e58786-0820-4cde-b1ff-f4c6198d00f7
false
@@ -40,8 +40,8 @@
-
-
+
+
diff --git a/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/Views/Menu/Index.cshtml b/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/Views/Menu/Index.cshtml
index 1f9b280699..dc5622712d 100644
--- a/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/Views/Menu/Index.cshtml
+++ b/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/Views/Menu/Index.cshtml
@@ -393,6 +393,7 @@
+
}
@@ -418,6 +419,8 @@
+
+
@@ -435,6 +438,9 @@
MediaId:
+
+ ArticleId:
+
如果还有下级菜单请忽略上述Type和Key、Url等参数。
diff --git a/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/wwwroot/Scripts/senparc.menu.js b/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/wwwroot/Scripts/senparc.menu.js
index c58bb13dcd..9bd05f0c3b 100644
--- a/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/wwwroot/Scripts/senparc.menu.js
+++ b/Samples/All/net6-mvc/Senparc.Weixin.Sample.Net6/wwwroot/Scripts/senparc.menu.js
@@ -21,7 +21,8 @@ senparc.menu = {
var nameId = idPrefix + "_name";
var typeId = idPrefix + "_type";
var urlId = idPrefix + "_url";
- var mediaIdId = idPrefix + "_mediaid";
+ var mediaId = idPrefix + "_mediaid";
+ var articleId = idPrefix + "_articleid";
var appidId = idPrefix + "_appid";
var pagepathId = idPrefix + "_pagepath";
@@ -30,13 +31,15 @@ senparc.menu = {
var ddlDetailsType = $('#buttonDetails_type');
var txtDetailsUrl = $('#buttonDetails_url');
var txtMediaId = $('#buttonDetails_mediaId');
+ var txtArticleId = $('#buttonDetails_articleId');
var txtDetailsAppid = $('#buttonDetails_miniprogram_appid');
var txtDetailsPagepath = $('#buttonDetails_miniprogram_pagepath');
var hiddenButtonKey = $('#' + keyId);
var hiddenButtonType = $('#' + typeId);
var hiddenButtonUrl = $('#' + urlId);
- var hiddenButtonMediaId = $('#' + mediaIdId);
+ var hiddenButtonMediaId = $('#' + mediaId);
+ var hiddenButtonArticleId = $('#' + articleId);
var hiddenButtonAppid = $('#' + appidId);
var hiddenButtonPagepath = $('#' + pagepathId);
@@ -45,6 +48,7 @@ senparc.menu = {
ddlDetailsType.val(hiddenButtonType.val());
txtDetailsUrl.val(hiddenButtonUrl.val());
txtMediaId.val(hiddenButtonMediaId.val());
+ txtArticleId.val(hiddenButtonArticleId.val());
txtDetailsAppid.val(hiddenButtonAppid.val());
txtDetailsPagepath.val(hiddenButtonPagepath.val());
@@ -62,6 +66,9 @@ senparc.menu = {
txtMediaId.unbind('blur').blur(function () {
hiddenButtonMediaId.val($(this).val());
});
+ txtArticleId.unbind('blur').blur(function () {
+ hiddenButtonArticleId.val($(this).val());
+ });
txtDetailsAppid.unbind('blur').blur(function () {
hiddenButtonAppid.val($(this).val());
});
@@ -120,6 +127,7 @@ senparc.menu = {
$('#menu_button' + i + '_appid').val(button.appid);
$('#menu_button' + i + '_pagepath').val(button.pagepath);
$('#menu_button' + i + '_mediaid').val(button.media_id);
+ $('#menu_button' + i + '_articleid').val(button.article_id);
if (button.sub_button && button.sub_button.length > 0) {
//二级菜单
@@ -133,6 +141,7 @@ senparc.menu = {
$(idPrefix + "_appid").val(subButton.appid);
$(idPrefix + "_pagepath").val(subButton.pagepath);
$(idPrefix + "_mediaid").val(subButton.media_id);
+ $(idPrefix + "_articleid").val(subButton.article_id);
}
} else {
//底部菜单
@@ -231,6 +240,7 @@ senparc.menu = {
$('#buttonDetails_miniprogram_appid_area').slideUp(100);
$('#buttonDetails_miniprogram_pagepath_area').slideUp(100);
$('#buttonDetails_mediaId_area').slideUp(100);
+ $('#buttonDetails_articleId_area').slideUp(100);
break;
case 'VIEW':
$('#buttonDetails_key_area').slideUp(100);
@@ -238,6 +248,7 @@ senparc.menu = {
$('#buttonDetails_miniprogram_appid_area').slideUp(100);
$('#buttonDetails_miniprogram_pagepath_area').slideUp(100);
$('#buttonDetails_mediaId_area').slideUp(100);
+ $('#buttonDetails_articleId_area').slideUp(100);
break;
case 'MINIPROGRAM':
$('#buttonDetails_key_area').slideUp(100);
@@ -245,6 +256,7 @@ senparc.menu = {
$('#buttonDetails_miniprogram_appid_area').slideDown(100);
$('#buttonDetails_miniprogram_pagepath_area').slideDown(100);
$('#buttonDetails_mediaId_area').slideUp(100);
+ $('#buttonDetails_articleId_area').slideUp(100);
break;
case 'MEDIA_ID':
case 'VIEW_LIMITED':
@@ -253,6 +265,16 @@ senparc.menu = {
$('#buttonDetails_miniprogram_appid_area').slideUp(100);
$('#buttonDetails_miniprogram_pagepath_area').slideUp(100);
$('#buttonDetails_mediaId_area').slideDown(100);
+ $('#buttonDetails_articleId_area').slideUp(100);
+ break;
+ case 'ARTICLE_ID':
+ case 'ARTICLE_VIEW_LIMITED':
+ $('#buttonDetails_key_area').slideUp(100);
+ $('#buttonDetails_url_area').slideUp(100);
+ $('#buttonDetails_miniprogram_appid_area').slideUp(100);
+ $('#buttonDetails_miniprogram_pagepath_area').slideUp(100);
+ $('#buttonDetails_mediaId_area').slideUp(100);
+ $('#buttonDetails_articleId_area').slideDown(100);
break;
default:
$('#buttonDetails_key_area').slideDown(100);
@@ -260,6 +282,7 @@ senparc.menu = {
$('#buttonDetails_miniprogram_appid_area').slideUp(100);
$('#buttonDetails_miniprogram_pagepath_area').slideUp(100);
$('#buttonDetails_mediaId_area').slideUp(100);
+ $('#buttonDetails_articleId_area').slideUp(100);
break;
}
},
diff --git a/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.net6.csproj b/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.net6.csproj
index 3d5b5848fd..8450be1489 100644
--- a/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.net6.csproj
+++ b/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0
- 0.17
+ 0.17.1
Senparc.WebSocket
Senparc.WebSocket
true
diff --git a/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.net6.csproj b/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.net6.csproj
index 2f023af518..eb0967a814 100644
--- a/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.net6.csproj
+++ b/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0
- 0.8
+ 0.8.1
Senparc.Weixin.AspNet
Senparc.Weixin.AspNet
true
@@ -75,7 +75,7 @@
-
+
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.net6.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.net6.csproj
index 3c64bf3076..a665eef1de 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.net6.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 0.8
+ 0.8.1
Senparc.Weixin.Cache.CsRedis
Senparc.Weixin.Cache.CsRedis
true
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.net6.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.net6.csproj
index 68ed4b6f17..a4713e0aa2 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.net6.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 2.13
+ 2.13.1
Senparc.Weixin.Cache.Memcached
Senparc.Weixin.Cache.Memcached
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.net6.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.net6.csproj
index a4e44f14ce..5130085a37 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.net6.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 2.15
+ 2.15.1
Senparc.Weixin.Cache.Redis
Senparc.Weixin.Cache.Redis
true
diff --git a/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.net6.csproj b/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.net6.csproj
index 8b844d351e..95aa19537d 100644
--- a/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.net6.csproj
+++ b/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0
- 0.8
+ 0.8.1
Senparc.Weixin.MP.Middleware
Senparc.Weixin.MP.Middleware
true
@@ -70,7 +70,7 @@
-
+
diff --git a/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.net6.csproj b/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.net6.csproj
index fb4f0670f6..b062e71294 100644
--- a/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.net6.csproj
+++ b/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0
- 7.12
+ 7.12.1
Senparc.Weixin.MP.MvcExtension
Senparc.Weixin.MP.MvcExtension
true
@@ -147,7 +147,7 @@
-
+
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/CommonAPIs/Menu/CommonApi.Menu.Common.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/CommonAPIs/Menu/CommonApi.Menu.Common.cs
index 2f662fd53e..37cbc75f00 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/CommonAPIs/Menu/CommonApi.Menu.Common.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/CommonAPIs/Menu/CommonApi.Menu.Common.cs
@@ -51,6 +51,9 @@ and limitations under the License.
修改标识:Senparc - 20170419
修改描述:v14.4.13 修复二级菜单小程序无法设置的问题
+ 修改标识:Senparc - 20220503
+ 修改描述:v16.18.1 添加 article_id 类型按钮
+
----------------------------------------------------------------*/
/*
@@ -194,7 +197,7 @@ private static void GetButtonGroup(List rootButtonList, But
}
else if (rootButton.type.Equals("MEDIA_ID", StringComparison.OrdinalIgnoreCase))
{
- //扫码推事件
+ //下发消息(除文本消息)按钮
buttonGroup.button.Add(new SingleMediaIdButton()
{
name = rootButton.name,
@@ -204,7 +207,7 @@ private static void GetButtonGroup(List rootButtonList, But
}
else if (rootButton.type.Equals("VIEW_LIMITED", StringComparison.OrdinalIgnoreCase))
{
- //扫码推事件
+ //永久素材
buttonGroup.button.Add(new SingleViewLimitedButton()
{
name = rootButton.name,
@@ -212,6 +215,26 @@ private static void GetButtonGroup(List rootButtonList, But
type = rootButton.type
});
}
+ else if (rootButton.type.Equals("ARTICLE_ID", StringComparison.OrdinalIgnoreCase))
+ {
+ //article_id 按钮
+ buttonGroup.button.Add(new SingleArticleIdButton()
+ {
+ name = rootButton.name,
+ article_id = rootButton.article_id,
+ type = rootButton.type
+ });
+ }
+ else if (rootButton.type.Equals("ARTICLE_VIEW_LIMITED", StringComparison.OrdinalIgnoreCase))
+ {
+ //article_view_limited 按钮
+ buttonGroup.button.Add(new SingleArticleViewLimitedButton()
+ {
+ name = rootButton.name,
+ article_id = rootButton.article_id,
+ type = rootButton.type
+ });
+ }
else
{
throw new WeixinMenuException("菜单类型无法处理:" + rootButton.type);
@@ -325,7 +348,7 @@ private static void GetButtonGroup(List rootButtonList, But
}
else if (subSubButton.type.Equals("MEDIA_ID", StringComparison.OrdinalIgnoreCase))
{
- //扫码推事件
+ //下发消息(除文本消息)按钮
subButton.sub_button.Add(new SingleMediaIdButton()
{
name = subSubButton.name,
@@ -335,7 +358,7 @@ private static void GetButtonGroup(List rootButtonList, But
}
else if (subSubButton.type.Equals("VIEW_LIMITED", StringComparison.OrdinalIgnoreCase))
{
- //扫码推事件
+ //永久素材按钮
subButton.sub_button.Add(new SingleViewLimitedButton()
{
name = subSubButton.name,
@@ -343,7 +366,7 @@ private static void GetButtonGroup(List rootButtonList, But
type = subSubButton.type
});
}
- else
+ if (subSubButton.type.Equals("SCANCODE_WAITMSG", StringComparison.OrdinalIgnoreCase))
{
//扫码推事件且弹出“消息接收中”提示框
subButton.sub_button.Add(new SingleScancodeWaitmsgButton()
@@ -353,6 +376,30 @@ private static void GetButtonGroup(List rootButtonList, But
type = subSubButton.type
});
}
+ else if (subSubButton.type.Equals("ARTICLE_ID", StringComparison.OrdinalIgnoreCase))
+ {
+ //article_id 按钮
+ subButton.sub_button.Add(new SingleArticleIdButton()
+ {
+ name = subSubButton.name,
+ article_id = subSubButton.article_id,
+ type = subSubButton.type
+ });
+ }
+ else if (subSubButton.type.Equals("ARTICLE_VIEW_LIMITED", StringComparison.OrdinalIgnoreCase))
+ {
+ //article_view_limited 按钮
+ subButton.sub_button.Add(new SingleArticleViewLimitedButton()
+ {
+ name = subSubButton.name,
+ article_id = subSubButton.article_id,
+ type = subSubButton.type
+ });
+ }
+ else
+ {
+ throw new WeixinMenuException("菜单类型无法处理(二级菜单):" + subSubButton.type);
+ }
}
}
}
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/JsonResult/Menu/GetMenuResultFull.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/JsonResult/Menu/GetMenuResultFull.cs
index 8d7bad6c76..014363bf2e 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/JsonResult/Menu/GetMenuResultFull.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/JsonResult/Menu/GetMenuResultFull.cs
@@ -76,6 +76,9 @@ public class MenuFull_RootButton
public string media_id { get; set; }
+ public string article_id { get; set; }
+
+
public List sub_button { get; set; }
}
#endregion
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleArticleIdButton.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleArticleIdButton.cs
new file mode 100644
index 0000000000..d2f716d809
--- /dev/null
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleArticleIdButton.cs
@@ -0,0 +1,51 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2022 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
+
+----------------------------------------------------------------*/
+#endregion Apache License Version 2.0
+
+/*----------------------------------------------------------------
+ Copyright (C) 2022 Senparc
+
+ 文件名:SingleArticleIdButton.cs
+ 文件功能描述:用户点击 article_id 类型按钮后,微信客户端将会以卡片形式,下发开发者在按钮中填写的图文消息
+
+
+ 创建标识:Senparc - 20220503
+
+----------------------------------------------------------------*/
+using Senparc.NeuChar;
+
+namespace Senparc.Weixin.MP.Entities.Menu
+{
+ ///
+ /// article_id 按钮
+ /// 用户点击 article_id 类型按钮后,微信客户端将会以卡片形式,下发开发者在按钮中填写的图文消息
+ ///
+ public class SingleArticleIdButton : SingleButton
+ {
+ ///
+ /// 发布后获得的合法 article_id
+ ///
+ public string article_id { get; set; }
+
+ public SingleArticleIdButton()
+ : base(MenuButtonType.article_id.ToString())
+ {
+ }
+ }
+}
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleArticleViewLimitedButton.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleArticleViewLimitedButton.cs
new file mode 100644
index 0000000000..1faa968792
--- /dev/null
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleArticleViewLimitedButton.cs
@@ -0,0 +1,55 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2022 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
+
+----------------------------------------------------------------*/
+#endregion Apache License Version 2.0
+
+/*----------------------------------------------------------------
+ Copyright (C) 2022 Senparc
+
+ 文件名:SingleArticleViewLimitedButton.cs
+ 文件功能描述:类似 view_limited,但不使用 media_id 而使用 article_id:
+ 跳转图文消息URL用户点击view_limited类型按钮后,
+ 微信客户端将打开开发者在按钮中填写的永久素材id对应的图文消息URL,
+ 永久素材类型只支持图文消息。请注意:永久素材id必须是在“素材管理/新增永久素材”
+ 接口上传后获得的合法id。
+
+
+ 创建标识:Senparc - 20220503
+
+----------------------------------------------------------------*/
+using Senparc.NeuChar;
+
+namespace Senparc.Weixin.MP.Entities.Menu
+{
+ ///
+ /// SingleArticleViewLimitedButton 按钮
+ /// 类似 view_limited,但不使用 media_id 而使用 article_id
+ ///
+ public class SingleArticleViewLimitedButton : SingleButton
+ {
+ ///
+ /// 类似 view_limited,但不使用 media_id 而使用 article_id
+ ///
+ public string article_id { get; set; }
+
+ public SingleArticleViewLimitedButton()
+ : base(MenuButtonType.article_view_limited.ToString())
+ {
+ }
+ }
+}
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleMediaIdButton.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleMediaIdButton.cs
index bb4438ba0a..07a2b97b54 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleMediaIdButton.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleMediaIdButton.cs
@@ -32,12 +32,14 @@ and limitations under the License.
----------------------------------------------------------------*/
using Senparc.NeuChar;
+using System;
namespace Senparc.Weixin.MP.Entities.Menu
{
///
/// 下发消息(除文本消息)按钮
///
+ [Obsolete("草稿接口灰度完成后,将不再支持图文信息类型的 media_id 和 view_limited,有需要的,请使用 article_id 和 article_view_limited 代替")]
public class SingleMediaIdButton : SingleButton
{
///
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleViewLimitedButton.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleViewLimitedButton.cs
index bd166a39d6..ef102ad81f 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleViewLimitedButton.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Menu/Buttons/SingleViewLimitedButton.cs
@@ -32,12 +32,14 @@ and limitations under the License.
----------------------------------------------------------------*/
using Senparc.NeuChar;
+using System;
namespace Senparc.Weixin.MP.Entities.Menu
{
///
/// 下发消息(除文本消息)按钮
///
+ [Obsolete("草稿接口灰度完成后,将不再支持图文信息类型的 media_id 和 view_limited,有需要的,请使用 article_id 和 article_view_limited 代替")]
public class SingleViewLimitedButton : SingleButton
{
///
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.net6.csproj b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.net6.csproj
index a66713ab4c..079c692ef2 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.net6.csproj
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 16.18
+ 16.18.1
Senparc.Weixin.MP
Senparc.Weixin.MP
true
@@ -515,6 +515,7 @@
v16.17.2 优化永久素材上传接口,提供素材类型枚举:UploadForeverMediaType
v16.17.3 UserApi.Info() 接口返回值,将 headimgurl、nickname 设为过期
v16.17.8 新增草稿箱和发布能力接口
+ v16.18.1 公众号菜单添加 article_id、article_view_limited 类型
https://github.com/JeffreySu/WeiXinMPSDK
@@ -572,8 +573,8 @@
-
-
+
+
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net6.csproj b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net6.csproj
index 7c6d23b3dd..3ae2780e4f 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net6.csproj
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 4.14
+ 4.14.1
Senparc.Weixin.Open
Senparc.Weixin.Open
true
@@ -237,7 +237,7 @@
-
+
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.net6.csproj b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.net6.csproj
index 292ad4af76..1eb03dc31c 100644
--- a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.net6.csproj
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 1.12
+ 1.12.1
Senparc.Weixin.TenPay
Senparc.Weixin.TenPay
true
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc.Weixin.TenPayV3.net6.csproj b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc.Weixin.TenPayV3.net6.csproj
index 7d62678b4b..41be9ff88c 100644
--- a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc.Weixin.TenPayV3.net6.csproj
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc.Weixin.TenPayV3.net6.csproj
@@ -1,7 +1,7 @@
netstandard2.1
- 0.6.1-beta1
+ 0.6.2-beta1
Senparc.Weixin.TenPayV3
Senparc.Weixin.TenPayV3
10.0
@@ -31,7 +31,7 @@
v0.5.6 使用 Senparc.Weixin.Config.TenPayV3Host 提供可配置的 API 域名
v0.5.7 升级微信支付请求的方法,支持多种加密方式
v0.6.1 修复 CloseOrderAsync() 参数问题
-
+
https://github.com/JeffreySu/WeiXinMPSDK
diff --git a/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.net6.csproj b/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.net6.csproj
index 470533bb90..6961886d00 100644
--- a/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.net6.csproj
+++ b/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0
- 0.8
+ 0.8.1
Senparc.Weixin.Work.Middleware
Senparc.Weixin.Work.Middleware
true
@@ -67,7 +67,7 @@
-
+
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Helpers/EntityHelper.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Helpers/EntityHelper.cs
index 2b10693acb..0f8994a27a 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Helpers/EntityHelper.cs
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Helpers/EntityHelper.cs
@@ -287,11 +287,11 @@ public static class EntityHelper
//不同返回类型需要对应不同特殊格式的排序
if (entity is ResponseMessageNews)
{
- propNameOrder.AddRange(new[] { "ArticleCount", "Articles", "FuncFlag",/*以下是Atricle属性*/ "Title ", "Description ", "PicUrl", "Url" });
+ propNameOrder.AddRange(new[] { "ArticleCount", "Articles", "FuncFlag",/*以下是Article属性*/ "Title ", "Description ", "PicUrl", "Url" });
}
else if (entity is ResponseMessageMpNews)
{
- propNameOrder.AddRange(new[] { "MpNewsArticleCount", "MpNewsArticles", "FuncFlag",/*以下是MpNewsAtricle属性*/ "Title ", "Description ", "PicUrl", "Url" });
+ propNameOrder.AddRange(new[] { "MpNewsArticleCount", "MpNewsArticles", "FuncFlag",/*以下是MpNewsArticle属性*/ "Title ", "Description ", "PicUrl", "Url" });
}
else if (entity is ResponseMessageImage)
{
@@ -322,26 +322,26 @@ public static class EntityHelper
if (propName == "Articles")
{
//文章列表
- var atriclesElement = new XElement("Articles");
+ var articlesElement = new XElement("Articles");
var articales = prop.GetValue(entity, null) as List;
foreach (var articale in articales)
{
var subNodes = ConvertEntityToXml(articale).Root.Elements();
- atriclesElement.Add(new XElement("item", subNodes));
+ articlesElement.Add(new XElement("item", subNodes));
}
- root.Add(atriclesElement);
+ root.Add(articlesElement);
}
else if (propName == "MpNewsArticles")
{
- var mpNewsAtriclesElement = new XElement("MpNewsArticles");
+ var mpNewsArticlesElement = new XElement("MpNewsArticles");
var mpNewsAtricles = prop.GetValue(entity, null) as List;
foreach (var mpNewsArticale in mpNewsAtricles)
{
var subNodes = ConvertEntityToXml(mpNewsArticale).Root.Elements();
- mpNewsAtriclesElement.Add(subNodes);
+ mpNewsArticlesElement.Add(subNodes);
}
- root.Add(mpNewsAtriclesElement);
+ root.Add(mpNewsArticlesElement);
}
else if (propName == "Image" || propName == "Video" || propName == "Voice")
{
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.net6.csproj b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.net6.csproj
index 2d49ba0e6f..8ceb2e1b1a 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.net6.csproj
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.net6.csproj
@@ -2,7 +2,7 @@
net462;netstandard2.0;netstandard2.1
$(Net35FrameworkPathOverride)
- 3.15.2-beta3
+ 3.15.3-beta3
10.0
Senparc.Weixin.Work
Senparc.Weixin.Work
@@ -178,7 +178,7 @@
v3.14.11 优化OAuth相关接口
v3.15.1 修复 LoginCheckResultJson 缺少 open_userid
v3.15.2 添加“用户标签管理”接口
-
+
https://github.com/JeffreySu/WeiXinMPSDK
False
@@ -226,7 +226,7 @@
-
+
diff --git a/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.net6.csproj b/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.net6.csproj
index b91caebd99..a72663da39 100644
--- a/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.net6.csproj
+++ b/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0
- 0.8
+ 0.8.1
Senparc.Weixin.WxOpen.Middleware
Senparc.Weixin.WxOpen.Middleware
true
@@ -67,7 +67,7 @@
-
+
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net6.csproj b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net6.csproj
index 2e5588aaaf..cd9f889dc4 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net6.csproj
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 3.15
+ 3.15.1
Senparc.Weixin.WxOpen
Senparc.Weixin.WxOpen
true
@@ -204,7 +204,7 @@
-
+
diff --git a/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.net6.csproj b/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.net6.csproj
index c1ee9ac28c..13a91eadfb 100644
--- a/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.net6.csproj
+++ b/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.net6.csproj
@@ -2,7 +2,7 @@
net462;netstandard2.0;netstandard2.1
$(Net35FrameworkPathOverride)
- 6.15
+ 6.15.1
10.0
Senparc.Weixin
Senparc.Weixin
@@ -327,7 +327,7 @@
v6.12.500 提供 UserHelper
v6.14.5 添加试用小程序接口及事件
v6.15 最低 .NET Framework 版本升级至 4.6.2
-
+
https://github.com/JeffreySu/WeiXinMPSDK
@@ -369,7 +369,7 @@
-
+
From ce7368f36ca5abfaf01b2c470a668e33c4013a33 Mon Sep 17 00:00:00 2001
From: JeffreySu
Date: Wed, 4 May 2022 00:48:16 +0800
Subject: [PATCH 4/4] =?UTF-8?q?Open=20v4.14.2=20&=20WxOpen=20=20v3.15.2=20?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B0=8F=E7=A8=8B=E5=BA=8F=E9=9A=90=E7=A7=81?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=20#2628=20=E6=84=9F=E8=B0=A2=20@mc7246?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Senparc.Weixin.Open.net6.csproj | 29 +++++++-------
.../ApplyPrivacyInterfaceJsonResult.cs | 39 ++++++++++++++++++-
.../GetPrivacyInterfaceJsonResult.cs | 33 +++++++++++++++-
.../Senparc.Weixin.Open/WxaAPIs/WxaApi.cs | 3 ++
.../Event/RequestMessageEvent_PrivacyApply.cs | 5 ++-
.../Senparc.Weixin.WxOpen/Enums.cs | 3 ++
.../WxOpenMessageHandler.Event.cs | 3 ++
.../Senparc.Weixin.WxOpen.net6.csproj | 5 ++-
8 files changed, 101 insertions(+), 19 deletions(-)
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net6.csproj b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net6.csproj
index 3ae2780e4f..b76288f1b4 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net6.csproj
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 4.14.1
+ 4.14.2
Senparc.Weixin.Open
Senparc.Weixin.Open
true
@@ -177,19 +177,20 @@
v4.7.502.3 代小程序开发 添加撤回审核接口
v4.8.102 添加接口“代小程序实现业务 - 设置业务域名”(SetWebViewDomainApi)
v4.8.201 服务号订阅通知相关接口 & 补充小程序[获取小程序账号的类目]接口
- v4.8.400
- 1、代小程序实现业务-提交审核接口添加UGC参数
- 2、修正截屏附件字段类型
- v4.10.3 统一使用 Senparc.Weixin.CommonAPIs.CommonJsonSend 方法
- v4.11.500 用户信息调整:不再返回用户性别及地区信息
- v4.12 新增快速创建个人小程序接口
- v4.13 实现“小程序用户隐私指引接口”
- v4.13.1 配置小程序用户隐私保护指引接口增加privacy_ver参数
- v4.13.2 添加“小程序违规和申诉管理”接口及消息事件
- v4.13.3 修复获取小程序违规记录返回信息
- v4.13.4 完善“公众号权限集”
- v4.13.9 添加试用小程序接口及事件
-
+ v4.8.400
+ 1、代小程序实现业务-提交审核接口添加UGC参数
+ 2、修正截屏附件字段类型
+ v4.10.3 统一使用 Senparc.Weixin.CommonAPIs.CommonJsonSend 方法
+ v4.11.500 用户信息调整:不再返回用户性别及地区信息
+ v4.12 新增快速创建个人小程序接口
+ v4.13 实现“小程序用户隐私指引接口”
+ v4.13.1 配置小程序用户隐私保护指引接口增加privacy_ver参数
+ v4.13.2 添加“小程序违规和申诉管理”接口及消息事件
+ v4.13.3 修复获取小程序违规记录返回信息
+ v4.13.4 完善“公众号权限集”
+ v4.13.9 添加试用小程序接口及事件
+ v4.14.2 添加小程序隐私接口
+
https://github.com/JeffreySu/WeiXinMPSDK
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/ApplyPrivacyInterfaceJsonResult.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/ApplyPrivacyInterfaceJsonResult.cs
index 2ea849dd02..c004333f39 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/ApplyPrivacyInterfaceJsonResult.cs
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/ApplyPrivacyInterfaceJsonResult.cs
@@ -1,4 +1,35 @@
-using Senparc.Weixin.Entities;
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2022 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
+
+----------------------------------------------------------------*/
+#endregion Apache License Version 2.0
+
+/*----------------------------------------------------------------
+ Copyright (C) 2020 Senparc
+
+ 文件名:ApplyPrivacyInterfaceJsonResult.cs
+ 文件功能描述:申请隐私接口 返回值
+
+
+ 创建标识:mc7246 - 20220504
+
+----------------------------------------------------------------*/
+
+using Senparc.Weixin.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -7,8 +38,14 @@
namespace Senparc.Weixin.Open.WxaAPIs
{
+ ///
+ /// 申请隐私接口 返回值
+ ///
public class ApplyPrivacyInterfaceJsonResult : WxJsonResult
{
+ ///
+ ///
+ ///
public uint audit_id { get; set; }
}
}
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/GetPrivacyInterfaceJsonResult.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/GetPrivacyInterfaceJsonResult.cs
index feb9b403e4..a4df053ae0 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/GetPrivacyInterfaceJsonResult.cs
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/SecurityJson/GetPrivacyInterfaceJsonResult.cs
@@ -1,4 +1,35 @@
-using Senparc.Weixin.Entities;
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2022 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
+
+----------------------------------------------------------------*/
+#endregion Apache License Version 2.0
+
+/*----------------------------------------------------------------
+ Copyright (C) 2020 Senparc
+
+ 文件名:GetPrivacyInterfaceJsonResult.cs
+ 文件功能描述:获取隐私接口列表结果
+
+
+ 创建标识:mc7246 - 20220504
+
+----------------------------------------------------------------*/
+
+using Senparc.Weixin.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/WxaApi.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/WxaApi.cs
index 0d62c445d8..3e3d490e06 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/WxaApi.cs
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/WxaAPIs/WxaApi.cs
@@ -34,6 +34,9 @@ and limitations under the License.
修改标识:mc7246 - 20211209
修改描述:v4.13.2 添加“小程序违规和申诉管理”接口
+ 修改标识:mc7246 - 20220504
+ 修改描述:v4.14.2 添加小程序隐私接口
+
----------------------------------------------------------------*/
using Senparc.CO2NET.Extensions;
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
index 690c403e60..1234885679 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_PrivacyApply.cs
@@ -26,7 +26,10 @@ and limitations under the License.
创建标识:Senparc - 2010828
-
+
+ 修改标识:mc7246 - 20220504
+ 修改描述:vv3.15.2 添加小程序隐私接口
+
----------------------------------------------------------------*/
namespace Senparc.Weixin.WxOpen.Entities
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs
index a51e68e28a..48fecf4ab6 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Enums.cs
@@ -27,6 +27,9 @@ and limitations under the License.
创建标识:Senparc - 20170106
+ 修改标识:mc7246 - 20220504
+ 修改描述:v3.15.2 添加小程序隐私权限审核结果推送
+
----------------------------------------------------------------*/
using System.ComponentModel;
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs
index 608eb7bec9..b9c582cc4c 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageHandlers/WxOpenMessageHandler.Event.cs
@@ -36,6 +36,9 @@ and limitations under the License.
修改标识:mc7246 - 20211209
修改描述:v4.13.2 添加 OnEvent_AppealRecordRequest()、OnEvent_IllegalRecordRequest() 方法
+ 修改标识:mc7246 - 20220504
+ 修改描述:v3.15.2 添加小程序隐私权限审核结果推送
+
----------------------------------------------------------------*/
using Senparc.NeuChar.Entities;
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net6.csproj b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net6.csproj
index cd9f889dc4..48c134ff0c 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net6.csproj
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net6.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 3.15.1
+ 3.15.2
Senparc.Weixin.WxOpen
Senparc.Weixin.WxOpen
true
@@ -161,7 +161,8 @@
v3.14.4 添加 BusinessApi.GetUserPhoneNumber() 接口
v3.14.5 修改“下发小程序和公众号统一的服务消息”接口参数,提升兼容性
v3.14.10.1 修复 WxAppApi.GetWxaCodeUnlimitAsync() 接口参数错误
-
+ v3.15.2 添加小程序隐私接口
+
https://github.com/JeffreySu/WeiXinMPSDK