微信公眾平台開發-access_token獲取及應用(含源碼)
作者: 孟祥磊-《微信公眾平台開發實例教程》
很多系統中都有access_token參數,對於微信公眾平台的access_token參數,微信服務器判斷該公眾平台所擁有的權限,允許或者禁止公眾平台進行當前的操作。
一、access_token作用及使用場景
(一)access_token的作用
access_token由公眾號的AppID和AppSecret組成,所以具有識別公眾號的作用。
(二)access_token的使用場景
可以把它比喻成一個鑰匙,通過access_token,微信公眾號才能調用微信接口,如微信服務器 IP的獲取接口,長鏈接轉短鏈接接口、獲取微信關注用戶列表及獲取用戶基本信息的接口等等。
微信服務器也是通過access_token來判斷公眾號是否有調用該接口的權限。如在調用微信服務器IP獲取接口時,需要帶上access_token參數,微信在接收到請求后會先判斷該access_token的公眾號是否具有獲取微信服務器IP的接口權限,如果有,返回查詢的數據,如果沒有,會返回該公眾號無獲取微信服務器IP接口的權限。
(三)access_token的特點
access_token存儲至少要保留512個字符空間。access_token的有效期目前為2個小時,重復獲取將導致上次獲取的access_token失效。
(四)access_token的存儲調用策略
access_token在后期應用開發中應采取的策略,如圖所示,將access_token存儲到中控服務器,所有需要用到該參數的程序都應訪問中控服務器獲取access_token,中控服務器判斷當前access_token是否有效並刷新即可。

(五)獲取access_token值
1.接口說明
http請求方式: GET
接口調用地址:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
調用參數說明,如表所示:
| 參數 |
是否必須 |
說明 |
| grant_type |
是 |
獲取access_token填寫client_credential |
| appid |
是 |
第三方用戶唯一憑證 |
| secret |
是 |
第三方用戶唯一憑證密鑰,即appsecret |
返回說明:
正常情況下,微信會返回JSON數據包給公眾號:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
返回參數說明:
| 參數 |
說明 |
| access_token |
獲取到的憑證 |
| expires_in |
憑證有效時間,單位:秒 |
錯誤時微信會返回錯誤碼等信息,JSON數據包示例如下(該示例為AppID無效錯誤):
{"errcode":40013,"errmsg":"invalid appid"}
2.參數AppId和AppSecret
獲取access_token時會用到兩個非常重要的參數,即AppId和AppSecret,可在開發-基本配置中查看如圖所示。

3.獲取access_token
<?php /* *獲取微信token */ //1.包含wei_function.php require('wei_function.php'); $appid="wx78478e595939c538"; $secret="5540e8ccab4f71dfad752f73cfb85780"; //2.獲取token地址,並替換$appid和$secret $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret.""; //3.調用wei_function.php文件內的getdata()函數 $output=getdata($url); //4.json_decode解碼JSON數據轉變為數組,並通過 $token=object_array(json_decode($output)); //輸出數組 //print_r($token); //5.輸出access_token echo $token['access_token']; ?>
代碼解析
require('wei_function.php');該函數文件可以購買《微信公眾平台開發實例教程》,在該書中第95頁有詳細講解。
孟祥磊公開課交流群號:230175725
