微信access_token 什么时候失效,说的是基本的access_token,不是页面那个

阿狸Ahri 2016-06-24 10:57:05
我发现access_token在官方文档描述的时候,说重复刷新,将会使原来的access_token失效。这个好理解,然后她妈的我就一直这么认为的。

但是前两天,别人用官方的接口(他们提供那个页面获取的)获取了一个我们的aceess_token,结果按照我之前的理解,那我系统保存的access_token 就失效了,但是经过我测试好发现我自己的access_token还有效。

我再去查文档,就有这个话:

2、目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外输出的依然是老access_token,此时公众平台后台会保证在刷新短时间内,新老access_token都可用,这保证了第三方业务的平滑过渡;


所以我又理解成了 只有获取的token时间没到,还可以继续使用。

但是实际测试的时候,发现,只要我在我的系统获取新的,旧的就不可以用了。 但是如果在官方的页面获取一个,那我的还可以继续用。

所以,是不是说 access_token 跟Ip有关,只要IP不一样,就各自用自己的?这个是不是这样理解啊


而且我发现一个问题,有时候明明token的时间还有1个小时,然后微信返回access_token is invalid or not latest hint,草,我都不知道这个怎么回事
...全文
7571 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
K i n g137 2017-07-28
  • 打赏
  • 举报
回复
调用一个没有调用次数限制的借口看看access_token是否过期,过期了直接请求 我是这样子做的
嗯澜本 2017-04-18
  • 打赏
  • 举报
回复
access_token如果生成了两个的话,短时间内两个都可以用,但是很快旧的就不可以再用了(大约是5分钟),据我现在的了解,大部分人解决的方法是:1.调用一个没有调用次数限制的借口看看access_token是否过期,2.做一个定时任务,每分钟去监测,看是否过期。我打算先用第一种试试看。不知道楼主有没有解决这个问题呢?
u010671827 2016-08-24
  • 打赏
  • 举报
回复
我已经解决了: 我的场景是这样的:用户扫码关注 我会调用获取access_token 接口来获取用户数据和其他逻辑,然后当用户下单购买之后,我会将消息扔在mq队列中,然后我的另一台服务器作为消费者读取mq的数据,然后给用户推送消息(调用微信的客服消息接口),这样一来,我的这个消费者服务器又会请求一次获取access_token ,前后两次的access_token 不一致,我后取的会使得前面的迅速失效,大概会在5分钟内失效,所以我之前保存在内存中的失效时间设置的60分钟,在60分钟内都会显示token失效。 我现在是把获取的access_token 放在数据库中,也可以放在redis中,只要保持一致就不会失效了。
u010671827 2016-08-24
  • 打赏
  • 举报
回复
我也是 依旧是10+分钟就会提示 40001 失效
逆境造就成功 2016-08-19
  • 打赏
  • 举报
回复
同问官方说access_token有效时间是两小时。 结果我发现 有个时候它十分钟就失效了
小米飞刀 2016-07-20
  • 打赏
  • 举报
回复
楼主 问题解决了吗? 我也碰到这种问题了 官方说access_token有效时间是两小时。 结果我发现 有个时候它十分钟就失效了 解决了@我一下
阿狸Ahri 2016-06-25
  • 打赏
  • 举报
回复
引用 1 楼 zy205817 的回复:
accee_token有过期时间,你需要保存这个文本到文件或者其它存储媒介。 每次获取accee token需要判断过期时间是否过期,最好设置时间小于接口给的过期时间。
这个过期时间谁都知道~现在的问题不是这个啊,大哥,现在是别人获取我公众号的access_token 之后,我自己的没有失效,两个都能用啊,你看清楚我问的问题啊
码无边 2016-06-25
  • 打赏
  • 举报
回复
accee_token有过期时间,你需要保存这个文本到文件或者其它存储媒介。 每次获取accee token需要判断过期时间是否过期,最好设置时间小于接口给的过期时间。
微信中控服务器(一个获取微信 access_token 和 ticket 的服务).zip wechat-token-proxy 是一个获取微信 access_token 和 ticket 的服务。它能使调用微信公众号各接口的各个业务逻辑点共享 access_token 和 ticket ,避免产生冲突。 到这个冲突,就得先了解微信access_token 。引用微信官方的描述: access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。 如果第三方不使用中控服务器,而是选择各个业务逻辑点各自去刷新access_token,那么就可能会产生冲突,导致服务不稳定。 详见微信官网 微信限定每天只能调用2000次刷新access_token的接口。换言之,每次调用公众号接口时都刷新access_token的话,很有可能超出2000次/日的限制。 开发 wechat-token-proxy 的目的,是为了让众多的业务逻辑点能和谐调用微信公众号的接口,共享access_token,减少一个令业务服务不稳定的因素。 项目文件明 |文件名|功能简介| |:--------:|------| |conf/wx_config.json|设置微信 app_id 和 app_secret| |destinations/wx_flush_access_token.js|获取access_token| |shipper.js|将access_token写到文件, 或读取access_token| |refresher/wx_access_token.json|此文件保存access_token的值| |schedule.js|定时执行wx_flush_access_token.js| |app.js|通过http方式输出json格式的access_token| |conf/access.json|设置允许访问此服务的 IP 或 域名| 如何使用 由于使用了 express 框架,启动 wechat-token-proxy 只需要执行 app.js 文件。具体步骤如下: clone 项目 git clone .git 进入 wechat-token-proxy 文件夹,并安装依赖模块 cd wechat-token-proxy npm install 设置 conf/wx_config.json 和 conf/access.json 两个文件。 wx_config.json 内容如下: { "app_id": "微信公众号的AppID", "app_secret": "微信公众号的AppSecret" } access.json 内容如下: { "ip": ["127.0.0.1"], "hostname": ["localhost"] } 启动项目 node app.js 打开浏览器 访问 http://localhost:3000 获取 access_token; 访问 http://localhost:3000/ticket 获取 ticket。

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