微信应用如火如荼,很多店家都指望搭上新闻快车,那些是一个商机,也是一个技术的主旋律,因而,有空切磋下、学习下微信的相干支出,也就改成安排的安排工作之一了。本系列小说希望从一个循途守辙的角度上,周全介绍微信的连锁支付进度和有关经验统计,希望给我们探听一下连锁的费用进程。本篇随笔主要基于上一篇《C#开发微信门户及应用(1)–开端运用微信接口》的功底上拓展长远的牵线,介绍微信音信的处理和回答的进程。

1、微信的音信应答交互

我们明白,微信的服务器架起了客户手机和开发者服务器的一个桥梁,通过音信的传递和响应,已毕了与用户的并行操作,上面是它的音讯流程图。

图片 1

微信向开发者服务器请求的音讯包括了各连串型,不过基本来说,分为了文本新闻处理、事件音信处理、语新闻息的分辨,以及成为开发者以前的更加信息证实操作基本分类,上面是自身绘制的一个音讯分类图,其中介绍了那三种关系,以及分级的音讯细化分类。

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

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

图片 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);

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

从地方的代码可以见到,区其余音讯,随地理函数那里,就以差距的新闻实体类的章程传送过来了(只顾:实体类是自己根据程序支付需求团结定义的,非微信本身的实体类),那样格外便宜我们处理操作,否则每一趟需求分析不一样的音讯内容,很简单并发难题,那样强类型的数据类型,升高了俺们付出微信应用的强壮型和高效性。这个实体类的对象有早晚的三番五次关系的,他们的接二连三关系如下所示。

图片 4

2、微信的治本接口

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

图片 5

微信的回复信息处理,它也和方面小节的音信相同,它也是持续自BaseMessage实体类的(平等,下图的实体类及其继承关系也是自定义的,方便程序支付),它的关系如下所示

图片 6

回复的音信,一般用的最多的是文件新闻和图文信息。

文件音信的机能如下所示。

图片 7

图文新闻,可以增添图片,还足以追加详细的链接页面,是非凡窘迫的一种功用,对于一些情节比较多,希望展现更好效果的,一般接纳那种,效果如下所示。

图片 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)–开头利用微信接口

相关文章

网站地图xml地图