最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解微信開發(fā)之a(chǎn)ccess_token之坑

 更新時(shí)間:2018年10月12日 11:37:22   作者:slanf  
access_token分類一是普通access_token,二是網(wǎng)頁(yè)授權(quán)access_token。這篇文章主要介紹了詳解微信開發(fā)之a(chǎn)ccess_token之坑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

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

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

為了解決這種情況,必須獨(dú)立啟動(dòng)一個(gè)線程定時(shí)去獲取access_token,并由該線程向所有其他線程提供該access_token,從而避免access_token獲取混亂導(dǎo)致的失效問(wèn)題。我實(shí)現(xiàn)該想法的方式是采用timer定時(shí)器,定時(shí)刷新獲取access_token,并將其存入到指定property文件中,其他線程通過(guò)讀取該文件中的access_token值,來(lái)調(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í)行對(duì)應(yīng)方法體,直白地說(shuō)就是開機(jī)自啟。

access_token失效和刷新

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring簡(jiǎn)明分析Bean作用域

    Spring簡(jiǎn)明分析Bean作用域

    scope用來(lái)聲明容器中的對(duì)象所應(yīng)該處的限定場(chǎng)景或者說(shuō)該對(duì)象的存活時(shí)間,即容器在對(duì)象進(jìn)入其 相應(yīng)的scope之前,生成并裝配這些對(duì)象,在該對(duì)象不再處于這些scope的限定之后,容器通常會(huì)銷毀這些對(duì)象,這篇文章主要介紹了Spring中的Bean作用域,需要的朋友可以參考下
    2022-07-07
  • Java?IO流—異常及捕獲異常處理?try…catch…finally

    Java?IO流—異常及捕獲異常處理?try…catch…finally

    這篇文章主要介紹了Java?IO流—異常及捕獲異常處理?try…catch…finally,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot程序加密保護(hù)代碼不被反編譯

    SpringBoot程序加密保護(hù)代碼不被反編譯

    在Java開發(fā)中,保護(hù)代碼不被反編譯是非常重要的,尤其是涉及核心業(yè)務(wù)邏輯或關(guān)鍵技術(shù)時(shí),常用的反編譯工具如 jadx 可以輕松將 Java 字節(jié)碼還原成可讀的源代碼,本文將介紹如何通過(guò)加密和混淆技術(shù),在SpringBoot程序中實(shí)現(xiàn)反編譯保護(hù)
    2024-12-12
  • spring學(xué)習(xí)之util:properties的使用

    spring學(xué)習(xí)之util:properties的使用

    這篇文章主要介紹了spring學(xué)習(xí)之util:properties的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot參數(shù)校驗(yàn):@Valid與@Validated使用詳解

    SpringBoot參數(shù)校驗(yàn):@Valid與@Validated使用詳解

    這篇文章主要介紹了SpringBoot參數(shù)校驗(yàn):@Valid與@Validated使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 淺談Sharding-JDBC強(qiáng)制路由案例實(shí)戰(zhàn)

    淺談Sharding-JDBC強(qiáng)制路由案例實(shí)戰(zhàn)

    本文主要介紹了淺談Sharding-JDBC強(qiáng)制路由案例實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • IDEA 包轉(zhuǎn)模塊的解決步驟

    IDEA 包轉(zhuǎn)模塊的解決步驟

    很多朋友遇到這樣一個(gè)問(wèn)題,直接在idea拉取代碼,發(fā)現(xiàn)創(chuàng)建的模塊包類型不一樣了,類似這樣的問(wèn)題該如何處理呢?很多朋友向小編求助,在這統(tǒng)一回答大家,需要的朋友參考下本文吧
    2021-06-06
  • java中如何判斷對(duì)象是否是垃圾

    java中如何判斷對(duì)象是否是垃圾

    這篇文章主要介紹了java中如何判斷對(duì)象是否是垃圾,Java有兩種算法判斷對(duì)象是否是垃圾:引用計(jì)數(shù)算法和可達(dá)性分析算法,需要的朋友可以參考下
    2023-04-04
  • mybatis-plus如何修改日志只打印SQL語(yǔ)句不打印查詢結(jié)果

    mybatis-plus如何修改日志只打印SQL語(yǔ)句不打印查詢結(jié)果

    這篇文章主要介紹了mybatis-plus如何修改日志只打印SQL語(yǔ)句不打印查詢結(jié)果問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Spring?Cloud?中自定義外部化擴(kuò)展機(jī)制原理及實(shí)戰(zhàn)記錄

    Spring?Cloud?中自定義外部化擴(kuò)展機(jī)制原理及實(shí)戰(zhàn)記錄

    這篇文章主要介紹了Spring?Cloud?中自定義外部化擴(kuò)展機(jī)制原理及實(shí)戰(zhàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02

最新評(píng)論

凌云县| 台州市| 莎车县| 九龙城区| 鹰潭市| 禄劝| 华阴市| 长春市| 大英县| 泽州县| 武冈市| 房产| 宁晋县| 邳州市| 乌恰县| 井陉县| 逊克县| 沈丘县| 永福县| 富源县| 洛浦县| 项城市| 贡山| 娄烦县| 镇沅| 峨山| 凉城县| 抚远县| 柞水县| 遵化市| 曲麻莱县| 五台县| 化德县| 道真| 石阡县| 利津县| 论坛| 北流市| 缙云县| 科技| 巴青县|