两个网站公用一个微信公众号获取access_token的问题

大超

我只有一个认证过的服务号,想绑定两个网站,我在微信公众号后台就把我的公司网站和我的个人网站“大超小志”都添加上了。测试的时候一切正常,后来却发现了问题。

问题就是:经常出现errcode:40001,errmsg:invalid credentia,access_token is invalid or not latest,意思就是access_token不对,要么是错误的要么是过期了。

经过仔细地检查,没有发现哪里有重复调用的问题,即使是重复调用,新获取的access_token会覆盖旧的,也不会出现这个问题啊。我先说一下我是如何保存access_token的吧。

如何保存access_token

为了减少access_token的调用,我用一个txt文件保存了access_token,下次调用的时候先判断这个txt文件的修改时间,如果超过了7200秒就重新获取新的access_token,我检查了这个txt文件的时间,发现并没有过期,所以自然不会重新获取新的access_token。

那为什么access_token就不可用了呢?这时,突然想到我这是两个网站公用一个微信公众号,而且把access_token保存到各自的网站目录里,这就出现了问题。

例如:网站A在9点的时候获取了access_token,存到本地,网站B在10点的时候又获取了access_token存在本地,这个时候其实网站A存的access_token已经不可用了,但是网站A的txt还没到7200秒,那么调用的时候不会重新获取,这就导致了“access_token is invalid or not latest”错误。

找到了问题所在,解决办法自然也就有了。

两个网站公用一个access_token

为了保证access_token的统一,只能从一个网站获取,然后另外一个网站去调用,这样就解决了问题,我是用公司的网站作为主网站,我的“大超小志”个人网站作为副网站。当我的个人网站需要access_token的时候,就从公司网站给的接口读取,这样就把access_token统一了,也就不会出现这个问题了。

有问题可在下方评论留言,或关注“大超小志”微信公众号留言。

标签: 微信 公众号

留言评论

如需留言或评论,请在微信中打开此页面。

NC: 解决了我的大问题
2021-08-24 15:21:30
作者 回复 @NC:我研究了半天才明白过来
2021-08-24 15:22:38
NC 回复 @NC:很好
2021-09-06 19:01:19