点击或拖拽改变大小
盛派网络

WxOpenMessageHandlerTMC

Senparc.Weixin SDK 官方教程《微信开发深度解析》已出版,支持中国开源事业,请【购买正版】
《微信公众号+小程序》视频课程已经上线,【点击这里】学习!

NeuChar(纽插)已经上线,为开发者提供一站式跨平台管理枢纽,并可将应用入驻到 NeuChar 应用商店!新功能正在不断增加中,快来使用吧! https://www.neuchar.com
在线动态微信接口 Swagger WebApi 文档: https://weixin.senparc.com:8039

小程序MessageHandler
继承层次
SystemObject
  Senparc.NeuChar.MessageHandlersMessageHandlerTMC, IRequestMessageBase, IResponseMessageBase
    Senparc.Weixin.WxOpen.MessageHandlersWxOpenMessageHandlerTMC

命名空间:  Senparc.Weixin.WxOpen.MessageHandlers
程序集:  Senparc.Weixin.WxOpen (在 Senparc.Weixin.WxOpen.dll 中) 版本:3.7.101.30232
语法
public abstract class WxOpenMessageHandler<TMC> : MessageHandler<TMC, IRequestMessageBase, IResponseMessageBase>
where TMC : class, new(), Object, IMessageContext<IRequestMessageBase, IResponseMessageBase>

类型参数

TMC
上下文MessageContext类型

WxOpenMessageHandlerTMC 类型公开以下成员。

构造函数
属性
  名称说明
