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);
+ }
+ ///
/// 【异步方法】微信认证支付成功事件
///
///