1. 程式人生 > >獲取access_token的中控伺服器

獲取access_token的中控伺服器

access_token 是全域性唯一介面呼叫憑據,開發者呼叫各介面時都需使用 access_token,請妥善儲存。access_token 的儲存至少要保留512個字元空間。access_token 的有效期目前為2個小時,需定時重新整理,重複獲取將導致上次獲取的 access_token 失效。

獲取 access_token

公眾平臺的 API 呼叫所需的 access_token 的使用及生成方式說明:

  1. 為了保密 appsecrect,第三方需要一個 access_token 獲取和重新整理的中控伺服器。而其他業務邏輯伺服器所使用的 access_token 均來自於該中控伺服器,不應該各自去重新整理,否則會造成 access_token 覆蓋而影響業務;
  2. 目前 access_token 的有效期通過返回的 expires_in 來傳達,目前是7200秒之內的值。中控伺服器需要根據這個有效時間提前去重新整理新 access_token。在重新整理過程中,中控伺服器對外輸出的依然是老 access_token,此時公眾平臺後臺會保證在重新整理短時間內,新老 access_token 都可用,這保證了第三方業務的平滑過渡;
  3. access_token 的有效時間可能會在未來有調整,所以中控伺服器不僅需要內部定時主動重新整理,還需要提供被動重新整理 access_token 的介面,這樣便於業務伺服器在 API 呼叫獲知 access_token 已超時的情況下,可以觸發 access_token 的重新整理流程。

開發者可以使用 AppID 和 AppSecret 呼叫本介面來獲取 access_token。AppID 和 AppSecret 可登入微信公眾平臺官網-設定-開發設定中獲得(需要已經繫結成為開發者,且帳號沒有異常狀態)。AppSecret 生成後請自行儲存,因為在公眾平臺每次生成檢視都會導致 AppSecret 被重置。注意呼叫所有微信介面時均需使用 https 協議。如果第三方不使用中控伺服器,而是選擇各個業務邏輯點各自去重新整理 access_token,那麼就可能會產生衝突,導致服務不穩定。

介面地址:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

HTTP請求方式:

GET

引數說明 :

引數 必填 說明
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"}

流程圖:

1、專案啟動時appid和appsecret資訊從資料庫讀取到redis
2、定時任務每隔一段時間從資料庫把最新的資料讀取到Redis中