公共属性ApiEnlightener
Api 接口定义
(重写 MessageHandlerTMC, TRequest, TResponseApiEnlightener.)
公共属性CancelExecute
取消执行Execute()方法。一般在OnExecuting()中用于临时阻止执行Execute()。 默认为False。 如果在执行OnExecuting()执行前设为True,则所有OnExecuting()、Execute()、OnExecuted()代码都不会被执行。 如果在执行OnExecuting()执行过程中设为True,则后续Execute()及OnExecuted()代码不会被执行。 建议在设为True的时候,给ResponseMessage赋值,以返回友好信息。
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性CurrentAppDataNode
当前 App 订阅信息
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性CurrentMessageContext 已过时。
当前用户消息上下文(注意:次数据不会被缓存,每次都会重新从缓存读取。 TODO:可创建一个临时缓存对象,但需要考虑同步问题
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性CurrentMessageHandlerNode
默认 MessageHandlerNode 对象
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性DefaultMessageHandlerAsyncEvent

注意:当调用同步方法 Execute() 时,此参数会被强制设置为:SelfSynicMethod!

MessageHandler 事件异步方法的默认调用方法(在没有override的情况下)。默认值:DefaultDefaultResponseMessageAsync。

默认参数设置为 DefaultResponseMessageAsync,目的是为了确保默认状态下不会执行意料以外的代码, 因此,如果需要在异步方法中调用同名的同步方法,请手动将此参数设置为SelfSynicMethod。

(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性EcryptRequestDocument
原始的加密请求(如果不加密则为null)
受保护的属性ExecuteStatTime (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性FinalResponseDocument (重写 MessageHandlerTMC, TRequest, TResponseFinalResponseDocument.)
公共属性GlobalMessageContext
全局消息上下文
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性MessageEntityEnlightener
请求和响应消息定义
(重写 MessageHandlerTMC, TRequest, TResponseMessageEntityEnlightener.)
公共属性MessageIsRepeated
消息是否已经被去重
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性OmitRepeatedMessage
忽略重复发送的同一条消息(通常因为微信服务器没有收到及时的响应)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性OmitRepeatedMessageFunc
动态去重判断委托,仅当返回值为false时,不使用消息去重功能
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性OnlyAllowEncryptMessage
当平台同时兼容明文消息和加密消息时,只允许处理加密消息(不允许处理明文消息),默认为 False
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性OpenId
发送者用户名(OpenId)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性PostModel (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性RecordResponseMessageSync
是否同步向 MessageContext 写入 ResponseMessage,默认为否,将使用队列写入,提升响应速度
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性RequestDocument
在构造函数中转换得到原始XML数据
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性RequestMessage
请求实体
公共属性ResponseDocument (重写 MessageHandlerTMC, TRequest, TResponseResponseDocument.)
公共属性ResponseMessage
响应实体 正常情况下只有当执行Execute()方法后才可能有值。 也可以结合Cancel,提前给ResponseMessage赋值。
公共属性ServiceProvider
ServiceProvide
(继承自 MessageHandlerTMC, TRequest, TResponse。)
受保护的属性SpecialDeduplicationAction
每个具体框架内额外的去重条件。返回是否已经去重(true:需要去重,false:不需要去重)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性TextResponseMessage
文字类型返回消息
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性UsedMessageAgent
是否使用了MessageAgent代理
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性UserName 已过时。
公共属性UsingCompatibilityModelEncryptMessage
是否使用了兼容模式加密信息
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性UsingEncryptMessage
是否使用了加密消息格式
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共属性WeixinOpenId 已过时。
发送者用户名(OpenId)
(继承自 MessageHandlerTMC, TRequest, TResponse。)
Top
方法
  名称说明
公共方法BuildResponseMessageAsync
执行微信请求
(重写 MessageHandlerTMC, TRequest, TResponseBuildResponseMessageAsync(CancellationToken).)
公共方法CheckMessageRepeat
处理消息去重
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法CommonInitialize
构造函数公用的初始化方法
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法CreateResponseMessageTR
根据当前的 RequestMessage 创建指定类型(RT)的 ResponseMessage
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法DefaultResponseMessage
默认返回消息(当任何OnXX消息没有被重写,都将自动返回此默认消息)
公共方法Execute 已过时。

执行微信请求(如果没有被 CancelExecute=true 中断)

注意:此方法仍然会优先执行异步重写方法(如:OnTextRequest()),只在未重写对应事件的异步方法时(如: OnTextRequestAsync()),尝试查找同步重写方法

(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法ExecuteAsync (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法GetCurrentMessageContext
当前用户消息上下文(注意:次数据不会被缓存,每次都会重新从缓存读取。
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法GetLogPath
获取日志保存地址
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法GetUnsafeMessageContext
延迟载入的上下文对象,存放在内存中。注意:使用本地内存缓存时,会每次都花心,等效于 GetCurrentMessageContext();使用分布式缓存时,不能保证此对象是实时的,如需获取实时对象,请使用 GetCurrentMessageContext() 方法
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法Init(XDocument, IEncryptPostModel)
初始化,获取RequestDocument。(必须要完成 RequestMessage 数据赋值). Init中需要对上下文添加当前消息(如果使用上下文);以及判断消息的加密情况,对解密信息进行解密
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法Init(XDocument, IEncryptPostModel)
初始化数据
受保护的方法MarkRepeatedMessage
标记为已重复消息
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnEvent_AddNearbyPoiAuditInfoRequest
地点审核事件
公共方法OnEvent_AddNearbyPoiAuditInfoRequestAsync
【异步方法】地点审核事件
公共方法OnEvent_NicknameAuditRequest
名称审核结果事件推送
公共方法OnEvent_NicknameAuditRequestAsync
名称审核结果事件推送
公共方法OnEvent_UserEnterTempSessionRequest
进入客服会话事件
公共方法OnEvent_UserEnterTempSessionRequestAsync
【异步方法】进入客服会话事件
公共方法OnEvent_WeAppAuditDelayRequest
小程序审核延后通知
公共方法OnEvent_WeAppAuditDelayRequestAsync
小程序审核延后通知
公共方法OnEvent_WeAppAuditFailRequest
小程序审核失败通知
公共方法OnEvent_WeAppAuditFailRequestAsync
小程序审核失败通知
公共方法OnEvent_WeAppAuditSuccessRequest
小程序审核成功通知
公共方法OnEvent_WeAppAuditSuccessRequestAsync
小程序审核成功通知
公共方法OnEventRequest
Event事件类型请求
公共方法OnEventRequestAsync
【异步方法】Event事件类型请求
公共方法OnExecuted 已过时。
公共方法OnExecutedAsync (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnExecuting 已过时。
公共方法OnExecutingAsync (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnImageRequest
图片类型请求
公共方法OnNeuCharRequest 已过时。 (继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnNeuCharRequestAsync
NeuChar 请求
(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法OnTextRequest
文字类型请求
公共方法SaveRequestMessageLog
保存请求信息

测试时可开启此记录,帮助跟踪数据,使用前请确保App_Data文件夹存在,且有读写权限。

(继承自 MessageHandlerTMC, TRequest, TResponse。)
公共方法SaveResponseMessageLog
保存响应信息

测试时可开启此记录,帮助跟踪数据,使用前请确保App_Data文件夹存在,且有读写权限。

(继承自 MessageHandlerTMC, TRequest, TResponse。)
Top
字段
  名称说明
公共字段OmitRepeatedMessageFunc
动态去重判断委托,仅当返回值为false时,不使用消息去重功能
Top
扩展方法
  名称说明
公共扩展器方法Serialize
序列化对象
(由 StackExchangeRedisExtensions 定义。)
公共扩展器方法ToHashEntries
Serialize in Redis format
(由 RedisUtils 定义。)
公共扩展器方法ToJson
把数据转换为Json格式(使用Newtonsoft.Json.dll)
(由 ObjectExtensions 定义。)
Top
参见