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

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

阅读剩余部分

相关阅读 >>

文件事物管理transactional file manager的实例详解

分享.net mvc中使用forms验证实例代码

浅谈.net core开发日志中edge.js是什么?如何用?

关于c#如何实现的udp收发请求工具类的示例代码分析

.net core如何在新的项目系统中(.csproj)发布可执行文件

c# md5hash的用法及实例

c#中关于扩展方法的实例分析

极客学院c#视频教程的资料推荐

关于.net mvc中如何使用forms验证的具体介绍

.net中抽象类实现多态

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




打赏

取消

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

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

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

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

评论

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

    正在狠努力加载,请稍候...