C#开发微信门户及应用(二)之微信消息处理和应答的图文代码教程


本文摘自PHP中文网,作者黄舟,侵删。

文章主要为大家详细介绍了C#开发微信门户及应用第二篇,微信消息处理和应答,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下、学习下微信的相关开发,也就成为计划的安排事情之一了。本系列文章希望从一个循序渐进的角度上,全面介绍微信的相关开发过程和相关经验总结,希望给大家了解一下相关的开发历程。本篇随笔主要基于上一篇《C#开发微信门户及应用(1)--开始使用微信接口》的基础上进行深入的介绍,介绍微信消息的处理和应答的过程。

1、微信的消息应答交互

我们知道,微信的服务器架起了客户手机和开发者服务器的一个桥梁,通过消息的传递和响应,实现了与用户的交互操作,下面是它的消息流程图。

微信向开发者服务器请求的消息包含了多种类型,不过基本来说,分为了文本消息处理、事件消息处理、语音消息的识别,以及成为开发者之前的那个消息认证操作基本分类,下面是我绘制的一个消息分类图,其中介绍了这几种关系,以及各自的消息细化分类。

对于这些消息的请求,我们在开发服务器端,需要编写相关的逻辑进行对应给的处理,然后给微信服务器平台回应消息即可。

在前一篇的随笔里面我贴过代码,介绍微信消息处理的入口操作,代码如下所示。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

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);就是对消息的处理函数,它实现了对不同消息的分发处理过程。‘


1

2

3

4

5

6

7

8

9

10

11

12

/// <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内容,作为响应。

具体的代码处理逻辑如下图所示。

阅读剩余部分

相关阅读 >>

c#怎么将 html转换为图片或 pdf?

c#中如何使用sendmessage?

c# arraylistd的长度问题解决

.net core中如何使用ref和span<t>提高程序性能的实现代码

c#实现json序列化删除null值的方法实例

关于.net使用cache框架如何给程序添加cache的实例

.net中抽象类实现多态

在.net中所有类的基类是什么?

httpclient向https发送数据建立ssl连接时的异常

使用c#操作windowad之的windows用户组

更多相关阅读请进入《csharp》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...