很早之前做過微信開發平臺相關的項目,由於開放平臺的文檔比較散亂,所以當時自己寫了一些筆記,今天翻出來後稍稍修改了下拿出來給大家分享一下。以後應該會不定期更新微信或者其他方面的實用性的東西。
具體步驟參考微信開放平臺
當然不是很推薦馬上看官方文檔,花的時間比較長,先把整體步驟瞭解一下
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_token用POST
發送參數
"component_appid "= COMPONENT_APP_ID
"component_appsecret" = COMPONENT_APP_SECRET
"component_verify_ticket" = component_verify_ticket
即可獲得component_access_token
和expires_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_appidpre_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