C#C#开发微信门户及应用(2)–微信音信的拍卖和回复

微信应用如火如荼,很多合作社都期待搭上信息快车,那么些是一个商机,也是一个技艺的势头,由此,有空研讨下、学习下微信的相干支出,也就变成陈设的计划工作之一了。本种类小说希望从一个规行矩步的角度上,周详介绍微信的相干支出进程和有关经验总计,希望给大家探听一下休戚相关的支出进度。本篇随笔紧要基于上一篇《C#支付微信门户及运用(1)–开首应用微信接口》的根基上开展长远的牵线,介绍微信音讯的处理和回应的长河。

1、微信的音讯应答交互

大家知道,微信的服务器架起了客户手机和开发者服务器的一个桥梁,通过新闻的传递和响应,完毕了与用户的并行操作,下边是它的新闻流程图。

C# 1

微信向开发者服务器请求的新闻包罗了多连串型,不过基本来说,分为了文件新闻处理、事件音信处理、语新闻息的识别,以及成为开发者在此以前的非常新闻证实操作基本分类,下边是本身绘制的一个音讯分类图,其中介绍了那三种关系,以及个别的新闻细化分类。

C# 2

对此这一个音讯的呼吁,大家在支付服务器端,必要编制相关的逻辑举办对应给的拍卖,然后给微信服务器平台回复音讯即可。

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

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

实际的代码处理逻辑如下图所示。

C# 3

以此音信处理接口,其实就是概念好一多级的对请求音讯的拍卖操作,参数是分化给的新闻对象,具体的代码定义如下所示(由于篇幅原因,省略有些接口,具体能够参见上图)。

    /// <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);

..............................
    }

从上边的代码可以看来,差别的音讯,遍地理函数那里,就以不一样的讯息实体类的不二法门传送过来了(在意:实体类是自身按照程序支付须要协调定义的,非微信本身的实体类),那样极度便利大家处理操作,否则每便必要分析差别的音信内容,很不难出现问题,那样强类型的数据类型,提升了大家开发微信应用的强壮型和高效性。那个实体类的靶子有一定的持续关系的,他们的后续关系如下所示。

C# 4

2、微信的治本接口

地点的音讯分类是微信服务器向开发者服务器发送的新闻请求操作,还有一种音讯,是大家开发者服务器向微信服务器进行的新闻请求或者响应,那种那里权且称之为微信的保管接口,它标志了大家得以经过那么些接口举办连锁的音讯回复或者数额管理操作。它的归类图如下所示。

C# 5

微信的回复信息处理,它也和地点小节的音讯相同,它也是继承自BaseMessage实体类的(一致,下图的实体类及其继承关系也是自定义的,方便程序开发),它的涉及如下所示

C# 6

过来的信息,一般用的最多的是文本新闻和图文信息。

文件信息的作用如下所示。

C# 7

图文信息,可以追加图片,还足以追加详细的链接页面,是相当美观的一种功能,对于一些情节比较多,希望突显更好功效的,一般采用那种,效果如下所示。

C# 8

 

C#开发微信门户及应用(25)-微信公司号的客户端管住职能

C#付出微信门户及选择(24)-微信小店货架新闻保管

C#付出微信门户及运用(23)-微信小店商品管理接口的包装和测试

C#付出微信门户及利用(22)-微信小店的费用和选取

C#支付微信门户及应用(21)-微信集团号的音讯和事件的采用处理及解密 

C#支出微信门户及选用(20)-微信集团号的菜系管理

C#支付微信门户及利用(19)-微信企业号的新闻发送(文本、图片、文件、语音、视频、图文新闻等)

C#付出微信门户及利用(18)-微信企业号的通信录管理支出之成员管理

C#支出微信门户及拔取(17)-微信公司号的通信录管理支付之部门管理

C#支出微信门户及利用(16)-微信集团号的安插和使用

C#支付微信门户及运用(15)-微信菜单增加扫一扫、发图片、发地理位置成效

 C#支付微信门户及应用(14)-在微信菜单中动用重定向获取用户数量

C#开发微信门户及采纳(13)-使用地理地点增加相关应用

C#付出微信门户及应用(12)-使用语音处理

C#支付微信门户及应用(11)–微信菜单的有余表现形式介绍

C#开发微信门户及拔取(10)–在管理种类中齐声微信用户分组音讯

C#付出微信门户及使用(9)-微信门户菜单管理及提交到微信服务器

C#支出微信门户及选择(8)-微信门户应用管理连串机能介绍

C#支付微信门户及利用(7)-微信多客服作用及支出集成

C#开发微信门户及使用(6)–微信门户菜单的管住操作

C#付出微信门户及利用(5)–用户分组音信保管

C#支出微信门户及使用(4)–关心用户列表及详细新闻管理

C#支付微信门户及运用(3)–文本音讯和图文消息的答疑

C#开发微信门户及应用(2)–微信信息的拍卖和答复

C#付出微信门户及选择(1)–发轫拔取微信接口

相关文章