本文出處:http://blog.csdn.net/chaijunkun/article/details/53385088,轉載請注明。由於本人不定期會整理相關博文,會對相應內容作出完善。因此強烈建議在原始出處查看此文
寫在前面
回想起來今年還沒有在CSDN上發過文章,草稿箱里積攢了很多話題,可由於時間關系最終也沒發出來。不能再拖了,打算寫個系列專題,聊聊微信接入。
隨着微信用戶量的不斷增加,越來越多的企業也將自己的服務加入到了微信當中。微信本身提供的公眾號、服務號的基礎功能難以滿足日趨增長的需求,於是微信為我們打開了一整套自定義功能的API,利用這些API,我們可以彌補原有平台的不足,創造出更加方便的功能。本篇先對微信接口進行簡單的介紹。
騰訊雖然官方也提供了很多語言版本的開發包(參閱:http://qydev.weixin.qq.com/wiki/index.php?title=加解密庫下載與返回碼),包括C++、Python、php、Java和C#,但是筆者發現作為以PHP為主導技術的公司,Java版本的SDK無論是從封裝性能、可維護性還是語法結構上都不夠嚴謹。也正是因此才有了做一套開源API適配庫的想法,目的就是為了讓微信接入更簡單、更容易維護(項目地址為:https://code.csdn.net/chaijunkun/wechat-common)
任何新技術的掌握都是從文檔開始的,如果你剛剛接觸微信接入開發,不妨先看看官方的文檔:https://mp.weixin.qq.com/wiki(這個地址后來發現有點問題,可能是啟用了refer屏蔽,從博客跳轉過去會報錯,隨便點個報錯頁面的鏈接,粘貼地址后即可訪問)
通過閱讀文檔,我們大概將微信接口分為兩類:被動回調(集中在文檔的消息管理部分)接口和主動調用接口。
被動回調接口
嚴格意義上來說,該接口的業務邏輯是由我們自定義的。當有相應的事件發生時,微信會按照之前配置好的公眾平台參數主動請求你的接口。請求參數和請求體都是在文檔中明確聲明的,我們要做的就是對其進行適配。
該接口的作用類似於短信中心。當用戶訂閱了你的公眾號之后可以向其主動發送信息,但消息不是直接到達了你的后台系統,而是通過微信的轉發回調機制,將內容通過統一的格式發送給接入的后台系統。你是否還記得有些電視節目中參與互動,發特定的短信內容到一個服務號碼上就能參與進去?道理是一樣的。
若需要使用回調接口,需要在正式使用前對賬號進行配置。方法為:登錄微信公眾號平台. 登錄地址:https://mp.weixin.qq.com/,查看自己的公眾號。
a.若使用正式公眾號調試,請在左側菜單中找到”開發”->”基本配置”->”開發者ID”和”服務器配置”中找到對應的配置項。
b.若使用公眾號的測試賬號調試,請在左側菜單中找到”開發”->”開發者工具”->”公眾平台測試帳號”->”進入”->掃描登錄二維碼->”測試號信息”和”接口配置信息”中找到對應的配置項。
一個通常的業務模式為下圖所示
上述場景中,公眾號處於被動模式,只有用戶主動發送消息,才會觸發微信回調公眾號后台,並產生相應的應答。實際應用場景有:“回復XX給你看一張圖”,“給我們的節目留言”等等。
關於該處的配置和調試方法將會在后續章節中詳細介紹
主動調用接口
剛剛我們說過用戶主動向公眾號發送消息,那么有沒有主動發消息給用戶的場景呢?例如:告警系統,機房中哪台機器出現問題我們事先是不知道的,監測到異常時需要主動發消息通知用戶。那么就涉及到了主動調用類接口了。這部分接口包羅萬象,是微信接口的重點和難點。(還比如:微信電商系統中提交訂單完成后,需要公眾號主動給用戶發消息提醒,表示下單成功)
微信官方針對主動調用的接口進行了一些列限制,例如公眾號不能給未關注該號的用戶發送消息(旨在保護用戶不被惡意打擾),例如API訪問令牌Token,每天的獲取次數也根據公眾號的類型做了不同的限制。
一個通常的業務模式為下圖所示
具體實踐,后續章節中也會對其進行介紹。
本節對微信接口進行了分類和原理的粗略解釋,更多內容請關注我的博客,也歡迎針對該開源框架提出改進性建議。