首页 > 代码库 > 微信消息的处理和应答
微信消息的处理和应答
1.微信消息应答流程
微信服务器是客户手机和开发服务器信息流通的桥梁。消息流程图如下:
2.微信服务器向开发服务器请求消息
1)文本消息处理
2)事件消息处理
3)开发者认证处理
微信消息处理入口操作,代码示例如下:
public void ProcessRequest(HttpContext context){ //WHC.Framework.Commons.LogTextHelper.Info("测试记录"); string postString = string.Empty; if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST") { using (Stream stream = HttpContext.Current.Request.InputStream) { Byte[] postBytes = new Byte[stream.Length]; stream.Read(postBytes, 0, (Int32)stream.Length); postString = Encoding.UTF8.GetString(postBytes); } if (!string.IsNullOrEmpty(postString)) { Execute(postString); } } else { Auth(); }}
WeixinApiDispatch消息分发管理类,它提取请求消息的内容,并构建不同类型的消息参数,传递给不同的响应函数进行处理,然后返回封装好的XML内容,作为响应。
/// <summary>/// 处理各种请求信息并应答(通过POST的请求)/// </summary>/// <param name="postStr">POST方式提交的数据</param>private void Execute(string postStr){ WeixinApiDispatch dispatch = new WeixinApiDispatch(); string responseContent = dispatch.Execute(postStr); HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; HttpContext.Current.Response.Write(responseContent);}
代码处理逻辑如下图所示:
具体的消息处理类:
/// <summary>/// 客户端请求的数据接口/// </summary>public interface IWeixinAction{ /// <summary> /// 对文本请求信息进行处理 /// </summary> /// <param name="info">文本信息实体</param> /// <returns></returns> string HandleText(RequestText info); /// <summary> /// 对图片请求信息进行处理 /// </summary> /// <param name="info">图片信息实体</param> /// <returns></returns> string HandleImage(RequestImage info);........................... /// <summary> /// 对订阅请求事件进行处理 /// </summary> /// <param name="info">订阅请求事件信息实体</param> /// <returns></returns> string HandleEventSubscribe(RequestEventSubscribe info); /// <summary> /// 对菜单单击请求事件进行处理 /// </summary> /// <param name="info">菜单单击请求事件信息实体</param> /// <returns></returns> string HandleEventClick(RequestEventClick info);..............................}
其中,实体类参数是我们根据程序开发自己定义的,继承关系如下所示:
3.开发者服务器向微信服务器进行的消息请求消息
我们可以通过微信,进行相关的消息回复或者数据管理操作。
如下如所示:
微信的回复消息处理,处理逻辑如下图所示:
参考资料:http://www.cnblogs.com/wuhuacong/p/3614175.html
微信消息的处理和应答
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。