亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

微信公眾平臺獲取access_token的方法步驟

2019-11-19 11:55:00
字體:
來源:轉載
供稿:網友

前言:access_token是微信公眾平臺接口的重要參數,很多接口都需要這個參數。

微信公眾平臺文檔地址:微信公眾平臺技術文檔

一、access_token說明

access_token是公眾號的全局唯一接口調用憑據,公眾號調用各接口時都需使用access_token。開發者需要進行妥善保存。access_token的存儲至少要保留512個字符空間。access_token的有效期目前為2個小時,需定時刷新,重復獲取將導致上次獲取的access_token失效。

1:公眾平臺的API調用所需的access_token的使用

1、建議公眾號開發者使用中控服務器統一獲取和刷新Access_token,其他業務邏輯服務器所使用的access_token均來自于該中控服務器,不應該各自去刷新,否則容易造成沖突,導致access_token覆蓋而影響業務;
2、目前Access_token的有效期通過返回的expire_in來傳達,目前是7200秒之內的值。中控服務器需要根據這個有效時間提前去刷新新access_token。在刷新過程中,中控服務器對外輸出的依然是老access_token,此時公眾平臺后臺會保證在刷新短時間內,新老access_token都可用,這保證了第三方業務的平滑過渡;
3、Access_token的有效時間可能會在未來有調整,所以中控服務器不僅需要內部定時主動刷新,還需要提供被動刷新access_token的接口,這樣便于業務服務器在API調用獲知access_token已超時的情況下,可以觸發access_token的刷新流程。

2:access_token的生成說明

公眾號可以使用AppID和AppSecret調用本接口來獲取access_token。AppID和AppSecret可在“微信公眾平臺-開發-基本配置”頁中獲得(需要已經成為開發者,且帳號沒有異常狀態)。調用接口時,請登錄“微信公眾平臺-開發-基本配置”提前將服務器IP地址添加到IP白名單中,點擊查看設置方法,否則將無法調用成功。

二、接口調用請求說明

1:接口調用

https請求方式: GET

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

2:參數說明

參數 是否必須 說明
grant_type 獲取access_token填寫client_credential
appid 第三方用戶唯一憑證
secret 第三方用戶唯一憑證密鑰,即appsecret

3:返回說明

正常情況下,微信會返回下述JSON數據包給公眾號:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

參數說明

參數 說明
access_token 獲取到的憑證
expires_in 憑證有效時間,單位:秒

錯誤時微信會返回錯誤碼等信息,JSON數據包示例如下(該示例為AppID無效錯誤):

{"errcode":40013,"errmsg":"invalid appid"}

4:返回碼說明

返回碼 說明
-1 系統繁忙,此時請開發者稍候再試
0 請求成功
40001 AppSecret錯誤或者AppSecret不屬于這個公眾號,請開發者確認AppSecret的正確性
40002 請確保grant_type字段值為client_credential
40164 調用接口的IP地址不在白名單中,請在接口IP白名單中進行設置

三、java接口開發

1:返回接口封裝類Token

