微信小程序授权手机号码登录
文章目录
- 前言
- 一、需求描述:授权获取手机号码登录
- 二、具体操作
- 1.引入相关依赖
- 2.步骤
- 3.相关代码
- 3.1 微信小程序开发的相关配置
- 3.2创建配置文件
- 3.3 实例化WxMaService
- 3.4 手机号码授权登录
前言
因公司项目需要做微信小程序相关项目,故记录一下相关开发要点。
使用的是binarywang工具包,版本为4.1.0。
后端框架使用springboot
更多其他功能使用推荐查看https://github.com/binarywang/binarywang
一、需求描述:授权获取手机号码登录
用户授权手机号登录小程序。
二、具体操作
1.引入相关依赖
<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-miniapp</artifactId><version>4.1.0</version>
</dependency>
2.步骤
通过code获取openid, sessionKey获取手机号需要encryptedData(加密用户数据),iv(加密算法的初始向量),sessionKey(会话密钥)
3.相关代码
3.1 微信小程序开发的相关配置
在application.yml文件中配置
test: wechat: appid: 小程序的appidappSecret: 小程序的appSecretmsgDataFormat: JSONmchId: 商户号mchKey:商户密钥certPath: 证书路径notify-url: 支付回调接口路径
3.2创建配置文件
代码如下(示例):
@Data
@ConfigurationProperties(prefix = "test.wechat")
public class WeChatProperties {/*** 微信小程序appid*/private String appId;/*** 微信小程序appSecret*/private String appSecret;private String msgDataFormat;/*** 微信支付商户号*/private String mchId;/*** 微信支付商户密钥*/private String mchKey;/*** apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath: 开头指定*/private String certPath;}
备注:其中商户号、商户密钥、证书都是后续微信小程序支付需要使用到。
3.3 实例化WxMaService
@Configuration
@EnableConfigurationProperties(WeChatProperties.class)
public class WeChatMaConfig {@Autowiredprivate WeChatProperties properties;@Beanpublic WxPayService wxPayService() {WxPayConfig payConfig = new WxPayConfig();payConfig.setAppId(StringUtils.trimToNull(properties.getAppId()));payConfig.setMchId(StringUtils.trimToNull(properties.getMchId()));payConfig.setMchKey(StringUtils.trimToNull(properties.getMchKey()));payConfig.setKeyPath(StrUtil.format("classpath:{}", StrUtil.trim(properties.getCertPath())));WxPayService wxPayService = new WxPayServiceImpl();wxPayService.setConfig(payConfig);return wxPayService;}@Beanpublic WxMaService initWxMaService() {WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();config.setAppid(StrUtil.trim(properties.getAppId()));config.setSecret(StrUtil.trim(properties.getAppSecret()));config.setMsgDataFormat(StrUtil.trim(properties.getMsgDataFormat()));WxMaService wxMaService = new WxMaServiceImpl();wxMaService.setWxMaConfig(config);return wxMaService;}}
3.4 手机号码授权登录
关键代码如下(示例):
@RestController
@Slf4j
public class TestContoller {@Autowiredprivate WxMaService wxMaService;@GetMapping("/login")public void login(String code, String encryptedData, String iv) {try {WxMaJscode2SessionResult sessionInfo = wxMaService.getUserService().getSessionInfo(code);String openid = sessionInfo.getOpenid();log.info("openid:" + openid);String sessionKey = sessionInfo.getSessionKey();WxMaPhoneNumberInfo phoneInfo = wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);String phone = phoneInfo.getPhoneNumber();log.info("phone:" + phone);// 自己业务逻辑处理} catch (WxErrorException e) {e.printStackTrace();}}
}
微信小程序授权手机号码登录相关推荐
- Java - 微信小程序授权手机号登录
最近做了一个关于商城的项目,B端选用若依的开源框架,C端还是vue前后端分离.其中C端主要是小程序的形式,所以想着来总结一下对接微信小程序登录中Java部分遇到的坑即代码分享! 废话不多说,直接上代码 ...
- Uniapp微信小程序授权的登录前后端全套
前言 用Uniapp写的小程序要上线了,结果微信不过审,我也觉得很奇怪!驳回信息如下 这么一说的话确实,因为之前的写的代码获取用户openid的时候必须要是调试模式,我还以为是没上线的问题!这下好了, ...
- uniapp微信小程序授权登录和获取微信绑定的手机号码
uniapp微信小程序授权登录和获取微信绑定的手机号码 弹出授权的弹框 <view class="weixinOk" @tap="getUserProfile&qu ...
- 微信小程序授权获取用户信息和手机号码
微信小程序授权获取用户信息和手机号码 1.微信官方文档 登录:https://developers.weixin.qq.com/miniprogram/dev/framework/open-abili ...
- 微信小程序如何进行登录授权和获取用户信息
微信小程序如何进行登录授权和获取用户信息
- 微信小程序授权登录 组件的封装
微信小程序授权登录 组件的封装 新建components文件 写wxml文件 wxss部分 js部分 json引用 页面使用 页面js 授权登录 流程如下: 因为多个页面功能需要登录状态 所以做了个组 ...
- SpringBoot微信小程序授权登录
SpringBoot微信小程序授权登录 一.appId 1.1.自己是管理者:微信公众平台,申请或登录自己的微信小程序,在开发者管理中即可看到 2.2.自己是开发者:让管理员将自己加入到小程序开发者管 ...
- 微信小程序授权登录取消授权重新授权处理方法 附可用代码
微信小程序授权登录基本是小程序的标配了,但是官方的demo,取消授权后,就不能再重新点击登录,除非重新加载小程序才可以,这下怎么办? 我们可以先在首页引导用户点击,然后跳转到一个新的页面,在新的页面进 ...
- 最新版微信小程序授权登录(自定义头像昵称)
根据官方微信小程序开发关于登录授权API的调整,自 2022年10月25日起有关API接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 "微信用户".(如下图所示) 那我 ...
最新文章
- 2018全球智能+新商业峰会倒计时2个月,5000名AI从业者将出席
- macos降级_macOS Big Sur如何降级
- npm install是什么命令_了解npm
- 初入前端框架bootstrap--Web前端
- (C)libnet-发送arp/tcp/icmp数据包
- 开启IIS的WebGarden、WebFarm和StateServer之旅
- 创翼软件linux版本,创翼pc版下载-创翼电脑版下载v5.2.22.5226-软件爱好者
- 验证(Authentication)和授权(Authorization)(一):
- spark sql读取hive底层_SparkSQL读取Hive数据插入Redis
- POJ 3134 - Power Calculus (IDDFS)
- 接口各项性能测试指标
- 2022年上半年国家教师资格证考试
- flashfxp怎么传文件,小编教你flashfxp怎么传文件
- 7-20 打印九九口诀表(15 分)
- lrd热加载方式启动本地web服务(我用于从github把别人服务器代码拉倒本地去搭建自己的网络服务)
- 【Java、Redis】通过中心经纬度与半径获取范围内的结果集(类似附近的人)
- 毕设 老年公寓管理系统
- java 微博第三方登录_Connect/login - 微博API
- 2019 年科技趋势最全汇总!
- django学习007-MVT的T(模板)的使用
热门文章
- ICloud没有密码怎么注销?
- 本地连接服务器搭建的 Redis 集群
- 为什么曾经优秀的人突然变得平庸?
- 想要快速来钱?你连这些竟然都不知道?!
- 嵌入式linux之go语言开发(九)关于嵌入式GUI
- fluent-bit日志上传到s3-efs
- NLP——day37 读论文:自然语言处理中的文本表示研究(综述类 2022 软件学报)
- python事件是什么意思_Python的事件处理
- 动态磁盘转回基本磁盘 | 警告你选定的操作会将基本磁盘转换为动态磁盘 | DiskGenius从镜像文件还原时,载入pmf文件,没有时间点
- php 防镜像网,wordpress防止网站被镜像实用方案教程