欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

微信開發(fā)之a(chǎn)ccess_token的示例分析

小編給大家分享一下微信開發(fā)之a(chǎn)ccess_token的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)主營陵川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,陵川h5重慶小程序開發(fā)搭建,陵川網(wǎng)站營銷推廣歡迎陵川等地區(qū)企業(yè)咨詢

首先不得不提到access_token的分類,一是普通access_token,二是網(wǎng)頁授權(quán)access_token。其中前者是用于調(diào)用微信提供的各種借口,作為開發(fā)者的調(diào)用憑證,一般有效期為7200S,獲取次數(shù)受限;另一種是第三方網(wǎng)頁若需要使用用戶微信賬戶登錄,需要獲取該access_token從而來獲取用戶微信賬戶信息。這個(gè)一定得區(qū)分開。

另外獲取用戶微信賬戶信息也有兩種情況,一是普通的獲取用戶信息,它只需要調(diào)用微信用戶信息接口即可獲取,因而使用到的是第一種普通access_token,另一種就是上面提到的網(wǎng)頁授權(quán)時(shí)獲取用戶信息。一旦二者概念混淆,則會(huì)報(bào)出invalid access_token錯(cuò)誤。

對于第一種普通access_token,需要注意到的是,它是全局性的,就是一旦獲取到了新的access_token,原有的access_token就會(huì)失效,而無法調(diào)用相關(guān)接口。而這種特性,導(dǎo)致的情況是,多個(gè)不同進(jìn)程相互獨(dú)立獲取access_token時(shí),會(huì)直接影響到其他進(jìn)程調(diào)用相關(guān)微信接口,這種異常通常對應(yīng)著 access_token失效異常。

為了解決這種情況,必須獨(dú)立啟動(dòng)一個(gè)線程定時(shí)去獲取access_token,并由該線程向所有其他線程提供該access_token,從而避免access_token獲取混亂導(dǎo)致的失效問題。我實(shí)現(xiàn)該想法的方式是采用timer定時(shí)器,定時(shí)刷新獲取access_token,并將其存入到指定property文件中,其他線程通過讀取該文件中的access_token值,來調(diào)用相關(guān)接口。

@Controller
@RequestMapping(value = "/timer")
public class AcessTokenTimer {
  private static final String APPID = "*************";
  private static final String APPSECRET = "*********";
  private Timer timer = new Timer(true);
  @PostConstruct
  public void setToken(){
    if(null == timer){
      timer = new Timer(true);
    }
    timer.scheduleAtFixedRate(new TimerTask() {
      @Override
      public void run() {
        try {
          SystemUtil.setString("token.properties","access_token", UrlGETUtil.GET("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+APPID+"&secret="+APPSECRET).getString("access_token"));
        }catch (Exception e){
          e.printStackTrace();
        }
      }
    },0,3600*1000);
  }
}

 在定時(shí)器任務(wù)中獲取和寫入access_token值。該類基于SpringMVC框架,此處用到了@PostConstruct標(biāo)簽,它的作用是,在Spring框架初始化完成之后,及執(zhí)行對應(yīng)方法體,直白地說就是開機(jī)自啟。

access_token失效和刷新

微信開發(fā)之a(chǎn)ccess_token的示例分析

目前想到的比較理想的解決方案就是:服務(wù)器發(fā)現(xiàn)功能異常時(shí),刷新access_token并更新redis,然后再次調(diào)用接口。

以上是“微信開發(fā)之a(chǎn)ccess_token的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前題目:微信開發(fā)之a(chǎn)ccess_token的示例分析
瀏覽路徑:http://chinadenli.net/article24/jgghje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化外貿(mào)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈網(wǎng)站排名靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司