这篇文章主要介绍了公众号被动消息回复原理解析,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
背景:某分厂需要实时查询工件堆放的位置,要求快速便捷,因此设计了采用微信公众号被动回复信息的方案。
技术实现:开发者服务器--基于Angular2框架的已发布网站,编程语言为Python,后台存储数据库为Mysql;
微信服务器--微信公众号,此业务只是处理微信客户端发送的文本信息,且不使用公众号的其他功能,因此不需要认证公众号;
微信客户端--关注公众号的微信使用者,即粉丝。
当粉丝给公众号发送特定的消息时,微信公众号自动回复相应内容,而其背后的实现原理可由下图所示:
<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、回复消息内容应遵从公众号信息内容的设定,最好不要回复带空格的消息,因为会出现不能正常回复的现象。
总结
以上所述是小编给大家介绍的微信公众号被动消息回复原理解析,希望对大家啊有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
本文标题为:微信公众号被动消息回复原理解析
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- c# 模拟线性回归的示例 2023-03-14
- 如何使用C# 捕获进程输出 2023-03-10
- Unity Shader实现模糊效果 2023-04-27
- Oracle中for循环的使用方法 2023-07-04
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- user32.dll 函数说明小结 2022-12-26
- WPF使用DrawingContext实现绘制刻度条 2023-07-04
- Unity3D实现渐变颜色效果 2023-01-16
- .NET CORE DI 依赖注入 2023-09-27