springboot项目之获取维护微信公众号accesstoken

引言

基于微信公众号开发时候会用到accessToken,且这个参数两个小时内有效,需要服务器端存储并维护。

方案

springboot通过定时任务更新

@Scheduled(initialDelay = 10000,fixedRate = 6600000)
    public void creatAccessToken() {
        String url = "https://api.weixin.qq.com/cgi-bin/token";
        String path = "?grant_type={grant_type}&appid={appid}&secret={secret}";
        Map params = new HashMap<>(3);
        params.put("grant_type", "client_credential");
        params.put("appid",WeChatConfig.appId );
        params.put("secret", WeChatConfig.secret);
        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity forObject = restTemplate.getForEntity(url + path, String.class, params);
        System.out.println(forObject.getBody());
        JSONObject jsonObject = JSONObject.parseObject(forObject.getBody());
        String accessToken = jsonObject.getString("access_token");
        System.out.println(accessToken);
        // accessToken获取成功
        if (accessToken != null) {
            //有效期设置1小时55分钟
            redisCache.setCacheObject(ACCESS_TOKEN_KEY, accessToken, 115, TimeUnit.MINUTES);
        } else {
            //redisUtil.set(ERROR_KEY, forObject.getBody());
            redisCache.setCacheObject(ERROR_KEY,forObject.getBody());
        }
        log.info("creatAccessToken",accessToken);
    }

欢迎留言、转发、评论。

你可能感兴趣的:(spring,boot,微信,java)