概述
前几天,产品经理紧急打我电话,说后台好些商品无法生成小程序码了,这些商品小程序码是需要紧急推到公众号文章里的,让我赶紧解决。
我立马登录到后台操作了一下,果然报错了。但是由于报错信息只是:“操作失败”。啥都没有,简直醉了,只能用tail -f xxxx.log
命令,看看具体的报错堆栈,发现是空指针错误,仔细看了一下代码,当access_token
为空的时候,会走入到一段特有的逻辑,但是这段代码逻辑不严谨导致的这个错误。
这种情况下,得先知道为啥access_token
获取不到了,再次看了一下日志,发现微信那边提示:
reach max api daily quota limit hint
意思是说,超过限制了,google
了一把,有两个解决方案:
- 登录后微信公众号后台,进行手动清0;
- 直接调用微信的清零接口;
第一种办法做不到,因为针对小程序的,压根就没这个入口。只能用access_token超过限制文章提到的,手动调用:
https://api.weixin.qq/cgi-bin/clear_quota
要想访问这个接口,需要两个参数,第一个是有效的access_token
,第二个参数是app_id
,还好当时我们有缓存过access_token
,虽然当前获取不到,但是可以试一下用之前还未失效的access_token
,至于app_id
,这个很好获取的。
可以使用postman
进行调用。
调用完后,终于又可以生成小程序码了。
追根问底
处理完这个问题后,仔细观察了后台日志,发现有个定时任务,需要频繁的直接调用微信接口获取access_token
,会耗尽access_token
的。赶紧改动代码,换成先从缓存读取,获取不到了,才到微信那边获取。
小结
从处理问题的过程来看,业务系统打印日志是非常重要的,像这种access_token
获取不到的场景,一定要记录日志,把入参和出参都打印出来,方便定位问题。
更多推荐
小程序access_token耗尽问题
发布评论