程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 微信開發之分清公眾平台和開放平台、公眾號全局憑證和網頁授權憑證,公眾全局

微信開發之分清公眾平台和開放平台、公眾號全局憑證和網頁授權憑證,公眾全局

編輯:關於PHP編程

微信開發之分清公眾平台和開放平台、公眾號全局憑證和網頁授權憑證,公眾全局


雖然公司自己的網站和給客戶開發的項目中都涉及到了微信開發,自己也寫了關於微信開發的兩篇文章,但感覺自己對微信開發中的一些概念還是容易混淆,今天浏覽了下微信公眾平台、微信開放平台的後台和相關文檔,算是弄清楚了下面這些東西,至於其他還沒弄清楚的,以後想到了再說。

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後才能夠繼續調用其他接口進行其他操作。

 

參考:

微信公眾平台技術文檔

微信開放平台技術文檔


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved