微信開放平臺基本流程概述

很早之前做過微信開發平臺相關的項目,由於開放平臺的文檔比較散亂,所以當時自己寫了一些筆記,今天翻出來後稍稍修改了下拿出來給大家分享一下。以後應該會不定期更新微信或者其他方面的實用性的東西。

具體步驟參考微信開放平臺
當然不是很推薦馬上看官方文檔,花的時間比較長,先把整體步驟瞭解一下

php 強烈推薦使用 easywechat

事先準備

需要預先設置的值

第三方開放平臺

  • COMPONENT_APP_ID
  • COMPONENT_APP_SECRET
  • COMPONENT_TOKEN
  • COMPONENT_AES_KEY

公衆號

  • 管理員微信

基本流程

1.自動發放component_verify_ticket

微信開放平臺會每隔10分鐘向開放平臺後臺設定的授權URL發送component_verify_ticket
(詳情可見文檔,正常情況需要微信的相關解密,用easywecaht處理則可不需要關注數據格式)

2.獲取component_access_token

使用component_verify_ticket可以向https://api.weixin.qq.com/cgi-bin/component/api_component_tokenPOST發送參數

"component_appid "= COMPONENT_APP_ID
"component_appsecret" = COMPONENT_APP_SECRET
"component_verify_ticket" = component_verify_ticket

即可獲得component_access_tokenexpires_in

3.獲取預授權碼

當用戶(即公衆號管理者)需要授權給你的時候,需要獲取授權碼,獲取授權碼之前,需要獲取預授權碼。獲取預授權碼需要向
https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxx
POST發送參數(注意url中的xxx)

"component_appid" = COMPONENT_APP_ID

獲得pre_auth_code(預授權碼)和expires_in(有效期)。

4.生成二維碼所在網址

獲取到預授權碼以後,可以通過讓用戶(微信管理員)訪問
https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxx&pre_auth_code=xxx&redirect_uri=xxx
其中的’xxx’爲以下數值

  • component_appid component_appid
  • pre_auth_code 預授權碼
  • redirect_uri 回調頁面

該網址只有一個二維碼,公衆號管理員通過掃碼則可以授權給你的開放平臺。

5.用戶掃碼授權,獲取授權碼

用戶掃碼完後,點擊授權之後會進入設定的授權回調頁面 redirect_url?auth_code=xxx&expires_in=600。url附帶參數auth_code(授權碼)和expires_in(有效期)。

6.使用授權碼獲取授權信息

之後就能使用獲取到的授權碼獲取公衆號接口調用憑據和授權信息了。
https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=xxx使用POST發送參數(注意url中的xxx爲需要填寫的參數)

"component_appid" = COMPONENT_APP_ID
"authorization_code" = auth_code

會獲得授權信息

{
"authorization_info": {
  "authorizer_appid": "wxf8b4f85f3a794e77",
  "authorizer_access_token":"QXjUqNqfYVH0yBE1iI_7vuN_9gQbpjfK7hYwJ3P7xOa88a89-Aga5x1NMYJyB8G2yKt1KCl0nPC3W9GJzw0Zzq_dBxc8pxIGUNi_bFes0qM",
  "expires_in": 7200,
  "authorizer_refresh_token": "dTo-YCXPL4llX-u1W1pPpnp8Hgm4wpJtlR6iV0doKdY",
  "func_info": [
    {
      "funcscope_category": {
        "id": 1 
       }
    },
    {
      "funcscope_category": {
        "id": 2
      }
    },
    {
      "funcscope_category": {
        "id": 3
      }
    }
   ]
  }
} 

authorization_info	授權信息
authorizer_appid	授權方appid
authorizer_access_token	授權方接口調用憑據(在授權的公衆號或小程序具備API權限時,纔有此返回值),也簡稱爲令牌
expires_in	有效期(在授權的公衆號或小程序具備API權限時,纔有此返回值)

authorizer_refresh_token	接口調用憑據刷新令牌(在授權的公衆號具備API權限時,纔有此返回值),刷新令牌主要用於第三方平臺獲取和刷新已授權用戶的access_token,只會在授權時刻提供,請妥善保存。 一旦丟失,只能讓用戶重新授權,才能再次拿到新的刷新令牌

