问题模块 |
---|
API和组件 |
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxae99846d698d58b7&redirect_uri=http%3a%2f%2ftszywx.qijiuyi.cn%2fqujiuyi_lottery%2fclient%2ftest1&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
像这种网页,我获取code时,会收到两个请求:
code虽然都是一样的,但是ip一个是成都的ip,另一个是上海的ip,有时候是天津的ip,sessionId也不一样。
比如
101.226.233.145 + 123.151.76.158
101.226.233.154 + 123.151.76.158
101.226.233.151 + 123.151.76.158
101.226.233.156 + 123.151.76.158
……
网友回复
2018/4/4 更新该问题:
发现了其中一个原因:由于微信X5浏览器自带一个超时重发的功能(超过10秒重新发送请求),所以如果你处理code的时间过长,就会出现多次code的情况。你们自己检查一下吧。
@脸不够圆,你改了nginx解决了问题,你也说明一下怎么解决的吧= =,微信官方咋不做任何解释捏?
还有就是 9楼的方法是可行的,加了这参数后确实微信没有发两次,具体没说请求参数怎么加,是这么加的--->例子:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE&connect_redirect=1#wechat_redirect
那么我还有一个问题,@Asan 请求的这个参数,微信的开发文档并没有说明,你能说下这参数是怎么来的不?
这种方法试过的,可以解决八成左右的问题,但是仍然有部分手机加了这个参数还是不行,还有什么方案吗
加到#wechat_redirect前面:.....sapi_base&state={$state}&connect_redirect=1#wechat_redirect
@9楼 在那个地方加&connect_redirect=1 这个东西 我试了https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_base&state={$state}#wechat_redirect&connect_redirect=1 不行呀
9楼的有效果,可以一试
请求加&connect_redirect=1
补充:在PC端浏览器访问是正常的,就是在微信里面有问题。
我也遇到这个问题,不仅仅是网页授权回调,在微信里面点击菜单或点击聊天消息中的URL都会发出两次请求?请问如何解决?
服务器也是使用Nginx了反向代理。
@脸不够圆,我们也是nginx配置,发送二次请求,如何解决的