html52.com
我爱小程序-开发者交流社区

微信公众号网页授权时,回调两次?

问题模块
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的情况。你们自己检查一下吧。


Tommy:

@脸不够圆,你改了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 请求的这个参数,微信的开发文档并没有说明,你能说下这参数是怎么来的不?



尚:

这种方法试过的,可以解决八成左右的问题,但是仍然有部分手机加了这个参数还是不行,还有什么方案吗

easy:

加到#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  不行呀

easy:

9楼的有效果,可以一试

Asan?:

请求加&connect_redirect=1

华仔?:

补充:在PC端浏览器访问是正常的,就是在微信里面有问题。

华仔?:

我也遇到这个问题,不仅仅是网页授权回调,在微信里面点击菜单或点击聊天消息中的URL都会发出两次请求?请问如何解决?

服务器也是使用Nginx了反向代理。

Dillon Liang:

@脸不够圆,我们也是nginx配置,发送二次请求,如何解决的

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付