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

微信下如火如荼,很多小卖部还期待增加上信息快车,这个是一个商机,也是一个技术的矛头,因此,有空切磋下、学习下微信的连锁支付,也尽管改为计划之配置事情之一了。本系列文章要由一个循序渐进的角度上,全面介绍微信的有关支付进程以及系经验总结,希望吃大家探听一下息息相关的开支过程。本篇随笔主要依据上等同篇《C#支付微信门户及下(1)–开始动微信接口》的底蕴及拓展深入之牵线,介绍微信消息的拍卖和回复的进程。

1、微信的音信对交互

咱俩明白,微信的服务器架于了客户手机以及开发者服务器的一个桥梁,通过信息之传递及应,实现了与用户的互相操作,下面是它们的音讯流程图。

bifa365必发 1

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

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

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

bifa365必发 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);

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

打点的代码可以看到,不同之音讯,到处理函数这里,就以不同的消息实体类的道传送过来了(顾:实体类是自冲程序开发需要协调定义的,非微信本身的实业类),这样不行便宜我们处理操作,否则每次用分析不同之音内容,很爱出现问题,这样强类型的数据类型,提高了俺们付出微信下的强壮型和高效性。这些实体类的对象来一定之连续关系的,他们的延续关系如下所示。

bifa365必发 4

2、微信的田间管理接口

方的信息分类是微信服务器向开发者服务器发送的信请求操作,还有雷同栽信息,是咱们开发者服务器向微信服务器进行的音信请求或响应,这种这里权且称之为微信的田间管理接口,它标志了我们得透过这些接口进行相关的信息回复或者数管理操作。它的归类图如下所示。

bifa365必发 5

微信的死灰复燃消息处理,它吧同方小节的消息相同,它为是继承自BaseMessage实体类的(同一,下图的实体类及其继承关系也是从定义的,方便程序支付),它的关联如下所示

bifa365必发 6

光复的信息,一般用的顶多的凡文件消息及图文信息。

文本消息之功力如下所示。

bifa365必发 7

图文信息,可以增加图,还足以长详细的链接页面,是特别好看的一样栽效应,对于片情比较多,希望呈现更好作用的,一般采用这种,效果如下所示。

bifa365必发 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)–开始以微信接口

发表评论

电子邮件地址不会被公开。 必填项已用*标注