您的位置:首页 > 移动开发 > 微信开发

基于微信api网页开发整理

2017-12-08 13:58 417 查看

重点整理(实际开发容易迷惑的地方)

一.基本调用凭证和网页授权调用凭证的区别

微信网页开发有2个access_token,一个是基本调用凭证,与微信公众号对应;一个是网页授权调用凭证,与用户对应。

1.获取方式的区别

基本调用凭证仅需要appid和secret两个参数,只与公众号对应,有效期为7200s(2小时),每天只能获取2000次,获取链接为:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET

网页授权调用凭证不但需要appid和secret两个参数还需要code,code是在引导用户点击授权链接后并成功授权后,微信跳转回调地址时带的一个参数,所以code的产生是与用户相关,也可以间接理解为网页授权调用凭证是与用户对应,有效期为7200s(2小时),无调用次数限制,在获取到access_token的同时也可以获取到微信用户对应此公众号的openid,获取链接为:

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

2.两种方式获取到的用户信息区别

开发者无论拿到哪种凭证,在获取用户信息时,都是需要根据用户的openid来获取。

基本调用凭证在获取用户信息时只要在微信浏览器即可,但是获取到的用户信息相比于基本调用凭证获取的用户信息多一个参数subscribe,该参数的含义是该用户是否关注该公众号,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。获取用户的信息的链接:

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

网页授权调用凭证获取用户的信息分为两种环境,分别为公众号环境内,微信浏览器内公众号外,在公众号环境内,由于用户已经关注了该公众号,所以调用此链接可以直接拿到用户的基本信息,而不需要给用户弹出授权页面。在微信浏览器内公众号外而且没有关注该公众号,是需要给用户弹出授权页面,经过用户授权才可以拿到用户信息。获取用户的信息的链接为:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

注意:两种方式各有各的优缺点,基本调用凭证在无法获取未关注该公众号的用户信息,网页授权调用凭证在公众号环境获取用户信息时可以弹出授权对话框,提示用户授权,手动同意既可以拿到用户信息,由于用户同意过,所以无论是否关注公众号,都可以拿到用户信息。

二.网页授权调用凭证获取code时scope的区别

在网页授权调用凭证在获取code的链接为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

其中有一个参数是scope,scope=snsapi_base是用来获取进入页面的用户的openid,自动跳转到回调页面,并没弹出让用户授权的页面。scope=snsapi_userinfo是用来获取用户的基本信息的,但这种授权需要弹出用户授权页面,需要用户手动同意,就可在授权后获取该用户的基本信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息