微信公众号开发(二):消息处理

前言:

   回顾上一节服务器配置的内容,我们已经可以自己完成公众号服务器的配置。配置完成之后,我们就可以通过调用的方式,完成对消息管理的处理。当用户关注公众号或者发送消息的时候,我们应该启用默认回复,要不然用户得不到回应,

从而导致丢失体验。所以这一章节,我们将通过消息管理的方式,对用户的信息进行处理,完成公众号消息回复功能,实现公众号与用户之间的完整对话。.

了解:

   微信公众平台对信息做了比较清晰的分类,最基本的包括请求(Request)和响应(Response)两大类信息,这两类信息有分为文字、语音、图片等格式。Senparc.Weixin.MP提供了MessageHandler消息处理类,这些类型在以枚举的方式区分,同时根据严格命名规则命名了所有类型的RequestMessage和ResponseMessage。在Senparc里也详细说明了如何这个类的

微信公众号开发(二):消息处理

开始:

第一步:

   新建一个UserMessageHandler.cs,需要继承Senparc.Weixin.MP.MessageHandlers<TC>这个抽象类,并重写所有方法:

微信公众号开发(二):消息处理

微信公众号开发(二):消息处理

   重写的方法对应了接收不同的Request类型,构造函数的inputStream用于接收来自微信服务器的请求流

第二步:

   基本用户不同类型的请求,比如用户向我们发送一条信息,那么会最终会调用OnTextRequest这个方法,所以在不同的重写方法内,实现自己的方法。

比如:我们对于文字(Text)信息进行这样的处理,在UserMessageHandler中我们可以重写方法OnTextRequest:微信公众号开发(二):消息处理

   对于图片信息进行这样的处理,在UserMessageHandler中我们可以重写方法OnImageRequest

微信公众号开发(二):消息处理

   对于语音信息进行这样的处理,在UserMessageHandler中我们可以重写方法OnVoiceRequest

微信公众号开发(二):消息处理

   对于视频信息进行这样的处理,在UserMessageHandler中我们可以重写方法OnVideoRequest

微信公众号开发(二):消息处理

   对于地理信息进行这样的处理,在UserMessageHandler中我们可以重写方法OnLocationRequest

微信公众号开发(二):消息处理

   对于链接信息进行这样的处理,在UserMessageHandler中我们可以重写方法OnLinkRequest微信公众号开发(二):消息处理

第三步:

   在Action中使用MessageHandler,返回对用户的处理,在上一节中我们已经新建了WXController.cs,在其中通过Post的方式处理用户的请求        

微信公众号开发(二):消息处理

   messageHandler.Execute();用于执行整个信息处理过程,其中会调用重写的OnxxRequest方法

效果:

   测试发送文本

微信公众号开发(二):消息处理

   通过测试公众号,我们可以发现,当我们发送文本的时候,系统会对用户的信息进行处理,完成公众号消息回复功能,实现公众号与用户之间的完整对话。

   测试发送图文消息

微信公众号开发(二):消息处理微信公众号开发(二):消息处理

总结:

   1.通过MessageHandler的简单处理,我们就可以进行对用户文本消息的处理,完成公众号与用户的会话

   2.发送不同的消息,处理不同的回复,实现更多类型的消息回复

   3.参考了如何使用MessageHandler简化消息处理流程