微信公众号被动消息回复原理解析

 更新时间:2019年06月24日 15:03:25   作者:佳序  
这篇文章主要介绍了公众号被动消息回复原理解析,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

背景:某分厂需要实时查询工件堆放的位置,要求快速便捷,因此设计了采用微信公众号被动回复信息的方案。

    技术实现:开发者服务器--基于Angular2框架的已发布网站,编程语言为Python,后台存储数据库为Mysql;

                     微信服务器--微信公众号,此业务只是处理微信客户端发送的文本信息,且不使用公众号的其他功能,因此不需要认证公众号;

                    微信客户端--关注公众号的微信使用者,即粉丝。

                   当粉丝给公众号发送特定的消息时,微信公众号自动回复相应内容,而其背后的实现原理可由下图所示:

           

      由上图可知,粉丝(微信客户端)向公众号(微信服务器)发送消息后,公众号马上将消息报文转发给绑定的网站(开发者服务器),此时消息

      传送到了开发者的系统里。然后系统解析消息报文,得到消息内容,再根据消息内容,从业务数据库中得到返回的消息文本,最终将消息文本包装

      成回复的消息报文(xml),返回给公众号,公众号再发送给请求的粉丝。

         消息报文: 微信服务器转发的消息报文格式如下:                         

<xml>

                <ToUserName>![DATA[toUser]]</ToUserName>               // 接收消息方,开发者微信号(公众号AppID)

                <FromUserName>![DATA[fromUser]]</FromUserName>         //发送方账号(OpenId)

                <CreateTime>12356548575</CreateTime>                   //消息创建时间

                <MsgType>![DATA[text]]</MsgType>                        //消息类型,text代表文本类型

                <Content>![DATA[?18-546]]</Content>                       //消息内容,本例为 ?18-546

                <MsgId>1234567890123456</MsgId>                       //消息ID

            </xml>

                   开发者服务器通过解析转发的消息报文,得到发送方账号(回复消息用)和消息内容,然后通过一系列业务处理,生成回复消息报文,格式如下:     

       <xml>

              <ToUserName>![DATA[userName]]</ToUserName>            //接收消息方,微信客户端账号(OpenId)

              <FromUserName>![DATA[fromUser]]</FromUserName>         // 发送方账号,(公众号AppID)

              <CreateTime>456251484</CreateTime>                      //消息创建时间

              <MsgType>![DATA[text]]</MsgType>                         //回复的消息类型,text代表文本消息

             <Content>![[[18-546]的工作台位为[车体新厂房3号]]]</Content>     //回复的消息内容,本例为[18-546]的工作台位为[车体新厂房3号]

           </xml>

    微信服务器接收到回复的消息报文后,通过解析,将内容发送给微信客户端,这样客户端接收到信息了。

        注意事项: 1、开发服务器自接收到转发的消息后,需要再5秒内给予回复,超过时间,则自动回复错误提示消息"该公众号提供的服务出现故障,请稍后再试",

                                  因此,业务处理时间最好不要大于5秒钟;

                          2、回复消息内容应遵从公众号信息内容的设定,最好不要回复带空格的消息,因为会出现不能正常回复的现象。

总结

以上所述是小编给大家介绍的微信公众号被动消息回复原理解析,希望对大家啊有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • AnyChat的视频会议程序实例详解

    AnyChat的视频会议程序实例详解

    AnyChat是一款跨平台的音视频解决方案。通过本篇文章给大家介绍AnyChat的视频会议程序,涉及到anychat相关知识,对anychat视频会议相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • C#事务处理(Execute Transaction)实例解析

    C#事务处理(Execute Transaction)实例解析

    这篇文章主要介绍了C#事务处理(Execute Transaction)实例解析,对于理解和学习事务处理有一定的帮助,需要的朋友可以参考下
    2014-08-08
  • C# wpf Bitmap转换成WriteableBitmap的方法

    C# wpf Bitmap转换成WriteableBitmap的方法

    本文主要介绍了C# wpf Bitmap转换成WriteableBitmap的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • C#实现字符串与图片的Base64编码转换操作示例

    C#实现字符串与图片的Base64编码转换操作示例

    这篇文章主要介绍了C#实现字符串与图片的Base64编码转换操作,结合实例形式分析了C#针对base64编码与图片的相互转换操作技巧,需要的朋友可以参考下
    2017-06-06
  • DataTable的AcceptChanges()和RejectChanges()方法介绍并实现DataGridView数据增、删、改

    DataTable的AcceptChanges()和RejectChanges()方法介绍并实现DataGridView

    这篇文章介绍了DataTable的AcceptChanges()和RejectChanges()方法并实现DataGridView数据增、删、改,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • c# 通过wbemtest和WMI Code Cretor更加高效的访问WMI

    c# 通过wbemtest和WMI Code Cretor更加高效的访问WMI

    能找到这篇博客的,相信都是有操作WMI需求的了。本文将讲述如何快速验证、并集成到C#来操作WMI。
    2021-05-05
  • WPF实现XAML转图片的示例详解

    WPF实现XAML转图片的示例详解

    这篇文章主要为大家详细介绍了如何利用WPF实现XAML转图片,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2022-11-11
  • C#中Dictionary的作用及用法讲解

    C#中Dictionary的作用及用法讲解

    这篇文章主要介绍了C#中Dictionary的作用及用法讲解,本文还对dictionary类用什么接口实现、Dictionary的基本用法做了讲解,需要的朋友可以参考下
    2014-10-10
  • webBrowser代理设置c#代码

    webBrowser代理设置c#代码

    本文将介绍C# 为webBrowser设置代理实现代码,需要了解的朋友可以参考下
    2012-11-11
  • Unity后处理效果之边角压暗

    Unity后处理效果之边角压暗

    这篇文章主要为大家详细介绍了Unity后处理效果之边角压暗,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03

最新评论