微信公众号获取OpenId(未授权)(需要关注公众号)

文章的一开始,我先解释下微信公众号的openId。

openId是微信对于用户的唯一辨识,只要有用户关注你的公众号,微信会通过公众号和用户微信号通过一种算法生成一种唯一标识码,也就是openId,用数学表达式也就是说:

x=你的公众号,y=用户微信号,f()函数表示算法

那么openId = f(x,y);

后面就讲讲怎么获取到openId把,我下面先讲一种简易的方式(还有一种后续有空加上)

1.在公众号后台设置回调的域名(大多情况下是你的项目)

开发-接口权限-网页账号-用户授权获取用户基础信息中修改

2.在页面上访问下面的网址

https://open.weixin.qq.com/connect/oauth2/authorize?appid=*******&redirect_uri=你回调的地址&response_type=code&scope=snsapi_base&state=1#wechat_redirect

上面的会返回到你回调的地址?code=xxxxxxxxx

也就是说它会返回到你回调的地址并且带上code参数,一般情况下,回调的地址设置为后端的action即可,然后就可以获取到code了,当你获取到code,已经成功了一大半。

3.然后在后端访问下面的网址

https://api.weixin.qq.com/sns/oauth2/access_token?appid=***&secret=***&code=***&grant_type=authorization_code

code的参数用刚刚返回的code值。

4.上面网页将会返回json,其中openId就在其中。


至此,openId就获取到了,但是要注意:此处只获取到了openId,也就是不需要用户授权的,要获取用户其它的信息请参考接口文档。还有就是每次获取openId请重新获取code,code值不要重复使用,防止出错。

在微信页面上我是把获取到的openId保存在cookie中的,这样就可以防止openId的重复获取,我只在用户第一次进入或者cookie中的openId失效的时候进行再次获取的。至今没什么问题,但是我不知道大神们是把openId是放在哪里,我也只是给大家一个意见而已。

如果文档中有什么问题希望指出,如果需要帮助请私信。


相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页