微信公众号访问提示网络出错

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/G_whang/article/details/102731422

节日快乐,远离BUG!
在这里插入图片描述

前两天,我们公司的微信公众号平台出现一个问题:点击公众号菜单进行访问的时候,出现网络异常
在这里插入图片描述

我以为是外网地址不稳定导致公众号无法访问,就先跟运维的同事说了下,因为是周末,所以运维同事并没有及时回复我,然后我把服务器地址复制出来,在浏览器进行访问,访问没问题,这时运维同事让我把地址发给他,他检测一下。这就尴尬了,我当时没有把问题考虑清楚就发出去了,着实挺尴尬的,就给他说,我测了一下,没问题,可能事微信公众号有问题。然后开始排查菜单类(因为微信的菜单是在后台调用微信创建菜单的方法完成的,其中menu类根据微信接口传参其中的地址是可以静默的获取用户信息,或者让用户认证登录,我们当然为了用户体验,用的是静默的方式)我以为是微信菜单类地址变化了,导致访问不到,看了下地址也挺正常的,然后想了一下,如果地址不对的话,肯定是404了怎么会是这个网络异常呢,这个可能也排除了,最终还是回归到网络问题上。正在这时,我点了下菜单,竟然没问题了。然后返回,再点菜单,又不行了,我想起之前银行对接的时候出现的ip问题,就查了下微信服务器的外网IP查看果然有3个IP其中有一个是我们公司正常使用的,其他2个,就不知道了,然后查询微信公众号白名单设置,因为我不是我们公司公众号管理员,所以登录不了我们公司的公众号,就登录了我自己的公众号,找到了IP白名单设置
在这里插入图片描述
之前还怀疑是网页回调地址的问题,后来想了想,现在这个根本就访问不了,所以也不牵扯网页回调,并且网页回调时解析域名的,跟IP关系不大。这样又增加了我对IP问题的信任,因为登录不了,就等到第二天上班的时候,找到我们总监,跟他讲了下我对这个问题的分析,和推断,然后我们总监就登录上公众号官网,查看,IP白名单,果然里面只有我们之前的IP,对于现在多出来的IP没有设置,这样让我更加自信了,我们总监一看这种情况,就把多出来的IP设置了一下,然后我再尝试,结果还是不行,还是报网网络访问出错。又尴尬了一下,然后我看到下面这句话就开始接着排查access_toKen问题了
在这里插入图片描述
因为没有access_toKen的话微信公众号,应该时无法正常运行的

因为所有的接口和方法都需要使用access_token获取相关的参数,比如code。
在这里插入图片描述
当看到这句话的时候,我想到了,可能是因为获取的access_token并不是IP白名单中的IP获取到的可能还是之前的IP未同步过来,然后我就开始找代码,知道这个access_token会保存到redis中,然后找到配置的key,再命令行中,连接redis,然后get key,接着就del key 在get key的时候就是空了,然后访问相关地址,在get key这个时候就又拿到了一个token,我以为问题解决了,然后开始访问,结果还是被现实抽了一个大嘴巴子,还是不行,这下没招了,然后我们总监去找我们区域总监,过了一会我在点击的时候,就发现没问题了,不会在报网络异常了,我以为刚才是缓存导致的,因为我是5分钟作用点的,就没问题了,刚打算给我们总监说,我们总监就过来找我了,说跟区域总监说了一下,他就看了下外网的nginx磁盘,发现磁盘空间已经快满了,然后把空间清除了一下就好了。真是的现在在想想当时考虑access_token获取问题,真是太笨了如果真是白名单获取的问题,那么redis中肯定不会又值的因为你的IP不在白名单中,你就拿不到access_token

猜你喜欢

转载自blog.csdn.net/G_whang/article/details/102731422