关于获取使用access_token获取微信用户信息及openid的注意事项及出错解决办法。

最近在做一个投票系统,系统包含了对微信用户是否关注公众号的判断以及获取微信用户信息。

期初做好后,没有任何问题;

但是到了访问高峰期就报错。经过检查是没有获取到access_token,进一步检查发现access_token获取已达到上限。

具体错误为:

{"errcode":45009,"errmsg":"reach max api daily quota limit hint: [6Q0416sha6

在开发的时候,没有仔细看微信开发文档,所以在用户访问量大的时候,很快就到达了最大值。

解决办法:引用微信文档的内容

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

公众平台的API调用所需的access_token的使用及生成方式说明:

1、建议公众号开发者使用中控服务器统一获取和刷新access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务;

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

3、access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程。

 

从上文得知,access_token是有获取数量限制的,而且时间只有7200秒。

所以我的解决办法就是,将 access_token保存到数据库,然后每10分钟自动更新一次数据。

这样一天也只获取360次,远达不到限制的数量。

就顺利把这个问题解决了。

Q:为什么不2小时再获取,请看第3点,有效时间将来会调整,现在也不知道他到底是调长还是调短,我就设置个短一点的时间,只要不超限,就可以了。

你可能感兴趣的:(关于获取使用access_token获取微信用户信息及openid的注意事项及出错解决办法。)