建了中控台GetAccessToken,一个mutex保证每次只有一个线程从微信服务器取AccessToken,一个mutex读写内部accessToken变量,没毛病吧。。。所以不要怀疑我有没有中控台,或者取来后其它线程又取把前面的AccessToken冲无效的问题
大家都知道Expire_in骗人的,所以要么每次错了重新去取,微信没有测试AccessToken的接口,我现在为了测试AccessToken有效性,用的是取微信服务器IP的接口,
https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN
然后。。。
同一个AccessToken,同一台服务器手动的curl "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=24_Oqic6Ed0。。。"
返回一堆ip是正常的,然后间歇性的出现40001,接着又正常。。。然后测试久了,发现这个接口还会返回45009 reach max api daily quota limit
至少说明:1、这个40001的返回,是个bug,否则接下去curl,不会又正常,一小时内每秒去getcallbackip,会出现1/10左右的40001,你可以返回-1表示服务器忙,也不该返回40001,因为这个AccessToken明显有效。2、这个接口也有访问数量限制,可所有文档都没有写啊
请问楼主是否解决了问题,一直反复出现,几率很高,不知道怎么解决或者验证了
楼主解决了没?折磨好几天了=。=
https://developers.weixin.qq.com/community/develop/article/doc/00040684c3c458975f59e9d4951413
同样问题;
使用同一个 access_token,尝试调用云函数,不定时出现“40001”;
多请求几次,又可以了 = =
完全理解不了怎么回事。
可以存在时效缓存中,过了有效期,重新获取;也可以起个quartz,隔1~2h刷新access_token