微信公众平台授权流程分析

微信授权流程分析

什么是openId,unionId

openid是某个公众号与对应粉丝账号相关联的唯一ID,unionId个人主体或企业主体账号与粉丝账号相关联的唯一ID,下属的所有公众号都可以用这个unionId类关联对应特定粉丝用户。这就好比unionID是用户万达企业的会员号,openId是万达旗下的子品牌的会员号,那么unionId就可以在子品牌下面通用的,不需要openId了。

授权流程微信公众平台授权流程分析_第1张图片

微信公众号平台用户授权流程如上图所示。
这些过程从返回code之后,可以让后台服务器自己去实现,也可以使用微信授权服务器去处理这些请求信息的操作。
上面流程主要分为三步走:
(1)第一步在获取授权之后,请求这个公众号的关联的用户的登录code(类似于Token的东西,五分钟过期);
(2)第二步根据获取的code去请求openId信息(这个步骤可以后台服务器自己做,也可以让微信的授权服务器去做,以下同理);
(3)第三步根据获取的openId去获取用户的头像,地址,昵称等等用户信息,返回给客户端。
到了最后一步之后,就要根据咱们的业务场景去处理业务逻辑了,比如微信账号去绑定我们的系统的账号,下次在进入咱们的业务页面,可以根据用户的openId去获取我们的业务账号信息,做到免登录。

调试流程

上面这些过程,如果我们想一步一步去调试过程的话,应该怎么做呢?
(1)首先我们办好工具:微信开发者工具;
(2)接着我们在微信公众平台上面申请一个免费账号,http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
(3)配置我们需要调试的微信授权页面,需要在两个地方配置:
第一处:
微信公众平台授权流程分析_第2张图片

第二处:在这里插入图片描述
微信公众平台授权流程分析_第3张图片
意思就是你在访问这些页面的时候需要去申请授权,填写的是服务页面所对应的域名,ip需要http前缀,域名不需要前缀。
(4)你要获取授权,首先你得是这个公众号的粉丝,然后再微信开发者平台上去登录这个粉丝账号,所以需要在页面上对这个进行关注:
微信公众平台授权流程分析_第4张图片
之后获取的授权就是对这个粉丝的用户信息获取了。

完成好上面的配置之后,就可以按照步骤来进行调试了:

(1)第一个请求地址串:拉起授权页面的那个,就是xxx想要访问你的大头贴,名字,是否同意那个界面,返回code:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=[APPID]&redirect_uri=[REDIRECT_URI]&response_type=code&scope=[SCOPE]&state=STATE#wechat_redirect

[APPID]:你申请的微信公众平台的id;
[REDIRECT_URI]:授权完成后重定向url(需要进行url编码);
[SCOPE]:授权的范围(只获取到openID,还是获取所有用户信息);
response_type写死返回code;
state写死STATE

我使用的baidu来做测试的。
微信公众平台授权流程分析_第5张图片
返回的code是:https://www.baidu.com/?code=071Pch1w3NtFRXXXXXXe0Pch1P&state=STATE

(2)然后用刚刚返回来的code去请求openId信息,拼接如下:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

1- 你的开发者appID
2- 你的开发者secertID
3- 你刚拿到的code(code只能使用一次,5分钟未被使用自动过期)
4- grant_type参数固定为authorization_code
返回的结果如下:
微信公众平台授权流程分析_第6张图片
“access_token”:“36_HfcejQ1JObXXXXXXXqOB_SBJLHh-SlcozKdGw7RF-tACwuulTGR9byeop_YsRINegGGOvAtMGMbNg”
“openid”:“odPIe6S-QxXXXXXXKHVjSzq75E”

(3)根据上面获取的token和openId去获取咱们的用户信息,拼接的url如下所示:
https://api.weixin.qq.com/sns/userinfo?access_token=22_JYS********iV-hLX2L1LTexDgCoYCNAtBmUA**********mDqHcHW3aU9JtYH3bezXbQIl7TTo-ca9VnVAfGA6g&openid=OPENID&lang=zh_TW
在微信开发工具里面获取的用户信息如下:
微信公众平台授权流程分析_第7张图片

总结

根据以上步骤,就可以知道每一步调试的结果是怎么样了,总体来说微信公众平台的流程还是比较多的。

你可能感兴趣的:(微信,公众号,公众号,微信)