func_info	授權給開發者的權限集列表,ID爲1到26分別代表: 1、消息管理權限 2、用戶管理權限 3、帳號服務權限 4、網頁服務權限 5、微信小店權限 6、微信多客服權限 7、羣發與通知權限 8、微信卡券權限 9、微信掃一掃權限 10、微信連WIFI權限 11、素材管理權限 12、微信搖周邊權限 13、微信門店權限 15、自定義菜單權限 16、獲取認證狀態及信息 17、帳號管理權限(小程序) 18、開發管理與數據分析權限(小程序) 19、客服消息管理權限(小程序) 20、微信登錄權限(小程序) 21、數據分析權限(小程序) 22、城市服務接口權限 23、廣告管理權限 24、開放平臺帳號管理權限 25、 開放平臺帳號管理權限(小程序) 26、微信電子發票權限 41、搜索widget的權限 請注意: 1)該字段的返回不會考慮公衆號是否具備該權限集的權限(因爲可能部分具備),請根據公衆號的帳號類型和認證情況,來判斷公衆號的接口權限。

重點爲authorizer_access_token授權方接口調用憑據,用於調用公衆號API。以及authorizer_refresh_token接口調用憑據刷新令牌。

7.更新授權方令牌(不是必須)

authorizer_access_token過期時需要重新獲取(不確定是否該數據會過期,我之前是沒有碰到過期,可能是由於easywechat自動處理了,有興趣的同學可以自己測試下)
<https:// api.weixin.qq.com /cgi-bin/component/api_authorizer_token?component_access_token=xxx>使用POST發送(注意url中的xxx)

"component_appid":COMPONENT_APP_ID,
"authorizer_appid":authorizer_appid,
"authorizer_refresh_token":authorizer_refresh_token,

獲取

{
"authorizer_access_token": "aaUl5s6kAByLwgV0BhXNuIFFUqfrR8vTATsoSHukcIGqJgrc4KmMJ-JlKoC_-NKCLBvuU1cWPv4vDcLN8Z0pn5I45mpATruU0b51hzeT1f8", 
"expires_in": 7200, 
"authorizer_refresh_token":
"BstnRqgTJBXb9N2aJq6L5hzfJwP406tpfahQeLNxX0w"
}

authorizer_access_token	授權方令牌
expires_in	有效期,爲2小時
authorizer_refresh_token 刷新授權方令牌

8.獲取授權方的帳號基本信息

這一步最好在用戶授權後的回調頁面進行,如果獲取公衆號信息失敗或者存儲公衆號相關信息失敗則可以立即提示用戶重新授權。
https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info?component_access_token=xxxx發送POST請求(注意url中的xxx)

"component_appid":COMPONENT_APP_ID ,
"authorizer_appid": authorizer_appid

9.授權完畢

可以通過自己的平臺來處理公衆號的需求了,之後就和開發普通公衆號沒太大區別,附帶公衆號文檔,需要什麼則調用什麼。PS:相關功能必須公衆號授權並且有相關權限才能使用。

其他

獲取授權方的選項設置信息
該API用於獲取授權方的公衆號或小程序的選項設置信息,如:地理位置上報,語音識別開關,多客服開關。注意,獲取各項選項設置信息,需要有授權方的授權,詳見權限集說明。

設置授權方的選項信息
該API用於設置授權方的公衆號或小程序的選項信息,如:地理位置上報,語音識別開關,多客服開關。注意,設置各項選項設置信息,需要有授權方的授權,詳見權限集說明。

推送授權相關通知 (這個比較實用)
當公衆號對第三方平臺進行授權、取消授權、更新授權後,微信服務器會向第三方平臺方的授權事件接收URL(創建第三方平臺時填寫)推送相關通知。

上述內容大致講了開放平臺的初步流程,還是最上面的話,php強烈推薦easywechat,省心省力。

歡迎轉載,請註明出處 https://me.csdn.net/ztq521

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章