C#开发微信门户及动(2)–微信信息之处理同报

微信下如火如荼,很多小卖部还期待增加上信息快车,这个是一个商机,也是一个术的样子,因此,有空切磋下、学习下微信的连锁支付,也就是变成计划之布置事情之一了。本系列文章要从一个循序渐进的角度上,全面介绍微信的有关支付过程及相关经验总结,希望吃大家了解一下有关的支付过程。本篇随笔主要依据上同样篇《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)–开始运用微信接口

相关文章