公众平台开发模式的数据交互方式

1.2 公众平台开发模式的数据交互方式

公众平台消息接口为开发者提供了与用户进行消息交互的能力。对于成功接入消息接口的公众账号,当用户发消息给公众账号时,微信公众平台服务器会使 用 HTTP 请求对接入的网址进行消息推送,第三方服务器可通过响应包返回个性的回复,从而达到回复消息的目的。简单地说,就是公众账号可以使用自己的程序来和用户对话。

这个模式和多年前的手机订阅很像。在21世纪初,互联网在泡沫之后迎来了一种非常厉害的盈利模式——SP/CP 模式,拯救了水深火热的互联网。当然,现在这种模式已经过时了,大家可以在网上了解一下那段互联网的历史。不过现实中还是存在真实的例子,如果你的手机号是中国移动的,可以参看 10086 的短信功能;如果你的手机号是中国电信的,可以参看 10000 的短信功能。笔者的手机号是中国电信的,当笔者想查询自己的套餐使用情况时,即可发送 702 到 10001,10001 会立即返回笔者的套餐详细使用情况。大家肯定猜到这条短信不是人工发过来的,而是由后台程序接到 702 之后查询中国电信自己的用户数据库后发过来的。同样的,中国移动的用户发送“YE”到 10086 查询余额的功能也是一样的。

使用了开发模式的微信公众账号就会成为一个配备了一些指令规则的账号。在用户关注公众账号,发送对应的指令给公众账号之后可以获得相应的结果。而这些规则的逻辑需要公众账号的开发者根据公众平台的开发规则在后台实现。用户、微信后台和我们需要开发的公众账号后台的服务器三者之间的交互关系如图1-1所示。

图1-1 用户、微信后台和公众账号服务器间的交互图

图1-1 所示的具体交互过程的描述如下:
1)用户在微信的手机客户端里向公众账号发送一条消息,这条消息会通过网络到达微信的后台;
2)后台收到这条消息之后,把消息转发给公众账号的后台,也就是公众账号的服务器;
3)公众账号服务器收到请求后,解析消息格式,根据用户内容和自己的服务器逻辑,计算出需要返回给用户的消息,然后封装消息,返回给微信后台;
4)微信后台把公众账号服务发来的消息转发给用户的微信手机客户端,这样用户在手机客户端上就可以看到公众账号发来的微信消息了。

通过这个过程可以看到公众账号服务器要做的事情有三件:
❑ 获取微信后台发过来的消息;
❑ 实现自己的业务逻辑;
❑ 发送返回消息给微信后台。

因为微信服务器请求公众账号服务使用的是 HTTP 协议,所以在公众账号服务器上必须要运行一个 HTTP 服务,并打开一个端口。本书的案例为了开发时的 方便,使用 Windows 上的 AppServ 作为开发和调试环境,使用 zendstudio 作为 PHP 语言的 IDE,使用 Windows 版本的 MySQL 作为数据存储;在部署应用时使 用 Nginx、PHP-FPM 和 Linux 版本的 MySQL 作为生产环境。

接下来介绍一下开发环境的准备工作及生产环境的部署,如果读者已经知道如何使用 AppServ 可以跳过这些内容。

微信开发原理 公众平台开发模式的数据交互方式相关推荐

  1. 【微信易信公众平台开发】开启开发者模式

    本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...

  2. 【微信易信公众平台开发】天气查询功能

    本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...

  3. 【微信易信公众平台开发】创建自定义菜单

    本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...

  4. 【微信易信公众平台开发】写在最前面

    微信和易信一样,都有公众平台,使用方法几乎一样,不过易信政策比较宽松,所以我选择了易信来写这个系列的博客,具体要做一个什么样子的例子还没有想清楚,不过先把久违的自定义菜单体验一下先.本系列的第一篇是讲 ...

  5. 微信公众平台开发模式背后的原理?

    微信公众平台开发模式背后的原理? 想利用微信提供的网络通道实现自己的业务要求,想了解其背后的技术原理.给出建议或信息来源都好. 添加评论分享 查看全部 2 个回答 吴星,你好,很喜欢这个能学到许多知识 ...

  6. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  7. 微信公众平台开发(58)自定义菜单

    微信公众平台开发 微信公众平台开发模式 企业微信公众平台 自定义菜单 开发教程  作者:方倍工作室  地址:http://www.cnblogs.com/txw1958/p/weixin-58-cus ...

  8. 《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——3.3 微信开发者中心...

    本节书摘来自华章计算机<微信公众平台开发:从零基础到ThinkPHP5高性能框架实践>一书中的第3章,第3.3节,作者 方倍工作室,更多章节内容可以访问云栖社区"华章计算机&qu ...

  9. 微信公众平台开发入门教程[2019版]

    关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公 ...

最新文章

  1. Java源码详解零:HashMap介绍
  2. c语言程序设计教程 实验十,清华大学出版社-图书详情-《C语言程序设计实验教程》...
  3. Lanchester战争模型:用可分离变量的微分方程占卜战事
  4. 使用MEF方便的扩展
  5. oracle无+密码登陆,Oracle 11g通过wallet实现无密码登录
  6. 2018中国十大科技进展公布!两院院士投票,港珠澳大桥和天河三号上榜
  7. Android学习笔记之SQLite
  8. 优麒麟 mysql_优麒麟18.10新特性预览—生物识别
  9. dopod566使用小参考
  10. 安全视角下的CAN协议分析
  11. 学会提问-批判性思维
  12. 理解单调栈与单调队列
  13. Html静态页面缓存问题,解决缓存更新不及时需清空缓存更新页面
  14. 北京理工大学计算机实验广域网通信与有,北京理工大学计算机实验七报告表.doc...
  15. 【vue】Storage二次封装
  16. Linux服务器NTP客户端时钟同步配置方法
  17. 零基础想学习Web安全,如何入门?
  18. 如何将mkv视频转换成gif动态图片
  19. 双稳态电子开关、单按键自锁电路仿真
  20. Linux各发行版的前世今生

热门文章

  1. Objective-C中变量采用@property的各个属性值的含义
  2. 甲骨文全面进军云计算市场
  3. VS2005常用插件
  4. 看我出招之:svchost.exe文件删不得
  5. Apache Licene 2.0 协议说明
  6. 容器编排技术 -- Kubernetes kubectl expose命令详解
  7. 容器编排技术 -- Google Computer Engine入门
  8. CSDN开发者周刊 TDengine:专为物联网订制的大数据平台 YugaByte DB:高性能的分布式ACID事务数据库
  9. Linux——粘滞位(sbit)、sgid、suid 权限
  10. GNS3模拟器中关于创建vtp时,内存空间不足问题的解决