{"record":{"id":"3e8103f150ff85fc","repo":"JeffreySu/WeiXinMPSDK","slug":"event-messagehandler","errorCode":null,"errorMessage":"未知的Event下属请求信息","messagePattern":"未知的Event下属请求信息","errorType":"exception","errorClass":"UnknownRequestMsgTypeException","httpStatus":null,"severity":"error","filePath":"src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/MessageHandler.Event.cs","lineNumber":263,"sourceCode":"                //case Event.weapp_audit_success://\n                //    responseMessage = OnEvent_WeAppAuditSuccessRequest(RequestMessage as RequestMessageEvent_WeAppAuditSuccess);\n                //    break;\n                //case Event.weapp_audit_fail://\n                //    responseMessage = OnEvent_WeAppAuditFailRequest(RequestMessage as RequestMessageEvent_WeAppAuditFail);\n                //    break;\n                #endregion\n\n                #region 微信电子发票\n                case Event.user_authorize_invoice:\n                    responseMessage = OnEvent_User_Authorize_Invoice(RequestMessage as RequestMessageEvent_User_Authorize_Invoice);\n                    break;\n                case Event.submit_invoice_title:\n                    responseMessage = OnEvent_Submit_Invoice_Title(RequestMessage as RequestMessageEvent_Submit_Invoice_Title);\n                    break;\n                #endregion\n\n                default:\n                    throw new Exceptions.UnknownRequestMsgTypeException(\"未知的Event下属请求信息\", null);\n            }\n            return responseMessage;\n        }\n\n        #region Event下属分类，接收事件方法\n\n        /// <summary>\n        /// Event事件类型请求之用户资料变更\n        /// </summary>\n        /// <param name=\"requestMessage\"></param>\n        /// <returns></returns>\n        public virtual IResponseMessageBase OnEvent_UserInfoModifiedRequest(RequestMessageEvent_UserInfoModified requestMessage)\n        {\n            return DefaultResponseMessage(requestMessage);\n        }\n        /// <summary>\n        /// Event事件类型请求之用户撤回\n        /// </summary>","sourceCodeStart":245,"sourceCodeEnd":281,"githubUrl":"https://github.com/JeffreySu/WeiXinMPSDK/blob/be573f6f94bdbf718dd5f6cdecb137fbc7ff651e/src/Senparc.Weixin.MP/Senparc.Weixin.MP/MessageHandlers/MessageHandler.Event.cs#L245-L281","documentation":"The synchronous OnEventRequest dispatches Event-typed push messages to OnEvent_* handlers via a switch. If the event value has no case (an event type unknown to this SDK version), it throws UnknownRequestMsgTypeException('未知的Event下属请求信息'), surfacing unhandled WeChat events instead of silently ignoring them.","triggerScenarios":"WeChat pushes an event whose value lacks a case in this SDK version's switch — e.g. newly introduced WeChat events, console-enabled beta features, or an old Senparc.Weixin.MP package behind the WeChat API. Triggered by any incoming event message routed through MessageHandler.Execute/OnEventRequest.","commonSituations":"Running an outdated NuGet package while WeChat added new events; enabling new event pushes (card, invoice, channel, etc.) in the WeChat MP console before upgrading the SDK; test accounts issuing newer events.","solutions":["Upgrade Senparc.Weixin.MP / Senparc.Weixin to the latest release so the switch covers new event types.","Override OnEventRequest in your MessageHandler and wrap base.OnEventRequest in try-catch for UnknownRequestMsgTypeException, returning an empty/success response so WeChat doesn't retry indefinitely.","Inspect and log requestMessage.Event to identify which event is unmapped and add a custom handler for it.","Disable the unsupported event push in the WeChat console until the SDK is upgraded."],"exampleFix":"// before\npublic override IResponseMessageBase OnEventRequest(RequestMessageEvent requestMessage)\n{\n    return base.OnEventRequest(requestMessage); // throws on unknown event\n}\n// after\npublic override IResponseMessageBase OnEventRequest(RequestMessageEvent requestMessage)\n{\n    try\n    {\n        return base.OnEventRequest(requestMessage);\n    }\n    catch (UnknownRequestMsgTypeException)\n    {\n        Log.Warn($\"Unhandled event: {requestMessage.Event}\");\n        return CreateResponseMessage<ResponseMessageNoResponse>();\n    }\n}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":"bool isSupportedEvent = Enum.IsDefined(typeof(Event), requestMessage.Event);","tryCatchPattern":"try\n{\n    response = handler.OnEventRequest(eventMessage);\n}\ncatch (UnknownRequestMsgTypeException ex)\n{\n    log.Warn($\"Unknown WeChat event: {ex.Message}\");\n    response = handler.CreateResponseMessage<ResponseMessageNoResponse>();\n}","preventionTips":["Upgrade Senparc.Weixin.MP regularly; WeChat adds event types faster than old packages support.","Provide an OnEventRequest override with a safe default for unmapped events.","Log unhandled event names from requestMessage.Event for later support.","Match console-enabled event pushes to supported SDK capabilities."],"tags":["wechat-sdk","csharp","message-handler","unhandled-event","event-dispatch"],"backgroundTag":"unsupported-enum-value","analyzedSha":"be573f6f94bdbf718dd5f6cdecb137fbc7ff651e","analyzedAt":"2026-09-12T10:01:50.733Z","contentChangedAt":"2026-09-12T10:01:50.733Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}