本节书摘来华章计算机《微信公众平台应用开发实战(第2版)》一书中的第1章 ,第1.4节,钟志勇 何威俊 冯煜博 著更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.4 开发模式简介
公众平台消息接口为开发者提供了与用户进行消息交互的能力。对于成功接入消息接口的公众账号,当用户发消息给公众账号时,微信公众平台服务器会使用HTTP请求对接入的网址进行消息推送,第三方服务器可通过响应包返回特性的回复,从而达到回复消息的目的。简单地说,就是公众账号可以使用自己的程序和用户对话。
这个模式和多年前的手机订阅很像。在21世纪初,互联网在泡沫之后迎来了一种非常厉害的盈利模式:SP/CP模式,这种模式拯救了水深火热的互联网。当然,这种模式现在已经过时了(大家可以网上搜索了解一下互联网的那段历史)。不过现实中还是存在与此相关的真实例子,如果你的手机号是移动的,可以参看10086的短信功能,如果你的手机是电信的,可以参看10000的短信功能。笔者的手机号是电信的,当笔者想查询套餐使用情况时,即可发送702到10001,10001会立即返回套餐的详细使用情况。大家肯定猜得到这条短信不是人工发过来的,而是由后台程序在接到702后将从电信自己的用户数据库查询的数据发过来的。同样的,移动的用户发送“YE”到10086查询余额的功能也是一样的。
使用了开发模式的微信公众账号就会成为一个配备了一些指令规则的账号。在用户关注公众账号之后,发送对应的指令给公众账号就可以获得相应的结果。而这些规则的逻辑需要公众账号的开发者根据公众平台的开发规则在后台实现。用户、微信后台和需要开发的公众账号后台的服务器三者之间的交互关系如图1-41所示。
对图1-41所示的具体的交互过程描述如下:
1)用户通过微信手机客户端向公众账号发送一条消息,这条消息会通过网络送达微信的后台;
2)后台在收到这个消息之后,把消息转发给公众账号的后台,也就是公众账号的服务器;
3)公众账号服务器在收到请求后,解析消息格式,根据用户内容和自己的服务器逻辑,计算出需要返回给用户的消息,然后封装消息并返回给微信后台;
4)微信后台把公众账号服务器发来的消息转发给用户的微信手机客户端,这样用户在手机客户端上就可以看到公众账号发来的微信消息了。
通过这个过程可以看到公众账号服务器要做的事情有三件:
- 获取微信后台发过来的消息;
- 实现自己的业务逻辑;
- 返回消息给微信后台。
因为微信服务器请求公众账号服务使用的是HTTP协议,所以在公众账号服务器上必须要运行一个HTTP服务并打开一个端口。为了方便,本书的实例在开发阶段使用Windows上的AppServ作为开发和调试环境,使用zendstudio作为PHP语言的IDE,使用Windows版本的MySQL作为数据存储;在部署应用时使用Nginx、PHP-FPM和Linux版本的MySQL作为生产环境。在搭建这套环境之前,先用云平台的方式快速搭建公众账号,从而带领读者快速认识公众账号提供的API。