微信第三方登录出现错误40001解决方案

原贴地址:http://blog.sina.com.cn/s/blog_13a1fe1db0102xkbf.html

前些天做微信登录是发现了一个问题,就是自己的Appkey 和 Appstore 都没有问题的情况下在请求微信登陆的时候可以登录并且也可以通过用户返回的code值获取用户的token。但是在根据token获取用户的信息是却出现了40001的错误,在论坛和微信的api中都发现不了问题,最后发现是由于api的调用出错……真的是好尴尬
因为我是使用的微信开放平台进行登录的所以碰见了这个问题我总结一下
1. 因为开放平台跟微信公共号不一样,开放平台是不存在用户关注微信公共号的
2. 请求登录的方式也不同
a) 开放平台请求方式通过网页端生成二维码用户通过微信客服端进行扫描登录
网页端扫描的请求为:https://open.weixin.qq.com/connect/qrconnect
b) 而公共号只要在手机上操作因此登录请求的API也不同
而公共号的网页请求则为:https://open.weixin.qq.com/connect/oauth2/authorize
如果使用此链接为网页端微信登录她会提示你在微信客户端进行访问
c) 其次他们作用范围也是不相同的scope值(这个可以看微信的开发文档)
说了这么多那为什么会存在调用错api呢?
原因很简单因为微信公共号存在用户关注微信公共号,但是微信开放平台是跟网页进行关联就不存在关注公共号这个说法,所以如果在网页端应用调用公共号关注获取用户的api 必然会出现40001的错误就是不存在或者提示你的token有误。
1. https://api.weixin.qq.com/sns/userinfo
2. https://api.weixin.qq.com/cgi-bin/user/info
上面两个api都是获取用户信息的,并且传入的参数也是一样的,第一个是用户网页端,第二个使用公共号关注后获取用户信息,希望以后的小伙伴可以记住。不要跟我犯一样的错误了。
再次写下这篇帖子。提醒自己。

我也是同样的情况,学习了。

你可能感兴趣的:(微信开发)