微信開發實戰(3)—開發者公眾號的互動原理

Aurora Polaris發表於2016-11-30

微信開發實戰(3)—開發者公眾號的互動原理


通過前2篇文章,相信你已經對公眾號有了基本的瞭解。從本篇文章開始,詳細介紹如何進行公眾號開發。


本篇文章主要介紹公眾號常用的訊息互動,並配以流程圖。主要目的是希望開發者們從巨集觀角度對開發者公眾號有個清晰的認識,在後續各介面開發中有事半功倍的效果。


題外話:在我們開發過程中,一般先有明確的目標,再形成清晰的流程邏輯,最後根據設計模式等理論落實程式碼細節。所以,最後無論使用哪種程式語言,都是一樣的了。

所以,高層等都是不寫程式碼的...,如果有一天你也不寫程式碼了,恭喜你高升了;或者還有一種可能:恭喜您,不再做碼農了~



一,微信伺服器與開發者伺服器互動

顯然的,如果公眾號想成為開發者號,必須有自己的伺服器,也就是說必須部署自己的獨立應用。以Java開發為例,需要有對應web應用,且是80埠。伺服器獲取的方式很多,可以租(比如阿里、騰訊:收費),也可以使用新浪SAE(可免費,後面詳細介紹)。


前提是你要:有想法,有公眾號,有碼農!


1.1,互動圖


我們以訊息互動場景,講解互動過程。就是粉絲給公眾號傳送了一條訊息,公眾號自動回覆一條或多條訊息。比如,你關注了公眾號程式設計師實戰(coder10),想撩一下它,就傳送了一條文字訊息:hello,於是下面的事情就會發生了....


1動作請求:就是你給coder10傳送了 hello ;這時候微信平臺伺服器會接受到這條訊息,並確定是公眾號coder10的粉絲髮送來的;


2是否開發者公眾號:在微信公眾平臺中可以開啟開發者配置,如果沒有配置,說明不是開發號,進入:3業務處理 ;如果配置為開發者號,那麼進入:4包裝轉換;


3業務處理:微信平臺會根據coder10的 “自動回覆”(微信平臺選單)中的設定,獲取對應的回覆素材,然後進行:8回覆處理;


4包裝轉換:微信平臺會重新包裝粉絲請求的動作,並轉換為公眾號開放介面報文的形式(XML格式),並轉發給開發者伺服器;


5請求:微信平臺會帶著轉換後的引數,傳送http請求開發者伺服器應用,也就是上文提到的web應用。所以web應用必須是公網的、開放的、80埠的應用。請求的URL就是公眾號成為開發者號配置的時候,填寫的URL、Token認證時候的URL(後面詳細介紹)。


6開發者根據自己的業務進行處理:現在就進入了碼農們比較熟悉的領域了,無論你用什麼技術或程式語言,只要提供對外的web應用就可以了。

此web應用可以接受http請求,並獲取引數,根據自己的業務邏輯處理後,包裝轉換回複資料,並返回資料給微信伺服器:7回覆;


7回覆:回覆的資料格式依然是公眾號開放介面規定的XML格式的報文。微信伺服器接收到資料之後,進入:8回覆處理;


8回覆處理:就是將要回復的內容轉換處理,比如是選單呼叫攝像頭事件,還是地理位置事件,還是僅僅回覆訊息等等;coder10是回覆訊息。處理完成之後進行動作回覆


9動作回覆:這時,粉絲的微信中就會收到公眾號的反饋!


流程結束!





相關文章