雖然公司自己的網站和給客戶開發的項目中都涉及到了微信開發,自己也寫了關於微信開發的兩篇文章,但感覺自己對微信開發中的一些概念還是容易混淆,今天瀏覽了下微信公眾平臺、微信開放平臺的後臺和相關文檔,算是弄清楚了下麵這些東西,至於其他還沒弄清楚的,以後想到了再說。 1,微信公眾平臺(https://mp. ...
雖然公司自己的網站和給客戶開發的項目中都涉及到了微信開發,自己也寫了關於微信開發的兩篇文章,但感覺自己對微信開發中的一些概念還是容易混淆,今天瀏覽了下微信公眾平臺、微信開放平臺的後臺和相關文檔,算是弄清楚了下麵這些東西,至於其他還沒弄清楚的,以後想到了再說。
1,微信公眾平臺(https://mp.weixin.qq.com)和微信開放平臺(https://open.weixin.qq.com)
“微信公眾平臺是運營者通過公眾號為微信用戶提供資訊和服務的平臺”,登錄公眾平臺賬號後,可以看到它有一個不錯的交互界面。可以提供給公司的運營人員使用,用來發佈消息和提供服務。
微信公眾平臺的技術文檔地址為:https://mp.weixin.qq.com/wiki,介面功能變數名稱為:
通用功能變數名稱(api.weixin.qq.com),使用該功能變數名稱將訪問官方指定就近的接入點;
上海功能變數名稱(sh.api.weixin.qq.com),使用該功能變數名稱將訪問上海的接入點;
深圳功能變數名稱(sz.api.weixin.qq.com),使用該功能變數名稱將訪問深圳的接入點;
香港功能變數名稱(hk.api.weixin.qq.com),使用該功能變數名稱將訪問香港的接入點。
文檔對介面的說明:“開發者可以根據自己的伺服器部署情況,選擇最佳的接入點(延時更低,穩定性更高)。除此之外,可以將其他接入點用作容災用途,當網路鏈路發生故障時,可以考慮選擇備用接入點來接入。”
參照技術文檔中的“入門指引”和各個章節,使用相應的介面也可以自己開發程式實現向微信發佈消息等業務功能。
微信開放平臺:是為開發者(程式員)提供的一個平臺,在這裡你可以將你的公眾平臺下的公眾號(訂閱號、服務號)綁定到你的開放平臺賬號下,從而可以基於訂閱號、服務號做更多的開發。公眾號中的訂閱號介面許可權是有限的,比如它無法獲得網頁授權的許可權,也就無法通過網頁授權獲取用戶的基本信息(比如openID、unionID等)。
另外,更多的開發場景可能是這樣:公司A擁有1個訂閱號用來發送資訊,1個服務號用來為用戶提供一些服務(比如查詢資料等),還有1個pc端的網站。那麼當用戶使用這些訂閱號、服務號和網站時,公司A的開發人員如何識別用戶身份(確認用戶身份的唯一性)。微信公眾平臺的技術文檔“開始開發”--“接入指南”已經對此進行了說明:
“由於開發者經常有需在多個平臺(移動應用、網站、公眾帳號)之間共通用戶帳號,統一帳號體系的需求,微信開放平臺(open.weixin.qq.com)提供了UnionID機制。開發者可通過OpenID來獲取用戶基本信息,而如果開發者擁有多個應用(移動應用、網站應用和公眾帳號,公眾帳號只有在被綁定到微信開放平臺帳號下後,才會獲取UnionID),可通過獲取用戶基本信息中的UnionID來區分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應用、網站應用和公眾帳號,用戶的UnionID是唯一的。換句話說,同一用戶,對同一個微信開放平臺帳號下的不同應用,UnionID是相同的。詳情請在微信開放平臺的資源中心-移動應用開發-微信登錄-授權關係介面調用指引-獲取用戶個人信息(UnionID機制)中查看。”
2,公眾號全局憑證(全局唯一調用憑證)access_token和網頁開發中的網頁授權access_token
兩者不是一個東西,但在調用介面時很容易混淆。簡單來說,網頁授權token只在微信授權網頁登錄時會用到,其他業務一般不會用到,而公眾號全局憑證的應用範圍則比較廣。
公眾號的全局憑證access_token獲取方法:使用公眾號的AppID和AppSecret調用獲取access_token的介面,AppID和AppSecret可以在可在微信公眾平臺官網-開發頁中獲得,介面調用地址和請求方式如下:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
參數說明:
1 參數說明 2 3 參數 是否必須 說明 4 grant_type 是 獲取access_token填寫client_credential 5 appid 是 第三方用戶(公眾號)唯一憑證 6 secret 是 第三方用戶(公眾號)唯一憑證密鑰,即appsecret
返回數據說明:
1 正常情況下,微信會返回下述JSON數據包給公眾號: 2 {"access_token":"ACCESS_TOKEN","expires_in":7200} 3 4 參數 說明 5 access_token 獲取到的憑證 6 expires_in 憑證有效時間,單位:秒 7 8 錯誤時微信會返回錯誤碼等信息,JSON數據包示例如下(該示例為AppID無效錯誤): 9 {"errcode":40013,"errmsg":"invalid appid"}
網頁開發主要實現的一個業務邏輯就是為用戶提供微信掃碼登錄網站功能(或用戶使用手機在微信瀏覽器中打開網站登錄),那麼這裡就涉及到了微信授權給第三方(網頁開發者)獲取用戶基本信息的問題。
網頁授權access_token獲得方法:先讓用戶同意授權獲取code,然後通過code換取網頁授權access_token,具體可參考:微信公眾平臺技術文檔--網頁開發--微信網頁授權一節或我之前寫的這篇文章:網站實現微信登錄之回調函數中登錄邏輯的處理--基於yii2開發的描述,獲取access_token後才能夠繼續調用其他介面進行其他操作。
參考:
完