Java实现微信客户端扫码登录

此篇文章记录自己开发中的微信客户端扫码登录的实例以及步骤,便于以后自行学习记起的关键,看到的网友有借鉴的地方就借鉴,看不懂的也请别吐槽,毕竟每个人的思维和思路以及记录东西的方式不一样;

1.首先需要一个微信服务号,记住并非是订阅号,拿到微信服务号的appid和AppSecret两个值,这两个值是申请微信号的时候就是存在的;

2.调用微信指定接口,然后弹出微信二维码,如图:

调用的连接接口弹出上图的二维码连接如下:

https://open.weixin.qq.com/connect/qrconnect?appid=wx00f80ce429d5e494&redirect_uri=&response_type=code&scope=snsapi_login#wechat_redirect

连接详细注释:

appid:             appid就是上面所说的微信申请已存在的;

redirect_uri:      这个url地址就是项目中需要回调的地址,即为需要指向的地址,可以认为手机打开微信扫一扫后,微信扫一下后跳转的地址;

response_type:是固定形式code值,(个人认为是请求微信那边服务器后返回的code值)

scope:这个是微信提供默认的两种类型,如下:

关于网页授权的两种scope的区别说明

a、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

b、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

c、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

#wechat_redirect:    这一个是连接上参数默认的;

3.通过上面的返回的code值,然后就可以调用微信的另一个验证接口了,调用后可以返回openid;拿到这个openid后就可以获取到用户的信息了,

获取openid的连接为:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=AppSecret&code=CODE&grant_type=authorization_code

拿到最后的openid后,就可以根据项目中的业务情况判定用户登录情况了,如果用户登录绑定了,就跳转到系统首页,如果用户没有注册并绑定用户,就跳转到用户注册页面,提示用户注册新用户并绑定;

至此个人记录情况结束,欢迎借鉴,thank you!

 

猜你喜欢

转载自www.cnblogs.com/Generalwake/p/9857447.html