微信扫描登录(获取扫描人信息分析) | 学习笔记

简介: 快速学习 微信扫描登录(获取扫描人信息分析)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)微信扫描登录(获取扫描人信息分析)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11462


微信扫描登录(获取扫描人信息分析)


内容介绍:

一、扫码之后跳转规则

二、获取扫描人信息过程

三、腾讯官方提供方法流程


一、扫码之后跳转规则

手机微信扫描二维码调用配置域名地址 http://guli. shop/ api/ucenter/wx/callback,在域名地址里面写程序,做了处理直接请求地址,通过这个到本地

http://localhost:8150/api/ucenter/wx/callback? code=011xlIs7 1HyKJo1qdht71rFLs71XlIsh&state=atguigu

需要做两件事情。

image.png

1、把本地服务端口号改成8150

server. port=8150

2、回调接口地址和域名跳转地址写成─样的地址

@Controller//只是请求地址,不需要返回数据

@RequestMapping(" /api/ucenter/wx")

public class WxApiController{

//2获取扫描人信息,添加数据

@GetMapping("callback")

public String callback (String code, String state){

System. out. println ("code :"+code) ;

System. out. println("state:"+state) :

return "redirect:http://localhost: 3000”;

}

这种规则只是为了测试使用,在实际开发中不需要


二、获取扫描人信息过程

在微信的官方即腾讯官方,把过程已经给规定好了,必须按照他的流程实现扫码登录,下面是详细的说明。

第一步,扫码之后,会执行本地的方法,然后在 callback 方法里可以获取到两个值,这两个值是在跳转的时候传递过来的,一个叫 code,一个叫 state。

State 在生成二维码的时候叫 Atguigu,state 也叫原样传递。这个值作用不是特别大暂时用不到。

code 是每次扫码之后由微信给你返回一个 code,类似于手机的验证码, code 是随机的,唯一的一个值,每次值都是不一样的,主要用到它往外来执行。

第二步,拿着第一部分获取到的 code 值,去请求微信提供的固定地址,注意是固定地址,不需要我们去写, code 得到之后去请求异构固定地址,在里边主要是 access token 和 open ID,access token 是一个访问凭证。

open ID,因为每个人的微信都不一样,微信名称是可以一样的,微信怎么区分每个人的微信呢?不同的微信就是每个微信那个唯一的标识即 open id。

第三步拿着第二步获取到两个值 access_t oken 和 openid,再去请求一个微信提供固定地址,最终可以到微信扫描人信息。比如微信暖称,微信头像等等。

@GetMlapping(callback")

public String callback (String code,String state){

//得到授权临时票据code

System . out.println(code);

System . out.printin(state);

//从 redis 中将 state 获取出来,和当前传入的 state 作比较

//如果一致则放行,如果不一致则抛出异常:非法访问

//向认证服务器发送请求换叹 access_token

String baseAccessTokenUnl m "https : / / api.weixin.qq.cm/sns /oauth2/access_token”+

" ? appid=%s”+

" &secret-Xs”+"&code-%s”+

" &grant_type=authorization_code";

String accessTokenUrl - String.format(baseAccessTokenUrl,

ConstantPropertiesUtil.wx_OPEN_APP_ID,

ConstantPropertiesUtil.wx_OPEN_APP_SECRET,

code);

String result - null;

try {

result - HttpClientUtils.get(accessTokenUrl);

System.out.println("accessToken-m===”+result);

}catch (Exception e){

throw new GuliException (20001,“获职 access_token 失败);

}

//解析 json 字符串

Gson gson - new Gson();

HashMap map - gson.fromis on (result,HashMap . class);

String accessToken(String)map.get(""access_token");Stringopenid(String)map.get("openid”);

//查询数据库当前用用户是否曾经使用过微信登录

lember member  member5ervice.getByOpenid(openid);if (menber - null){

System. out. println(“新用户注册");

//访问微信的资源服务器,获取用户信息

代码比较简单,主要是实现流程,这是微信规定的一个过程,要求必须是这一种步骤,所以必须按照规范来写,其实目的也是为了安全考虑,经过多个步骤多次验证才能得到最终数据。


三、腾讯官方提供方法流程

image.png

微信提供的获取扫描人信息过程:首先,请求登录第三方应用,有第三方应用肯定有第一方和第二方。

比如自己登陆系统,系统本身和自己就属于第一方。若现在登录微信,微信跟自己跟系统是都没有关系的,这叫第三方。请求登录第三方应用,然后里边用到 oauth2这种方式。

有一个请求用户确认,是说当扫完二维码之后,在手机上会有一个界面需要同意或者拒绝,点同意就是用户确认才能获取到用户信息。如果点拒绝,就获取不到用户信息,需要手动的在手机上点确定。

驱动之后,拉起第三方应用或重定向到第三方,带上授权临时票据( code)。临时票据就是验证码,然后临时票据请求地址,他可以得到 access token Openid

首先里边有第一个技术,不管第二步还是第三步,都需要请求地址之后得到值,第一个技术就是可以用它去请求地址,可以理解为请求是在浏览器中写地址,回车后得到,但是现在不需要浏览器,也能做到浏览器写地址,HTTP client 就是发送请求得到结果。

第二个技术是 Jason 转换工具。

在做发送短信的时候,当时用 fastJSON,再换一种转换 gson,这两个都是电子版工具,当然还有其他的工具 jackson 这些都是转工具。

相关文章
|
1月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
410 12
|
4月前
|
小程序 前端开发 算法
|
5月前
|
移动开发 前端开发 Android开发
开发指南059-App实现微信扫描登录
App是用uniapp开发的,打包为apk,上传到安卓平板中使用
|
5月前
|
小程序 JavaScript
微信小程序之input组件及其获取用户输入信息
微信小程序之input组件及其获取用户输入信息
110 1
|
7月前
|
人工智能 自然语言处理 搜索推荐
评测:AI客服接入钉钉与微信的对比分析
【8月更文第22天】随着人工智能技术的发展,越来越多的企业开始尝试将AI客服集成到自己的业务流程中。本文将基于《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案,详细评测AI客服在钉钉和微信中的接入流程及实际应用效果,并结合个人体验分享一些心得。
10083 10
|
5月前
|
小程序 算法 前端开发
微信小程序---授权登录
微信小程序---授权登录
160 0
|
7月前
|
存储 小程序 JavaScript
|
1月前
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。
|
15天前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
技术小白如何利用DeepSeek半小时开发微信小程序?
|
8天前
|
小程序 JavaScript 前端开发
微信小程序开发全流程:从注册到上线的完整指南
这篇文章详细记录了微信小程序的完整开发到最终上线的每一个步骤。适合对小程序开发感兴趣的个人开发者或希望了解完整流程的学习者,涵盖了云开发、事件绑定、生命周期管理、组件使用等关键内容。
52 11

热门文章

最新文章