转自:http://www.cuiyongzhi.com/post/44.html

(一)token的介绍

引用:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效!

(二)token的获取参考文档

(三)token获取流程分析

从公众平台获取账号的AppID和AppSecret;

token获取并解析存储执行体;

采用任务调度每隔两小时执行一次token获取执行体;

(四)token的获取流程的具体实现

①获取appid和appsecret

在微信公众平台【开发】——>【基本配置】中可以查看到我们需要的两个参数:

这里我们将他们定义到我们的配置文件【wechat.properties】中,大致代码为:

②token获取并解析存储执行体的代码编写

由于在这里我们需要通过http的get请求向微信服务器获取时效性为7200秒的token,所以我在这里写了一个http请求的工具类,以方便我们的使用,如下:

我们在做http请求的时候需要目标服务器的url,这里在项目中为了方便对url的管理我们在资源目录下建立了interface_url.properties用于存放目标url,这里我们将请求token的url存入:

我们需要将我们配置的配置文件在项目初始化后能得到启动,所以我在这里加入一个项目初始化的代码实现,用于项目启动初始化interface_url.properties和wechat.properties中的配置:

初始化的具体实现,将初始化过后的方法都存入到GlobalConstants中方便项目中随意调用,如下:

当我们把所有的准备工作都做好了之后我们可以开始真正的去获取token了,这里我们将获取到的token解析之后依然存储到GlobalConstants中方便使用,简单代码如下:

(三)采用任务调度每隔两小时执行一次token获取执行体

我们阅读过微信的文档会发现我们的token获取的接口每天是有调用次数限制的,为了防止我们业务量比较大的情况下token的直接调用的接口次数不够用,所以我们需要根据token的时效性(7200s)在自己的业务服务器上做到token的缓存并定时获取,我这里用到的任务调度的方式是采用quartz,有关quartz的使用可以参考文章 http://cuiyongzhi.com/?tags=%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1 ,下面具体代码的实现:

这里新建配置文件spring-quartz.xml以方便quartz任务的管理和启用,这里将我们需要用到的workForToken()加入到执行任务中:

这里我为了测试将执行间隔时间设置成了1分钟一次,根据需要可以自行修改执行时间;最后我们需要在我们的web.xml启动项中开启quartz的使用:

当这一切都准备完毕之后我们启动项目,会发现每间隔一分钟就会有token获取到,这里我是将其存储在项目变量中,但是如果需要考虑到项目横向扩展这里建议将token存储到缓存中;运行结果如下:

那么到这里token的获取和保存就基本讲完了,下一篇将讲述【多媒体消息的回复】,感谢你的翻阅,如果有需要源码或有疑问可以留言!

java获取微信token_Java微信公众平台开发(六)--微信开发中的token获取相关推荐

  1. 微信公众平台卡券API接口开发指南

    文章目录 说明 卡券术语介绍 卡券生命周期流程图 准备 申请开发账号 公众平台开发配置 公众号开发信息配置 填写服务器配置并验证有效性 申请微信认证及开通微信卡券功能 卡券分类 普通卡券 会员卡券 朋 ...

  2. 《微信公众平台与小程序开发——从零搭建整套系统》第1章 微信生态

    第1章 微信生态 1.1 微信:是一种生活方式 "你的一行代码能影响8亿网民,比奥巴马还多影响5亿人!" 这是腾讯2015年启动校园招聘时的口号.多么吸引人的一句话,足见腾讯的庞大 ...

  3. 《微信公众平台与小程序开发——从零搭建整套系统》——第1章,第1.2节微信公众平台...

    本节书摘来自异步社区<微信公众平台与小程序开发--从零搭建整套系统>一书中的第1章,第1.2节微信公众平台,作者 张剑明,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  4. 【微信易信公众平台开发】天气查询功能

    本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...

  5. 【微信易信公众平台开发】开启开发者模式

    本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...

  6. 【微信易信公众平台开发】创建自定义菜单

    本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...

  7. 神卓互联内网穿透微信公众平台 API 实现微信登录

    神卓互联是一家专注于内网穿透和互联网软件开发的公司,其提供的内网穿透服务和微信开发能够满足众多企业和个人的需求.本文将介绍神卓互联的内网传统微信开发服务. 在内网中使用微信开发具有一定的困难,因为微信 ...

  8. php 拼团_详解在微信公众平台里实现微信拼团功能的步骤

    微信拼团是应用于微信公众号的微商城系统,商家只需要一个网站后台去接入自己的服务号,上传自己的产品或服务,就可以使用它的功能了,下面小编就为大家介绍在微信公众平台里实现微信拼团功能的方法,来看看吧 微信 ...

  9. golang 模拟登陆微信公众平台,突破微信群发每日一条限制

    思路:微信后台可以对指定用户进行回复,群发其实就是一个loop,so 模拟POST提交到微信 后台, 模拟登陆,即可突破群发每日一条限制. 直接上代码 /**@author 菠菜君*@Version ...

最新文章

  1. python序列_科学网—Python:序列(字符串、列表、元组)和序列函数 - 刘洋洋的博文...
  2. python使用pip安装本地包-Python之pip使用详解|附第三方库安装总结
  3. 笔记-项目立项管理-项目建议书
  4. js判断只能输入数字或小数点
  5. C++学习——默认构造函数
  6. vim 批量替换字符串_Vim 有什么奇技淫巧?
  7. 有两个杯子,一个5升一个6升,很多水,请问如何取得3升水
  8. VSCODE也可以进行gtest细粒度测试
  9. 200道Java灵魂考题:全部掌握拿下阿里P7腾讯T3.2
  10. 互联网+智慧公安大数据一体化解决方案
  11. Unity 场景光照出现问题
  12. Android Botton 事件
  13. 自定义View之案列篇(三):仿QQ小红点
  14. Dbeaver连接Clickhouse无法下载/更新驱动
  15. 迎国庆,九月复盘你搞了多少钱?
  16. CCF认证201403-1相反数
  17. Java美元符号取值_java:我如何使用printf打印美元符号和带2位小数的双精度值?...
  18. PH15-7Mo是什么?
  19. jvm虚拟机规范 紧接上文的
  20. PostgreSQL 源码解读(203)- 查询#116(类型转换实现)

热门文章

  1. SQL Server Note [vaynexiao]
  2. 以太坊区块链积分系统示例讲解
  3. 【JS】【19】使用Jquery判断是电脑或手机或微信浏览器访问
  4. Python 内建函数 - complex([real[, imag]])
  5. 74LVC245APW数据资料
  6. 虚拟机未正常关闭,结果再次启动的时候打不开了?
  7. python提取excel一列或多列数据另存为新表(1)
  8. matlab命令窗口作用是什么,wcodemat这个命令在matlab中是实现什么功能的
  9. 小学生评语大全{六年级}
  10. 智能卡 PSAM 卡片文件结构