ps:SpringBoot结合mybatisPlus、Mysql实现,简单易懂,一件粘贴使用,详细往下看↓ 步骤: 注册微信开发平台账号,并创建小程序,获取小程序的AppID和AppSecret。 2.在小程序中引导用户
ps:SpringBoot结合mybatisPlus、Mysql实现,简单易懂,一件粘贴使用,详细往下看↓
注册微信开发平台账号,并创建小程序,获取小程序的AppID和AppSecret。
2.在小程序中引导用户点击按钮触发微信登录,获取到code。
3.将code发送到后端,后端通过code获取用户的openid和session_key。
4.使用session_key对用户数据进行解密,获取用户信息、头像、手机号等数据。
5.将用户数据保存到数据库中,或者通过其他方式进行业务处理。
详细代码及步骤:
首先需要创建一个mysql数据库,命名为 wechat_mini_program
,并创建以下数据表:
CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `open_id` varchar(255) DEFAULT NULL COMMENT '用户唯一标识', `session_key` varchar(255) DEFAULT NULL COMMENT '会话密钥', `nickname` varchar(255) DEFAULT NULL COMMENT '用户昵称', `avatar_url` varchar(255) DEFAULT NULL COMMENT '用户头像', `gender` tinyint(1) DEFAULT NULL COMMENT '用户性别(0:未知,1:男性,2:女性)', `country` varchar(255) DEFAULT NULL COMMENT '用户所在国家', `province` varchar(255) DEFAULT NULL COMMENT '用户所在省份', `city` varchar(255) DEFAULT NULL COMMENT '用户所在城市', `phone_number` varchar(20) DEFAULT NULL COMMENT '用户手机号', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
在 pom.xml
文件中添加以下依赖:
org.springframework.boot spring-boot-starter-WEB com.baomidou mybatis-plus-boot-starter 3.4.3.1 com.baomidou mybatis-plus-generator 3.4.3.1 org.apache.velocity velocity-engine-core 2.2 mysql mysql-connector-java 8.0.27 com.GitHub.binarywang weixin-java-miniapp 3.8.0
在 application.yml
文件中添加以下配置:
spring: datasource: url: jdbc:mysql://localhost:3306/wechat_mini_program?useUnicode=true&characterEncoding=utf8mb4&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8 username: root passWord: root driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath:mapper @PostMapping("/login") public Result
数据库表创建语句
创建 `user` 表的 SQL 语句如下:```sqlCREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `open_id` varchar(255) NOT NULL COMMENT '用户 openid', `session_key` varchar(255) DEFAULT NULL COMMENT '用户 session_key', `nickname` varchar(255) DEFAULT NULL COMMENT '用户昵称', `avatar_url` varchar(255) DEFAULT NULL COMMENT '用户头像 URL', `gender` int(11) DEFAULT NULL COMMENT '用户性别,0:未知,1:男性,2:女性', `country` varchar(255) DEFAULT NULL COMMENT '用户所在国家', `province` varchar(255) DEFAULT NULL COMMENT '用户所在省份', `city` varchar(255) DEFAULT NULL COMMENT '用户所在城市', `phone_number` varchar(20) DEFAULT NULL COMMENT '用户手机号', PRIMARY KEY (`id`), UNIQUE KEY `open_id_UNIQUE` (`open_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
pom.xml 配置文件
需要引入以下依赖包:
com.baomidou.mybatisplus mybatis-plus-boot-starter 3.4.3.1 mysql mysql-connector-java 8.0.26 me.chanjar.weixin weixin-java-miniapp 3.9.0
业务解释和调用流程
本代码实现了小程序用户登录和更新用户信息的功能。
调用流程如下:
wx.login
方法获取 code
code
传给后端的 /user/login
接口wxMaService.getUserService().getSessionInfo(code)
方法获取 session_key
和 openid
openid
查询用户信息,如果用户不存在则创建新用户openid
给小程序前端wx.getUserProfile
方法获取用户信息(如昵称、头像等)(代码login已经更新为后端获取,如果前端获取稍微改一下就好)openid
一起传给后端的 /user/update
接口后端更新用户信息,并返回更新结果给小程序前端
over!
总:以上就是本代码实现的业务流程,具体实现可以参考上面给出的代码和注释。
需要注意的是,在使用本代码时,需要在小程序后台创建小程序并获取 appid
和 appsecret
,并在代码中进行相应的配置。另外,还需要在微信开放平台申请相应的权限并获取 access_token
。具体操作可以参考微信官方文档。
ps:上面给出的代码可以作为一个基础的实现,可以在此基础上进行进一步的开发和优化。
来源地址:https://blog.csdn.net/zbh1957282580/article/details/129959031
--结束END--
本文标题: (详细版)java实现小程序获取微信登录,用户信息,手机号,头像
本文链接: https://www.lsjlt.com/news/387008.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0