版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】c#使用微信接口开发微信门户应用中微信消息的处理和应答的示例
这篇文章主要介绍c#使用微信接口开发微信门户应用中微信消息的处理和应答的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、微信的消息应答交互我们知道,微信的服务器架起了客户手机和开发者服务器的一个桥梁,通过消息的传递和响应,实现了与用户的交互操作,下面是它的消息流程图。微信向开发者服务器请求的消息包含了多种类型,不过基本来说,分为了文本消息处理、事件消息处理、语音消息的识别,以及成为开发者之前的那个消息认证操作基本分类,下面是我绘制的一个消息分类图,其中介绍了这几种关系,以及各自的消息细化分类。对于这些消息的请求,我们在开发服务器端,需要编写相关的逻辑进行对应给的处理,然后给微信服务器平台回应消息即可。在前一篇的随笔里面我贴过代码,介绍微信消息处理的入口操作,代码如下所示。代码如下: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();
}
}其中的Execute(postString);就是对消息的处理函数,它实现了对不同消息的分发处理过程。代码如下:///
<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);
}里面的WeixinApiDispatch就是一个分发的管理类,它提取请求消息的内容,并构建不同类型的消息参数,传递给不同的响应函数进行处理,然后返回封装好的XML内容,作为响应。具体的代码处理逻辑如下图所示。这个消息处理接口,其实就是定义好一系列的对请求消息的处理操作,参数是不同给的消息对象,具体的代码定义如下所示(由于篇幅原因,省略部分接口,具体可以参考上图)。代码如下:///
<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);
}从上面的代码可以看出,不同的消息,到处理函数这里,就以不同的消息实体类的方式传递过来了(注意:实体类是我根据程序开发需要自己定义的,非微信本身的实体类),这样非常方便我们处理操作,否则每次需要解析不同的消息内容,很容易出现问题,这样强类型的数据类型,提高了我们开发微信应用的强壮型和高效性。这些实体类的对象有一定的继承关系的,他们的继承关系如下所示。2、微信的管理接口上面的消息分类是微信服务器向开发者服务器发送的消息请求操作,还有一种消息,是我们开发者服务器向微信服务器进行的消息请求或者响应,这种这里暂且称之为微信的管理接口,它表明了我们可以通过这些接口进行相关的消息回复或者数据管理操作。它的分类图如下所示。微信的回复消息处理,它也和上面小节的信息一样,它
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民宿租赁合同
- 农民工临时工劳动服务合同
- 维修协议合同
- 幼儿园教师岗位聘用劳务协议
- 汽修店员工劳务合同范本
- 投资融资协议书书3篇
- 工程项目挂靠合作协议书
- 医疗市场营销方案
- 百货店卖场主管培训
- 2024年度东莞市企业社会责任报告合同3篇
- 2024年工程制图教案:创新与教学改革
- 江苏省南通市2024-2025学年高一上学期11月期中英语试题(无答案)
- DB14-T2537-2022工业园区突发环境事件风险评估指南
- 旅游合同范本大全
- EPC项目阶段划分及工作结构分解方案
- 军工行业居间合作协议模板
- 干部人事档案任前审核登记表范表
- 走进《黄帝内经》学习通超星期末考试答案章节答案2024年
- 人教版九年级上册第六单元碳和碳的氧化物《拯救水草大行动二氧化碳制取的研究》全国课
- 信息安全意识培训课件
- 人教版(2019)必修 第二册Unit 2 Wildlife Protection Reading for writing教学设计
评论
0/150
提交评论