后台收到微信重复请求问题

 最近做微信开发,一码多付,H5+SpringMVC实现。扫码时,通过oauth2获取微信用户信息,发现扫码一次后台响应了2次,oauth2设置的回调函数也访问了2次。用微信web开发者工具、UC浏览器、Safari请求url都没问题,就用微信扫码的时候,后台请求2次。问题一直拖了2周没解决,那个郁闷呀......





      因为前后2次的请求时间间隔极短,几乎同一时间到达,各种逻辑判重效果不大。


     都怀疑人生了,然后网上各种查,发现类似问题不少,奈何没有彻底的解决方案。


    案例一:

            https://blog.fishlee.net/2016/07/07/double-request-from-wechat-client-with-ajax/

扫描二维码关注公众号,回复: 2591226 查看本文章



    案例二:

            http://ask.csdn.net/questions/184083


       案例三:

              http://bbs.csdn.net/topics/391834066?page=1




        可是就是没解决方案啊。。。。。。

       继续查,说什么微信由于中转服务器转发,请求不带cookie导致session丢失呀等等。。。


       都困扰快2周了,网上各种查理不出头绪,假如真是查出来问题这么严重的话,微信浏览器研发团队不可能不重视,现在运行中的这么多微信公众号不可能没遇到类似问题。其他浏览器都是正常的,肯定代码没问题,微信浏览器的问题也不大,


       最后几经辗转,联系到微信浏览器X5内核研发的小伙伴,也说从前没遇到过,第一次听过。本着解决问题的原则,沟通过程中我提到域名实名制了,但备案还在进行中,着急就先开发了。微信的小伙伴说,可能是qq电脑管家类似的安全软件扫描的原因,对于未知域名的访问都要扫一遍安全性。。。。。。原来如此!!!!!!这就解释了所有接口都请求2次问题,也说明了为什么测试阶段微信web开发者工具、UC浏览器、Safari都正常。同时也印证了什么session获取不到数据,cookie呀,sessionid丢失等等,因为安全扫描的服务器是很多台、部署到不同地方,也不确定通过手机发起的请求和安全服务器发起的请求哪个先到达我们的后台,哪个先返回,根本无法判断cookie存到哪里去了。。。。


         后来经过测试,直接通过ip地址请求url,后台收到的访问次数更多,5次左右吧。然后换了备案过的域名,第二天神奇的恢复如常了。。。。。

后台收到多次请求,代码逻辑没问题的话,记得检查域名是否备案,域名是否备案,域名是否备案。如果域名没问题,大多是腾讯安全部门在扫码鉴别url的安全性,打印一下请求的ip和user-agent,给微信客服打个电话说明一下你问题,一般问题会解决的。


前前后后折磨了半个多月,这是爱的代价呀。

猜你喜欢

转载自blog.csdn.net/m0_37450089/article/details/80355138