diff --git a/src/Senparc.Weixin.All/Senparc.Weixin.All.csproj b/src/Senparc.Weixin.All/Senparc.Weixin.All.csproj
index 33695adde3..ebf40a248d 100644
--- a/src/Senparc.Weixin.All/Senparc.Weixin.All.csproj
+++ b/src/Senparc.Weixin.All/Senparc.Weixin.All.csproj
@@ -4,7 +4,7 @@
net8.0
enable
enable
- 2024.8.12
+ 2024.9.2
10.0
Senparc.Weixin.All
Senparc.Weixin.All
@@ -46,6 +46,7 @@
[2024-08-06] v2024.6.31 更新基础库,包括 Senparc.CO2NET 相关库、Senparc.AI
[2024-08-11] v2024.8.11 升级 Senparc.Weixin.Open
[2024-08-12] v2024.8.12 升级 Senparc.Weixin.Work
+ [2024-09-02] v2024.9.2 WxOpen 支持小程序付费能力的用量告警事件
https://github.com/JeffreySu/WeiXinMPSDK
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserAuthorizationCancellation.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserAuthorizationCancellation.cs
new file mode 100644
index 0000000000..14643a48bc
--- /dev/null
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserAuthorizationCancellation.cs
@@ -0,0 +1,62 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2024 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) 2024 Senparc
+
+ 文件名:RequestMessageEvent_UserAuthorizationCancellation.cs
+ 文件功能描述:事件之授权用户信息变更
+ https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/authorization_change.html
+
+----------------------------------------------------------------*/
+
+using Senparc.NeuChar.Entities;
+
+namespace Senparc.Weixin.MP.Entities
+{
+ ///
+ /// 事件之授权用户信息变更
+ ///
+ public class RequestMessageEvent_UserAuthorizationCancellation : RequestMessageEventBase, IRequestMessageEventBase
+ {
+ ///
+ /// 事件类型
+ ///
+ public override Event Event
+ {
+ get { return Event.user_authorization_revoke; }
+ }
+
+ ///
+ /// 授权用户OpenID
+ ///
+ public string OpenID { get; set; }
+
+ ///
+ /// 公众号的AppID
+ ///
+ public string AppID { get; set; }
+
+ ///
+ /// 用户撤回的H5授权信息,201:地址,202:发票信息,203:卡券信息,204:麦克风,205:昵称和头像,206:位置信息,207:选中的图片或视频
+ ///
+ public string RevokeInfo { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserAuthorizationRevoke.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserAuthorizationRevoke.cs
new file mode 100644
index 0000000000..51825fb174
--- /dev/null
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserAuthorizationRevoke.cs
@@ -0,0 +1,62 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2024 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) 2024 Senparc
+
+ 文件名:RequestMessageEvent_UserAuthorizationRevoke.cs
+ 文件功能描述:事件之授权用户信息变更
+ https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/authorization_change.html
+
+----------------------------------------------------------------*/
+
+using Senparc.NeuChar.Entities;
+
+namespace Senparc.Weixin.MP.Entities
+{
+ ///
+ /// 事件之授权用户信息变更
+ ///
+ public class RequestMessageEvent_UserAuthorizationRevoke : RequestMessageEventBase, IRequestMessageEventBase
+ {
+ ///
+ /// 事件类型
+ ///
+ public override Event Event
+ {
+ get { return Event.user_authorization_revoke; }
+ }
+
+ ///
+ /// 授权用户OpenID
+ ///
+ public string OpenID { get; set; }
+
+ ///
+ /// 公众号的AppID
+ ///
+ public string AppID { get; set; }
+
+ ///
+ /// 用户撤回的H5授权信息,201:地址,202:发票信息,203:卡券信息,204:麦克风,205:昵称和头像,206:位置信息,207:选中的图片或视频
+ ///
+ public string RevokeInfo { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserInfoModified.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserInfoModified.cs
new file mode 100644
index 0000000000..ac83f67e8f
--- /dev/null
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Entities/Request/Event/RequestMessageEvent_UserInfoModified.cs
@@ -0,0 +1,62 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2024 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) 2024 Senparc
+
+ 文件名:RequestMessageEvent_UserInfoModified.cs
+ 文件功能描述:事件之授权用户信息变更
+ https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/authorization_change.html
+
+----------------------------------------------------------------*/
+
+using Senparc.NeuChar.Entities;
+
+namespace Senparc.Weixin.MP.Entities
+{
+ ///
+ /// 事件之授权用户信息变更
+ ///
+ public class RequestMessageEvent_UserInfoModified : RequestMessageEventBase, IRequestMessageEventBase
+ {
+ ///
+ /// 事件类型
+ ///
+ public override Event Event
+ {
+ get { return Event.user_info_modified; }
+ }
+
+ ///
+ /// 授权用户OpenID
+ ///
+ public string OpenID { get; set; }
+
+ ///
+ /// 公众号的AppID
+ ///
+ public string AppID { get; set; }
+
+ ///
+ /// 用户撤回的H5授权信息,201:地址,202:发票信息,203:卡券信息,204:麦克风,205:昵称和头像,206:位置信息,207:选中的图片或视频
+ ///
+ public string RevokeInfo { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs
index 9dce196d51..b38e795c05 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs
@@ -430,6 +430,19 @@ public enum Event
///
subscribe_msg_sent_event,
#endregion
+
+ ///
+ /// 用户资料变更
+ ///
+ user_info_modified,
+ ///
+ /// 用户撤回
+ ///
+ user_authorization_revoke,
+ ///
+ /// 用户完成注销
+ ///
+ user_authorization_cancellation,
}
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/Async/MessageHandlerAsync.Event.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/Async/MessageHandlerAsync.Event.cs
index 46d6507d00..0e70a469ec 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/Async/MessageHandlerAsync.Event.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/Async/MessageHandlerAsync.Event.cs
@@ -189,6 +189,15 @@ public virtual async Task OnEventRequestAsync(IRequestMess
responseMessage = await OnEvent_Subscribe_Msg_SentRequestAsync(RequestMessage as RequestMessageEvent_Subscribe_Msg_Sent).ConfigureAwait(false);
break;
+ case Event.user_info_modified:
+ responseMessage = await OnEvent_UserInfoModifiedRequesAsync(RequestMessage as RequestMessageEvent_UserInfoModified).ConfigureAwait(false);
+ break;
+ case Event.user_authorization_revoke:
+ responseMessage = await OnEvent_UserAuthorizationRevokeRequestAsync(RequestMessage as RequestMessageEvent_UserAuthorizationRevoke).ConfigureAwait(false);
+ break;
+ case Event.user_authorization_cancellation:
+ responseMessage = await OnEvent_UserAuthorizationCancellationRequestAsync(RequestMessage as RequestMessageEvent_UserAuthorizationCancellation).ConfigureAwait(false);
+ break;
#region 微信认证事件推送
@@ -257,6 +266,34 @@ public virtual async Task OnEventRequestAsync(IRequestMess
#region Event下属分类,接收事件方法
+ ///
+ /// 【异步方法】Event事件类型请求之用户资料变更
+ ///
+ ///
+ ///
+ public virtual async Task OnEvent_UserInfoModifiedRequesAsync(RequestMessageEvent_UserInfoModified requestMessage)
+ {
+ return await DefaultAsyncMethod(requestMessage, () => OnEvent_UserInfoModifiedRequest(requestMessage)).ConfigureAwait(false);
+ }
+ ///
+ /// 【异步方法】Event事件类型请求之用户撤回
+ ///
+ ///
+ ///
+ public virtual async Task OnEvent_UserAuthorizationRevokeRequestAsync(RequestMessageEvent_UserAuthorizationRevoke requestMessage)
+ {
+ return await DefaultAsyncMethod(requestMessage, () => OnEvent_UserAuthorizationRevokeRequest(requestMessage)).ConfigureAwait(false);
+ }
+ ///
+ /// 【异步方法】Event事件类型请求之用户完成注销
+ ///
+ ///
+ ///
+ public virtual async Task OnEvent_UserAuthorizationCancellationRequestAsync(RequestMessageEvent_UserAuthorizationCancellation requestMessage)
+ {
+ return await DefaultAsyncMethod(requestMessage, () => OnEvent_UserAuthorizationCancellationRequest(requestMessage)).ConfigureAwait(false);
+ }
+
///
/// 【异步方法】Event事件类型请求之ENTER
///
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/MessageHandler.Event.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/MessageHandler.Event.cs
index 5350f8db9e..71210a2094 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/MessageHandler.Event.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/MessageHandler.Event.cs
@@ -192,6 +192,16 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ
responseMessage = OnEvent_Subscribe_Msg_SentRequest(RequestMessage as RequestMessageEvent_Subscribe_Msg_Sent);
break;
+ case Event.user_info_modified:
+ responseMessage = OnEvent_UserInfoModifiedRequest(RequestMessage as RequestMessageEvent_UserInfoModified);
+ break;
+ case Event.user_authorization_revoke:
+ responseMessage = OnEvent_UserAuthorizationRevokeRequest(RequestMessage as RequestMessageEvent_UserAuthorizationRevoke);
+ break;
+ case Event.user_authorization_cancellation:
+ responseMessage = OnEvent_UserAuthorizationCancellationRequest(RequestMessage as RequestMessageEvent_UserAuthorizationCancellation);
+ break;
+
#region 卡券回调
case Event.giftcard_pay_done:
@@ -257,6 +267,34 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ
#region Event下属分类,接收事件方法
+ ///
+ /// Event事件类型请求之用户资料变更
+ ///
+ ///
+ ///
+ public virtual IResponseMessageBase OnEvent_UserInfoModifiedRequest(RequestMessageEvent_UserInfoModified requestMessage)
+ {
+ return DefaultResponseMessage(requestMessage);
+ }
+ ///
+ /// Event事件类型请求之用户撤回
+ ///
+ ///
+ ///
+ public virtual IResponseMessageBase OnEvent_UserAuthorizationRevokeRequest(RequestMessageEvent_UserAuthorizationRevoke requestMessage)
+ {
+ return DefaultResponseMessage(requestMessage);
+ }
+ ///
+ /// Event事件类型请求之用户完成注销
+ ///
+ ///
+ ///
+ public virtual IResponseMessageBase OnEvent_UserAuthorizationCancellationRequest(RequestMessageEvent_UserAuthorizationCancellation requestMessage)
+ {
+ return DefaultResponseMessage(requestMessage);
+ }
+
///
/// Event事件类型请求之ENTER
///
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_ChargeServiceQuotaNotify.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_ChargeServiceQuotaNotify.cs
new file mode 100644
index 0000000000..3a02f774b5
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_ChargeServiceQuotaNotify.cs
@@ -0,0 +1,75 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2023 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) 2023 Senparc
+
+ 文件名:RequestMessageEvent_ChargeServiceQuotaNotify.cs
+ 文件功能描述:付费管理订单用量告警事件
+
+
+ 创建标识:mc7246 - 20240831
+
+----------------------------------------------------------------*/
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Senparc.Weixin.WxOpen.Entities
+{
+ public class RequestMessageEvent_ChargeServiceQuotaNotify : RequestMessageEventBase,IRequestMessageEventBase
+ {
+ ///
+ /// 事件类型
+ ///
+ public override Event Event
+ {
+ get { return Event.charge_service_quota_notify; }
+ }
+
+ ///
+ /// 固定值 3
+ ///
+ public int event_type { get; set; }
+
+ ///
+ /// 购买的商品的SPU_ID
+ ///
+ public long spu_id { get; set; }
+
+ ///
+ /// 购买的商品的SPU_NAME
+ ///
+ public string spu_name { get; set; }
+
+ ///
+ /// 所购 SPU 当前总的用量
+ ///
+ public int total_quota { get; set; }
+
+ ///
+ /// 所购 SPU 当前总已使用的用量
+ ///
+ public int total_used_quota { get; set; }
+
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserAuthorizationCancellation.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserAuthorizationCancellation.cs
new file mode 100644
index 0000000000..bb073c266d
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserAuthorizationCancellation.cs
@@ -0,0 +1,70 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2024 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) 2024 Senparc
+
+ 文件名:RequestMessageEvent_UserAuthorizationCancellation.cs
+ 文件功能描述:事件之授权用户信息变更
+ https://developers.weixin.qq.com/miniprogram/dev/framework/security.html#%E6%8E%88%E6%9D%83%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF%E5%8F%98%E6%9B%B4
+
+
+----------------------------------------------------------------*/
+
+namespace Senparc.Weixin.WxOpen.Entities
+{
+ ///
+ /// 事件之授权用户信息变更
+ ///
+ public class RequestMessageEvent_UserAuthorizationCancellation : RequestMessageEventBase, IRequestMessageEventBase
+ {
+ ///
+ /// 事件类型
+ ///
+ public override Event Event
+ {
+ get { return Event.user_authorization_cancellation; }
+ }
+
+ ///
+ /// 授权用户OpenID
+ ///
+ public string OpenID { get; set; }
+
+ ///
+ /// 小程序的AppID
+ ///
+ public string AppID { get; set; }
+ ///
+ /// 用户撤回的授权信息,1:车牌号,2:地址,3:发票信息,4:蓝牙,5:麦克风,6:昵称和头像,7:摄像头,8:手机号,12:微信运动步数,13:位置信息,14:选中的图片或视频,15:选中的文件,16:邮箱地址,18:选择的位置信息,19:昵称输入键盘中选择的微信昵称,20:获取用户头像组件中选择的微信头像
+ ///
+ public string RevokeInfo { get; set; }
+
+ ///
+ /// 插件场景用户撤回,插件的AppID
+ ///
+ public string PluginID { get; set; }
+
+ ///
+ /// 插件场景用户撤回,撤回用户的OpenPID
+ ///
+ public string OpenPID { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserAuthorizationRevoke.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserAuthorizationRevoke.cs
new file mode 100644
index 0000000000..ec6ab604bf
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserAuthorizationRevoke.cs
@@ -0,0 +1,69 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2024 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) 2024 Senparc
+
+ 文件名:RequestMessageEvent_UserAuthorizationRevoke.cs
+ 文件功能描述:事件之授权用户信息变更
+ https://developers.weixin.qq.com/miniprogram/dev/framework/security.html#%E6%8E%88%E6%9D%83%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF%E5%8F%98%E6%9B%B4
+
+----------------------------------------------------------------*/
+
+namespace Senparc.Weixin.WxOpen.Entities
+{
+ ///
+ /// 事件之授权用户信息变更
+ ///
+ public class RequestMessageEvent_UserAuthorizationRevoke : RequestMessageEventBase, IRequestMessageEventBase
+ {
+ ///
+ /// 事件类型
+ ///
+ public override Event Event
+ {
+ get { return Event.user_authorization_revoke; }
+ }
+
+ ///
+ /// 授权用户OpenID
+ ///
+ public string OpenID { get; set; }
+
+ ///
+ /// 小程序的AppID
+ ///
+ public string AppID { get; set; }
+ ///
+ /// 用户撤回的授权信息,1:车牌号,2:地址,3:发票信息,4:蓝牙,5:麦克风,6:昵称和头像,7:摄像头,8:手机号,12:微信运动步数,13:位置信息,14:选中的图片或视频,15:选中的文件,16:邮箱地址,18:选择的位置信息,19:昵称输入键盘中选择的微信昵称,20:获取用户头像组件中选择的微信头像
+ ///
+ public string RevokeInfo { get; set; }
+
+ ///
+ /// 插件场景用户撤回,插件的AppID
+ ///
+ public string PluginID { get; set; }
+
+ ///
+ /// 插件场景用户撤回,撤回用户的OpenPID
+ ///
+ public string OpenPID { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserInfoModified.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserInfoModified.cs
new file mode 100644
index 0000000000..8dd55b9085
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Entities/Request/Event/RequestMessageEvent_UserInfoModified.cs
@@ -0,0 +1,69 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2024 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) 2024 Senparc
+
+ 文件名:RequestMessageEvent_UserInfoModified.cs
+ 文件功能描述:事件之授权用户信息变更
+ https://developers.weixin.qq.com/miniprogram/dev/framework/security.html#%E6%8E%88%E6%9D%83%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF%E5%8F%98%E6%9B%B4
+
+----------------------------------------------------------------*/
+
+namespace Senparc.Weixin.WxOpen.Entities
+{
+ ///
+ /// 事件之授权用户信息变更
+ ///
+ public class RequestMessageEvent_UserInfoModified : RequestMessageEventBase, IRequestMessageEventBase
+ {
+ ///
+ /// 事件类型
+ ///
+ public override Event Event
+ {
+ get { return Event.user_info_modified; }
+ }
+
+ ///
+ /// 授权用户OpenID
+ ///
+ public string OpenID { get; set; }
+
+ ///
+ /// 小程序的AppID
+ ///
+ public string AppID { get; set; }
+ ///
+ /// 用户撤回的授权信息,1:车牌号,2:地址,3:发票信息,4:蓝牙,5:麦克风,6:昵称和头像,7:摄像头,8:手机号,12:微信运动步数,13:位置信息,14:选中的图片或视频,15:选中的文件,16:邮箱地址,18:选择的位置信息,19:昵称输入键盘中选择的微信昵称,20:获取用户头像组件中选择的微信头像
+ ///
+ public string RevokeInfo { get; set; }
+
+ ///
+ /// 插件场景用户撤回,插件的AppID
+ ///
+ public string PluginID { get; set; }
+
+ ///
+ /// 插件场景用户撤回,撤回用户的OpenPID
+ ///
+ public string OpenPID { 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 79cd7a3141..81b93c653b 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
@@ -107,6 +107,24 @@ public enum Event
///
wx_verify_dispatch,
+ ///
+ /// 用户资料变更
+ ///
+ user_info_modified,
+ ///
+ /// 用户撤回
+ ///
+ user_authorization_revoke,
+ ///
+ /// 用户完成注销
+ ///
+ user_authorization_cancellation,
+ ///
+ /// 付费管理订单用量告警事件
+ ///
+ charge_service_quota_notify,
+
+
#region 小程序虚拟支付
///
/// 道具发货推送
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 fa31d11fdc..033cef8fcd 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
@@ -136,6 +136,18 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ
case Event.wx_verify_dispatch:
responseMessage = OnEvent_WxVerifyDispatchRequest(RequestMessage as RequestMessageEvent_WxVerifyDispatch);
break;
+ case Event.user_info_modified:
+ responseMessage = OnEvent_UserInfoModifiedRequest(RequestMessage as RequestMessageEvent_UserInfoModified);
+ break;
+ case Event.user_authorization_revoke:
+ responseMessage = OnEvent_UserAuthorizationRevokeRequest(RequestMessage as RequestMessageEvent_UserAuthorizationRevoke);
+ break;
+ case Event.user_authorization_cancellation:
+ responseMessage = OnEvent_UserAuthorizationCancellationRequest(RequestMessage as RequestMessageEvent_UserAuthorizationCancellation);
+ break;
+ case Event.charge_service_quota_notify:
+ responseMessage = OnEvent_ChargeServiceQuotaNotifyRequest(RequestMessage as RequestMessageEvent_ChargeServiceQuotaNotify);
+ break;
#region 小程序虚拟支付
case Event.xpay_goods_deliver_notify:
@@ -156,6 +168,43 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ
}
#region Event 下属分类
+ ///
+ /// 付费管理订单用量告警事件
+ ///
+ ///
+ ///
+ public virtual IResponseMessageBase OnEvent_ChargeServiceQuotaNotifyRequest(RequestMessageEvent_ChargeServiceQuotaNotify requestMessage)
+ {
+ return DefaultResponseMessage(requestMessage);
+ }
+
+ ///
+ /// 授权用户信息变更事件
+ ///
+ ///
+ ///
+ public virtual IResponseMessageBase OnEvent_UserAuthorizationRevokeRequest(RequestMessageEvent_UserAuthorizationRevoke requestMessage)
+ {
+ return DefaultResponseMessage(requestMessage);
+ }
+ ///
+ /// 授权用户信息变更事件
+ ///
+ ///
+ ///
+ public virtual IResponseMessageBase OnEvent_UserAuthorizationCancellationRequest(RequestMessageEvent_UserAuthorizationCancellation requestMessage)
+ {
+ return DefaultResponseMessage(requestMessage);
+ }
+ ///
+ /// 授权用户信息变更事件
+ ///
+ ///
+ ///
+ public virtual IResponseMessageBase OnEvent_UserInfoModifiedRequest(RequestMessageEvent_UserInfoModified requestMessage)
+ {
+ return DefaultResponseMessage(requestMessage);
+ }
///
/// 微信认证支付成功事件
@@ -426,6 +475,18 @@ public virtual async Task OnEventRequestAsync(IRequestMess
case Event.wx_verify_dispatch:
responseMessage = await OnEvent_WxVerifyDispatchRequestAsync(RequestMessage as RequestMessageEvent_WxVerifyDispatch);
break;
+ case Event.user_info_modified:
+ responseMessage = await OnEvent_UserInfoModifiedRequestAsync(RequestMessage as RequestMessageEvent_UserInfoModified);
+ break;
+ case Event.user_authorization_revoke:
+ responseMessage = await OnEvent_UserAuthorizationRevokeRequestAsync(RequestMessage as RequestMessageEvent_UserAuthorizationRevoke);
+ break;
+ case Event.user_authorization_cancellation:
+ responseMessage = await OnEvent_UserAuthorizationCancellationRequestAsync(RequestMessage as RequestMessageEvent_UserAuthorizationCancellation);
+ break;
+ case Event.charge_service_quota_notify:
+ responseMessage = await OnEvent_ChargeServiceQuotaNotifyRequestAsync(RequestMessage as RequestMessageEvent_ChargeServiceQuotaNotify);
+ break;
#region 小程序虚拟支付
case Event.xpay_goods_deliver_notify:
@@ -447,6 +508,43 @@ public virtual async Task OnEventRequestAsync(IRequestMess
#region Event 下属分类
///
+ /// 【异步方法】付费管理订单用量告警事件
+ ///
+ ///
+ ///
+ public virtual async Task OnEvent_ChargeServiceQuotaNotifyRequestAsync(RequestMessageEvent_ChargeServiceQuotaNotify requestMessage)
+ {
+ return await DefaultAsyncMethod(requestMessage, () => OnEvent_ChargeServiceQuotaNotifyRequest(requestMessage)).ConfigureAwait(false);
+ }
+
+ ///
+ /// 【异步方法】授权用户信息变更事件
+ ///
+ ///
+ ///
+ public virtual async Task OnEvent_UserAuthorizationRevokeRequestAsync(RequestMessageEvent_UserAuthorizationRevoke requestMessage)
+ {
+ return await DefaultAsyncMethod(requestMessage, () => OnEvent_UserAuthorizationRevokeRequest(requestMessage)).ConfigureAwait(false);
+ }
+ ///
+ /// 【异步方法】授权用户信息变更事件
+ ///
+ ///
+ ///
+ public virtual async Task OnEvent_UserAuthorizationCancellationRequestAsync(RequestMessageEvent_UserAuthorizationCancellation requestMessage)
+ {
+ return await DefaultAsyncMethod(requestMessage, () => OnEvent_UserAuthorizationCancellationRequest(requestMessage)).ConfigureAwait(false);
+ }
+ ///
+ /// 【异步方法】授权用户信息变更事件
+ ///
+ ///
+ ///
+ public virtual async Task OnEvent_UserInfoModifiedRequestAsync(RequestMessageEvent_UserInfoModified requestMessage)
+ {
+ return await DefaultAsyncMethod(requestMessage, () => OnEvent_UserInfoModifiedRequest(requestMessage)).ConfigureAwait(false);
+ }
+ ///
/// 【异步方法】微信认证支付成功事件
///
///
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj
index eede5ba0fb..849a220689 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj
@@ -1,29 +1,29 @@
-
- net462;netstandard2.0;netstandard2.1
- 3.20.1
- 9.0
- Senparc.Weixin.WxOpen
- Senparc.Weixin.WxOpen
- true
-
+
+ net462;netstandard2.0;netstandard2.1
+ 3.20.2
+ 9.0
+ Senparc.Weixin.WxOpen
+ Senparc.Weixin.WxOpen
+ true
+
微信 SDK - 微信小程序 模块
Senparc.Weixin SDK 开源项目:
https://github.com/JeffreySu/WeiXinMPSDK
- Senparc Copyright © 2004~2024
- 微信,weixin,小程序,wxopen,MiniProgram,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式
- Jeffrey Su
- Senparc
- Apache-2.0
- https://github.com/JeffreySu/WeiXinMPSDK
- Senparc.Weixin.WxOpen.dll
- 微信 SDK for .NET / C#
- https://github.com/JeffreySu/WeiXinMPSDK
- icon.jpg
-
+ Senparc Copyright © 2004~2024
+ 微信,weixin,小程序,wxopen,MiniProgram,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.WxOpen.dll
+ 微信 SDK for .NET / C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
v0.1.0 添加基础解决方案,包括模板消息API
v0.1.0 添加基础库,已包含模板消息API
@@ -151,88 +151,89 @@
v3.8.512 添加解密到实例信息方法
v3.10.101 新增 WxOpen 专属 AccessTokenContainer,解决没有提供 name 参数的情况下,Register 过程和公众号注册信息发生冲突的问题
v3.10.102 修正 UniformSendData.Mp_Template_Msg.Miniprogram 参数 pagepath -> page
- v3.10.103 修正 WxOpenApiHandlerWapper 正确引用 AccessTokenContainer
- v3.10.104 添加 WxAppApi.GenerateScheme() 接口
- v3.10.401 升级 MessageApi.SendSubscribe() 方法参数
- v3.11.100 修改完善“附近的小程序”接口
- v3.13.500-preview4.1 添加“Short Link”接口
- v3.14 添加 ExpressApi 接口
- v3.14.2 添加“小程序违规和申诉管理”消息事件
- v3.14.3 添加 UrlLinkApi.Generate() 接口
- v3.14.4 添加 BusinessApi.GetUserPhoneNumber() 接口
- v3.14.5 修改“下发小程序和公众号统一的服务消息”接口参数,提升兼容性
- v3.14.10.1 修复 WxAppApi.GetWxaCodeUnlimitAsync() 接口参数错误
- v3.15.2 添加小程序隐私接口
- v3.15.3 添加商户客户参数(BusinessId)
- v3.15.4 添加小程序客服管理接口
- v3.15.6 添加“异步校验图片/音频是否含有违法违规内容”接口
- v3.15.7
- 1、添加 OnEvent_MediaCheckRequest() 方法:内容安全回调 - wxa_media_check 推送结果
- 2、修复 RequestMsgType.Event 返回值没有正确赋值的问题
- v3.15.10 EncryptHelper.DecodeEncryptedData() 方法添加 keySize 参数
- v3.15.12 添加小程序类目审核结果事件推送
- v3.15.13 添加“文本内容安全识别”接口 PR #2786
- v3.15.15 添加物流服务相关接口和事件推送 PR #2834
- v3.15.15.1 获取小程序服务GenerateScheme模型增加env_version字段 PR #2861
- v3.16.0 客服接口支持长文本自动切割后连续发送
- v3.16.4 微信已于2023 年 9 月 20 日收回下发统一消息接口,标注过时 PR #2921
- v3.17.1 添加 CodeApi.RevertCodeRelease() 方法的 appVersion 参数
- v3.17.2 添加“小程序虚拟支付”功能 PR #2961 / Issue #2951
- v3.17.3 添加小程序分类审核异步通知事件 / PR #2969
- v3.17.5 新增小程序认证年审事件接口 / PR #2979
- v3.17.6 虚拟支付增加了接口从1.0.7~1.0.10,同步完善 / PR #2987
- v3.19.0 添加小程序发货信息管理服务-查询小程序是否已完成交易结算管理确认接口 / PR #3030
- [2024-08-06] v3.19.2 更新基础库,包括 Senparc.CO2NET 相关库、Senparc.AI
-
- https://github.com/JeffreySu/WeiXinMPSDK
-
-
- ..\..\..\..\BuildOutPut
- TRACE
-
-
- ..\..\..\..\..\..\BuildOutPut
- $(DefineConstants);RELEASE
- ..\..\..\..\..\..\BuildOutPut\Senparc.Weixin.WxOpen.XML
- true
- pdbonly
- prompt
- MinimumRecommendedRules.ruleset
-
-
- ..\..\..\..\BuildOutPut\
- ..\..\..\..\BuildOutPut\netstandard2.0\Senparc.Weixin.WxOpen.xml
-
-
- ..\..\..\..\BuildOutPut\
- ..\..\..\..\BuildOutPut\netstandard2.1\Senparc.Weixin.WxOpen.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ v3.10.103 修正 WxOpenApiHandlerWapper 正确引用 AccessTokenContainer
+ v3.10.104 添加 WxAppApi.GenerateScheme() 接口
+ v3.10.401 升级 MessageApi.SendSubscribe() 方法参数
+ v3.11.100 修改完善“附近的小程序”接口
+ v3.13.500-preview4.1 添加“Short Link”接口
+ v3.14 添加 ExpressApi 接口
+ v3.14.2 添加“小程序违规和申诉管理”消息事件
+ v3.14.3 添加 UrlLinkApi.Generate() 接口
+ v3.14.4 添加 BusinessApi.GetUserPhoneNumber() 接口
+ v3.14.5 修改“下发小程序和公众号统一的服务消息”接口参数,提升兼容性
+ v3.14.10.1 修复 WxAppApi.GetWxaCodeUnlimitAsync() 接口参数错误
+ v3.15.2 添加小程序隐私接口
+ v3.15.3 添加商户客户参数(BusinessId)
+ v3.15.4 添加小程序客服管理接口
+ v3.15.6 添加“异步校验图片/音频是否含有违法违规内容”接口
+ v3.15.7
+ 1、添加 OnEvent_MediaCheckRequest() 方法:内容安全回调 - wxa_media_check 推送结果
+ 2、修复 RequestMsgType.Event 返回值没有正确赋值的问题
+ v3.15.10 EncryptHelper.DecodeEncryptedData() 方法添加 keySize 参数
+ v3.15.12 添加小程序类目审核结果事件推送
+ v3.15.13 添加“文本内容安全识别”接口 PR #2786
+ v3.15.15 添加物流服务相关接口和事件推送 PR #2834
+ v3.15.15.1 获取小程序服务GenerateScheme模型增加env_version字段 PR #2861
+ v3.16.0 客服接口支持长文本自动切割后连续发送
+ v3.16.4 微信已于2023 年 9 月 20 日收回下发统一消息接口,标注过时 PR #2921
+ v3.17.1 添加 CodeApi.RevertCodeRelease() 方法的 appVersion 参数
+ v3.17.2 添加“小程序虚拟支付”功能 PR #2961 / Issue #2951
+ v3.17.3 添加小程序分类审核异步通知事件 / PR #2969
+ v3.17.5 新增小程序认证年审事件接口 / PR #2979
+ v3.17.6 虚拟支付增加了接口从1.0.7~1.0.10,同步完善 / PR #2987
+ v3.19.0 添加小程序发货信息管理服务-查询小程序是否已完成交易结算管理确认接口 / PR #3030
+ [2024-08-06] v3.19.2 更新基础库,包括 Senparc.CO2NET 相关库、Senparc.AI
+ [2024-09-02] v3.20.2 WxOpen 支持小程序付费能力的用量告警事件
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\..\..\BuildOutPut
+ TRACE
+
+
+ ..\..\..\..\..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\..\..\..\..\BuildOutPut\Senparc.Weixin.WxOpen.XML
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\..\..\BuildOutPut\
+ ..\..\..\..\BuildOutPut\netstandard2.0\Senparc.Weixin.WxOpen.xml
+
+
+ ..\..\..\..\BuildOutPut\
+ ..\..\..\..\BuildOutPut\netstandard2.1\Senparc.Weixin.WxOpen.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file