/** * 類名: Token.java</br>  * 描述: 憑證</br>  */public class Token {  // 接口訪問憑證  private String accessToken;  // 憑證有效期,單位:秒  private int expiresIn;  public String getAccessToken() {    return accessToken;  }  public void setAccessToken(String accessToken) {    this.accessToken = accessToken;  }  public int getExpiresIn() {    return expiresIn;  }  public void setExpiresIn(int expiresIn) {    this.expiresIn = expiresIn;  }}

2:獲取接口訪問憑證

  /**   * 獲取接口訪問憑證   * @param appid 憑證   * @param appsecret 密鑰   * @return   */  public static Token getToken(String appid, String appsecret) {    Token token = null;    String requestUrl = WeixinConstants.TOKEN_URL.replace("APPID", appid).replace("APPSECRET", appsecret);    // 發起GET請求獲取憑證    JSONObject jsonObject = httpsRequest(requestUrl, "GET", null);    if (null != jsonObject) {      try {        token = new Token();        token.setAccessToken(jsonObject.getString("access_token"));        token.setExpiresIn(jsonObject.getInt("expires_in"));      } catch (JSONException e) {        token = null;        // 獲取token失敗        log.error("獲取token失敗 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));      }    }    return token;  }

3:http請求工具類

  /**   * 發送https請求   * @param requestUrl 請求地址   * @param requestMethod 請求方式(GET、POST)   * @param outputStr 提交的數據   * @return JSONObject(通過JSONObject.get(key)的方式獲取json對象的屬性值)   */  public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) {    JSONObject jsonObject = null;    try {      // 創建SSLContext對象,并使用我們指定的信任管理器初始化      TrustManager[] tm = { new MyX509TrustManager() };      SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");      sslContext.init(null, tm, new java.security.SecureRandom());      // 從上述SSLContext對象中得到SSLSocketFactory對象      SSLSocketFactory ssf = sslContext.getSocketFactory();      URL url = new URL(requestUrl);      HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();      conn.setSSLSocketFactory(ssf);      conn.setDoOutput(true);      conn.setDoInput(true);      conn.setUseCaches(false);      // 設置請求方式(GET/POST)      conn.setRequestMethod(requestMethod);      // 當outputStr不為null時向輸出流寫數據      if (null != outputStr) {        OutputStream outputStream = conn.getOutputStream();        // 注意編碼格式        outputStream.write(outputStr.getBytes("UTF-8"));        outputStream.close();      }      // 從輸入流讀取返回內容      InputStream inputStream = conn.getInputStream();      InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");      BufferedReader bufferedReader = new BufferedReader(inputStreamReader);      String str = null;      StringBuffer buffer = new StringBuffer();      while ((str = bufferedReader.readLine()) != null) {        buffer.append(str);      }      // 釋放資源      bufferedReader.close();      inputStreamReader.close();      inputStream.close();      inputStream = null;      conn.disconnect();      jsonObject = JSONObject.fromObject(buffer.toString());    } catch (ConnectException ce) {      log.error("連接超時:{}", ce);    } catch (Exception e) {      log.error("https請求異常:{}", e);    }    return jsonObject;  }

4:信任管理器工具類

/** * 類名: MyX509TrustManager.java</br>  * 描述: 信任管理器</br>  */public class MyX509TrustManager implements X509TrustManager {  // 檢查客戶端證書  public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {  }  // 檢查服務器端證書  public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {  }  // 返回受信任的X509證書數組  public X509Certificate[] getAcceptedIssuers() {    return null;  }}

四、總結

上述java接口簡單歸納就是按照接口地址通過GET方式傳遞appid和appsecret兩個參數發送http請求,獲取access_token??此坪芎唵?,請求后也可以獲取access_token參數,但是微信公眾平臺的接口文檔也說明了,access_token的有效期是7200秒,而且還需要中控服務器去控制access_token的刷新,所以建議將生產的access_token存放在redis中,redis緩存的有效時間等于access_token的有效時間。這樣可以避免接口的不必要請求,減少并發量。先去redis中判斷access_token是否有效,有效就獲取,無效再去請求接口。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久成人| 欧美成人免费在线观看| 久久人人看视频| 国产亚洲一区二区精品| 亚洲欧美成人精品| 亚洲精品有码在线| 亚洲国产成人一区| 久久久久女教师免费一区| 黑人狂躁日本妞一区二区三区| 久久成人精品电影| 97精品一区二区三区| 色一情一乱一区二区| 亚洲va欧美va在线观看| 色综合影院在线| 国产精品三级久久久久久电影| 亚洲精品久久久久久久久| 日本老师69xxx| 97福利一区二区| 久久影视免费观看| 色诱女教师一区二区三区| 久久久久国产精品www| 久久国产精品电影| 久久视频这里只有精品| 久久99青青精品免费观看| 久久久久久久久久久av| 国产一区二区三区18| 精品美女国产在线| 国产91精品久久久| 久久久久亚洲精品国产| 色偷偷噜噜噜亚洲男人| 午夜精品久久久99热福利| 久久91超碰青草是什么| 日韩av大片在线| 91av视频在线播放| 亚洲国产91色在线| 色噜噜久久综合伊人一本| xx视频.9999.com| 性金发美女69hd大尺寸| 国产日韩综合一区二区性色av| 一区二区国产精品视频| 91精品国产综合久久香蕉的用户体验| 最近中文字幕2019免费| 亚洲社区在线观看| 中文字幕亚洲综合久久筱田步美| 日韩中文字幕在线观看| 欧美激情中文字幕乱码免费| 黄色精品一区二区| 韩国三级电影久久久久久| 中文字幕不卡在线视频极品| 欧美日韩国产中文精品字幕自在自线| 精品爽片免费看久久| 亚洲日本中文字幕| 久久91超碰青草是什么| 亚洲伊人久久大香线蕉av| 国产成人激情小视频| 久久久久久国产精品美女| 欧美国产第二页| 两个人的视频www国产精品| 亚洲最大中文字幕| 国产成人精品网站| 日韩成人在线网站| 欧美激情videoshd| 国产精品主播视频| 中文字幕免费精品一区| 日韩美女在线观看| 国产精品美女呻吟| 国产精品jizz在线观看麻豆| 国产色综合天天综合网| 国产精品专区h在线观看| 亚洲男人第一av网站| 17婷婷久久www| 中文字幕精品www乱入免费视频| 亚洲黄色成人网| 国产精品中文字幕在线观看| 日韩激情av在线播放| 欧美午夜电影在线| 欧美孕妇与黑人孕交| 欧美国产日韩精品| 精品欧美激情精品一区| 欧美亚洲日本网站| 91亚洲国产成人久久精品网站| 欧美高跟鞋交xxxxhd| 国产在线观看精品一区二区三区| 欧美在线视频观看| 亚洲人成77777在线观看网| 精品国产成人在线| 久久精品青青大伊人av| 欧美激情一区二区三区高清视频| 91精品国产综合久久香蕉最新版| 日韩美女视频中文字幕| 中文字幕日韩专区| 欧美国产日韩在线| 日韩高清免费观看| 欧美国产日本高清在线| 日本欧美中文字幕| 最近2019中文字幕大全第二页| 国产精品久久久久久影视| 欧美激情一区二区三级高清视频| 日韩精品丝袜在线| 欧美精品videosex极品1| 亚洲精品自拍视频| 久久久欧美精品| **欧美日韩vr在线| 亚洲国产高清自拍| 日韩精品免费在线观看| 欧美激情精品久久久久久| 中文字幕亚洲一区| 精品视频久久久| 亚洲一区二区三区在线免费观看| 亚洲tv在线观看| 国产精品日韩久久久久| 97超碰蝌蚪网人人做人人爽| 992tv在线成人免费观看| 欧美黑人狂野猛交老妇| 伦理中文字幕亚洲| 一本一道久久a久久精品逆3p| 久久影视三级福利片| 欧美网站在线观看| 中文字幕综合在线| 亚洲色图在线观看| 日韩久久精品电影| 欧美日韩国产91| 亚洲经典中文字幕| 成人黄色片在线| 国内成人精品视频| 8090成年在线看片午夜| 国产日韩在线看| 亚洲久久久久久久久久久| 精品毛片三在线观看| 国产精品xxx视频| 中文字幕在线看视频国产欧美在线看完整| 欧美做受高潮电影o| 亚洲片国产一区一级在线观看| 亚洲成avwww人| 精品久久久久久国产| 国产欧美va欧美va香蕉在| 九九久久久久99精品| 成人亚洲欧美一区二区三区| 国产欧美久久久久久| 在线播放国产一区中文字幕剧情欧美| 综合久久五月天| 日韩动漫免费观看电视剧高清| 久久免费成人精品视频| 国产日产欧美a一级在线| 亚洲网址你懂得| 欧美日韩精品在线播放| 91精品在线一区| 国产精品视频在线播放| 亚洲乱码av中文一区二区| 久久国产精品影视| 一本色道久久综合狠狠躁篇怎么玩| 亚洲人成免费电影| 亚洲欧美在线x视频| 精品亚洲国产视频| 久久人人爽人人爽人人片av高清| 69久久夜色精品国产69乱青草| 国产一区二中文字幕在线看| 欧美性在线视频| 青青草国产精品一区二区| 国产欧美精品一区二区| 国产69精品久久久久久| 5566日本婷婷色中文字幕97| 欧美色图在线视频| 91精品国产高清久久久久久91|