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
……
问题通过ajax解决
解决代码开源,已经发布到github地址: https://github.com/andotorg/FixNginxProxyWechat.git
2018/4/4 更新该问题:
发现了其中一个原因:由于微信X5浏览器自带一个超时重发的功能(超过10秒重新发送请求),所以如果你处理code的时间过长,就会出现多次code的情况。你们自己检查一下吧。
请求加&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}&connect_redirect=1#wechat_redirect #锚
加到#wechat_redirect前,试了下好像可以,但是经常会遇到重定向出现500错误,不知道怎么回事
难道是这个问题?
onShow: function () {
this.onLoad()
}
一个是上海的ip,一个是本地网络的ip。加了&connect_redirect=1 无用。关键还是线上程序毫无修改
@脸不够圆,你改了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