微信官方参考文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183

 
基本说明:
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
 
调用方式:
公众号可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在“微信公众平台-开发-基本配置”页中获得(需要已经成为开发者,且帐号没有异常状态)。调用接口时,请登录“微信公众平台-开发-基本配置”提前将服务器IP地址添加到IP白名单中,点击查看设置方法,否则将无法调用成功。
 
特别说明:建议公众号开发者使用中控服务器统一获取和刷新Access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务;
 
了解这些信息后,我们需要理解确定如下几点:
1、统一token调用方法,其他地方需用到token均采用本方法获取;
2、请求获取token信息接口的实现;
3、token数据存储至本地数据库;
4、判断是否需要重新获取token还是直接从本地数据库中查询;
 
下面来进行具体的实现:
首先看一下整体的类图:
玩玩微信公众号Java版之三:access_token及存储access_token
 玩玩微信公众号Java版之三:access_token及存储access_token

那么在获取token时,可以根据appid和appsecret来获取,其中判断是否需要更新的方法为:

能否获取到当前仍有效的token:查询SQL如下:
玩玩微信公众号Java版之三:access_token及存储access_token
 玩玩微信公众号Java版之三:access_token及存储access_token

对应表结构参考如下:

玩玩微信公众号Java版之三:access_token及存储access_token

对应的java代码如下: 如果能获取到,那么直接返回: 

 1     /**
 2      * 通过参数获取Token信息
 3      * @param appID
 4      * @param appSceret
 5      * @return
 6      */
 7     public Token getToken(String appID, String appSceret)
 8     {
 9         mAppID = appID;
10         mAppSceret = appSceret;
11 
12         // 1.确定是否要更新token,无需更新则直接直接返回获取的token
13         if (updateToken())
14         {
15             return mToken;
16         }
17 
18         // 2. 如需更新
19         if (!getTokenbyhttps(mAppID, mAppSceret))
20         {
21             System.out.println("获取失败!");
22             return null;
23         }
24 
25         return mToken;
26     }
View Code

 其中明细方法实现为:

相关文章:

  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2021-12-10
  • 2021-12-26
  • 2022-12-23
猜你喜欢
  • 2021-04-08
  • 2021-12-14
  • 2022-12-23
  • 2021-10-26
  • 2021-12-04
  • 2021-12-10
相关资源
相似解决方案