- 微信公眾平臺應用開發實戰(第2版)
- 鐘志勇 何威俊 馮煜博
- 1093字
- 2019-01-01 00:44:54
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可以跳過這些內容。