access_token是公眾號的全局唯一接口調(diào)用憑據(jù),公眾號調(diào)用各接口時都需使用access_token。開發(fā)者需要進行妥善保存。access_token的存儲至少要保留512個字符空間。access_token的有效期目前為2個小時,需定時刷新,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。
公眾平臺的API調(diào)用所需的access_token的使用及生成方式說明:
1、建議公眾號開發(fā)者使用中控服務(wù)器統(tǒng)一獲取和刷新access_token,其他業(yè)務(wù)邏輯服務(wù)器所使用的access_token均來自于該中控服務(wù)器,不應(yīng)該各自去刷新,否則容易造成沖突,導(dǎo)致access_token覆蓋而影響業(yè)務(wù);
2、目前access_token的有效期通過返回的expires_in來傳達,目前是7200秒之內(nèi)的值。中控服務(wù)器需要根據(jù)這個有效時間提前去刷新新access_token。在刷新過程中,中控服務(wù)器可對外繼續(xù)輸出的老access_token,此時公眾平臺后臺會保證在5分鐘內(nèi),新老access_token都可用,這保證了第三方業(yè)務(wù)的平滑過渡;
3、access_token的有效時間可能會在未來有調(diào)整,所以中控服務(wù)器不僅需要內(nèi)部定時主動刷新,還需要提供被動刷新access_token的接口,這樣便于業(yè)務(wù)服務(wù)器在API調(diào)用獲知access_token已超時的情況下,可以觸發(fā)access_token的刷新流程。
4、對于可能存在風(fēng)險的調(diào)用,在開發(fā)者進行獲取 access_token調(diào)用時進入風(fēng)險調(diào)用確認流程,需要用戶管理員確認后才可以成功獲取。具體流程為:
開發(fā)者通過某IP發(fā)起調(diào)用->平臺返回錯誤碼[89503]并同時下發(fā)模板消息給公眾號管理員->公眾號管理員確認該IP可以調(diào)用->開發(fā)者使用該IP再次發(fā)起調(diào)用->調(diào)用成功。
如公眾號管理員第一次拒絕該IP調(diào)用,用戶在1個小時內(nèi)將無法使用該IP再次發(fā)起調(diào)用,如公眾號管理員多次拒絕該IP調(diào)用,該IP將可能長期無法發(fā)起調(diào)用。平臺建議開發(fā)者在發(fā)起調(diào)用前主動與管理員溝通確認調(diào)用需求,或請求管理員開啟IP白名單功能并將該IP加入IP白名單列表。
公眾號和小程序均可以使用AppID和AppSecret調(diào)用本接口來獲取access_token。AppID和AppSecret可在“微信公眾平臺-開發(fā)-基本配置”頁中獲得(需要已經(jīng)成為開發(fā)者,且賬號沒有異常狀態(tài))。**調(diào)用接口時,請登錄“微信公眾平臺-開發(fā)-基本配置”提前將服務(wù)器IP地址添加到IP白名單中,點擊查看設(shè)置方法,否則將無法調(diào)用成功。**小程序無需配置IP白名單。
接口調(diào)用請求說明
https請求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
參數(shù)說明
參數(shù) | 是否必須 | 說明 |
---|---|---|
grant_type | 是 | 獲取access_token填寫client_credential |
appid | 是 | 第三方用戶唯一憑證 |
secret | 是 | 第三方用戶唯一憑證密鑰,即appsecret |
返回說明
正常情況下,微信會返回下述JSON數(shù)據(jù)包給公眾號:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
參數(shù)說明
參數(shù) | 說明 |
---|---|
access_token | 獲取到的憑證 |
expires_in | 憑證有效時間,單位:秒 |
錯誤時微信會返回錯誤碼等信息,JSON數(shù)據(jù)包示例如下(該示例為AppID無效錯誤):
{"errcode":40013,"errmsg":"invalid appid"}
返回碼說明
返回碼 | 說明 |
---|---|
-1 | 系統(tǒng)繁忙,此時請開發(fā)者稍候再試 |
0 | 請求成功 |
40001 | AppSecret錯誤或者AppSecret不屬于這個公眾號,請開發(fā)者確認AppSecret的正確性 |
40002 | 請確保grant_type字段值為client_credential |
40164 | 調(diào)用接口的IP地址不在白名單中,請在接口IP白名單中進行設(shè)置。 |
89503 | 此IP調(diào)用需要管理員確認,請聯(lián)系管理員 |
89501 | 此IP正在等待管理員確認,請聯(lián)系管理員 |
89506 | 24小時內(nèi)該IP被管理員拒絕調(diào)用兩次,24小時內(nèi)不可再使用該IP調(diào)用 |
89507 | 1小時內(nèi)該IP被管理員拒絕調(diào)用一次,1小時內(nèi)不可再使用該IP調(diào)用 |
使用網(wǎng)頁調(diào)試工具調(diào)試該接口