微信公众平台开发学习系列(二):微信公众平台接收消息与发送消息

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

本篇主要介绍如何使用senparc来处理微信公众平台的接收消息与发送消息。

首先微信端会将用户的发送的信息以post请求发送到填写的url上,服务端代码如下:

1[HttpPost]2publicActionResult Get(PostModel postModel)3{4varmessageHandler =newCustomMessageHandler(Request.InputStream, postModel);56messageHandler.Execute();//执行微信处理过程78returnContent(messageHandler.ResponseDocument.ToString());9}

新建一个CustomMessageHandler类和一个CustomMessageContext类,CustomMessageHandler类继承MessageHandler<CustomMessageContext>,CustomMessageContext类继承MessageContext<IRequestMessageBase,IResponseMessageBase>,CustomMessageContext类的方法此处不贴出,主要是实现CustomMessageHandler类的方法,代码如下:

1publicCustomMessageHandler(Stream inputStream, PostModel postModel)2:base(inputStream, postModel)3{45}67publicoverrideIResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage)8{9varresponseMessage =base.CreateResponseMessage<ResponseMessageText>();//ResponseMessageText指返回文本信息10responseMessage.Content ="这条消息来自DefaultResponseMessage。"+requestMessage.MsgId;11returnresponseMessage;12}

返回信息的格式多种多样,如:ResponseMessageText,ResponseMessageNews,ResponseMessageImage等。接收信息的格式也分很多种,不同格式有不同的处理方法:OnTextRequest,OnImageRequest,OnEvent_ViewRequest等。如果没有重写相应方法,就默认执行DefaultResponseMessage方法。本篇重写2个方法作为简单的例子。

用户发送文本信息情况下的返回信息处理

1publicoverrideIResponseMessageBase OnTextRequest(RequestMessageText requestMessage)2{3varresponseMessage =base.CreateResponseMessage<ResponseMessageText>();4responseMessage.Content ="您的OpenID是:"+requestMessage.FromUserName5+"。\r\n您发送了文字信息:"+requestMessage.Content;6returnresponseMessage;7}

菜单点击事件情况下的返回信息处理

1publicoverrideIResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage)2{3IResponseMessageBase reponseMessage =null;4//菜单点击,需要跟创建菜单时的Key匹配5switch(requestMessage.EventKey)6{7case"OneClick":8{9varstrongResponseMessage = CreateResponseMessage<ResponseMessageNews>();10reponseMessage =strongResponseMessage;11strongResponseMessage.Articles.Add(newArticle()12{13Title ="您点击了菜单图文按钮",14Description ="您点击图文链接按钮,这是一条图文信息。",15PicUrl ="https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=3233073314,694013259&fm=58&s=39C718720E8EBE011B398BAC0300F024",16Url ="http://www.baidu.com"17});18}19

break;20case"SubClickRoot_Text":21{22varstrongResponseMessage = CreateResponseMessage<ResponseMessageText>();23reponseMessage =strongResponseMessage;24strongResponseMessage.Content ="您点击了子菜单按钮。";25}26

break;27default:28{29varstrongResponseMessage = CreateResponseMessage<ResponseMessageText>();30strongResponseMessage.Content ="您点击了按钮,EventKey:"+requestMessage.EventKey;31reponseMessage =strongResponseMessage;32}33

break;34}3536returnreponseMessage;37}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航