微信小程序01: springboot获取accessToken方式 ,配合redis缓存使用

您所在的位置:网站首页 小程序的token如何存储 微信小程序01: springboot获取accessToken方式 ,配合redis缓存使用

微信小程序01: springboot获取accessToken方式 ,配合redis缓存使用

2024-07-09 04:23:49| 来源: 网络整理| 查看: 265

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 上文小总结1.1.2 上文传送门 2. springboot获取accessToken2.0 accessToken简介2.1 准备工作2.2 具体代码使用与注释如下2.2.1 代码解释(一)[无需复制]2.2.2 代码解释(二)[无需复制] 2.3 最后一步 获取accessToken2.3.1 两行代码搞定2.3.2 微信小程序异常码(如图所示) 3. 文章的总结与预告3.1 本文总结3.2 下文预告

1.前言简介

access_token是有次数限制的 一天2000次 超过了需要刷新accessToken限制次数,10次/月

1.1 专栏传送门 1.1.1 上文小总结

上文为核心文章, 请先复制上文的代码后再复制此篇代码 里面是对微信小程序大部分操作的总结与封装

1.1.2 上文传送门

===> 微信小程序00: 获取accessToken,手机号, 小程序二维码,openId与unionId 公共配置类(核心篇)

2. springboot获取accessToken

微信小程序官方文档: => 传送门 传送门: 小程序信息获取方式 微信小程序00: 获取accessToken,手机号, 小程序二维码,openId与unionId 公共配置类(核心篇)

2.2.1 代码解释(一)[无需复制]

找到WechatServiceUtils类 的 getRedisCacheAccessToken()方法 这个是获取缓存中的accessToken

* 2. 获取缓存中的AccessToken * * 没有从微信拉取[可配合定时] * * @return accessToken */ public String getRedisCacheAccessToken() { /*校验: 缓存中有accessToken的key*/ if (redisCache.hasKey(CacheConstants.WX_ACCESS_TOKEN)) { log.info("二级缓存数据取出accessToken成功!"); return redisCache.getCacheObject(CacheConstants.WX_ACCESS_TOKEN); } //这里不用三目(不好看~~) return getWxMiniAccessToken(); } 2.2.2 代码解释(二)[无需复制]

找到WechatServiceUtils类 的 getWxMiniAccessToken()方法 访问微信官方获取两小时的 accessToken

JSONObject 需要引fastJson/fastJson2包 /** * 3. 访问微信官方获取两小时的 accessToken * * @return accessToken */ public String getWxMiniAccessToken() { Map query = new HashMap(); query.put("grant_type", wechatConfigProperties.getGrantType());//client_credential query.put("secret", wechatConfigProperties.getAppSecret()); query.put("appid", wechatConfigProperties.getAppId()); try { String aTokenUrl = wechatConfigProperties.getATokenUrl(); // ResponseEntity responseEntity = restTemplate.postForEntity(aTokenUrl, query, JSONObject.class); ResponseEntity responseEntity = restTemplate.getForEntity(aTokenUrl, JSONObject.class, query); HttpStatus statusCode = responseEntity.getStatusCode(); //状态码 // System.out.println(responseEntity.getHeaders());//获取到头信息 /*校验: 如果接口成功 200*/ if (Objects.equals(statusCode.value(), 200)) { JSONObject responseJsonBody = responseEntity.getBody();//响应体 log.info("[请求微信小程序官方接口] => 获取accessToken请求成功返回值:{}", responseJsonBody); if (responseJsonBody == null) { log.info("微信小程序获取accessToken请求返回result是null!"); throw new ServiceException(ResponseEnum.A10005); } //获取accessToken String accessToken = responseJsonBody.getString("access_token"); if (StringUtils.isBlank(accessToken)) { log.info("微信小程序获取accessToken请求返回access_token是null!"); throw new ServiceException(ResponseEnum.A10005); } //放入缓存中 redisCache.setCacheObject(CacheConstants.WX_ACCESS_TOKEN, accessToken, wechatConfigProperties.getExpiredTime(), TimeUnit.MINUTES); return accessToken; } else { log.error("微信HttpStatus的StatusCode不是200 {}", statusCode.value()); throw new ServiceException(ResponseEnum.A10005); } } catch (Exception e) { e.printStackTrace(); log.info("微信小程序获取accessToken请求异常信息 {}", e.getMessage()); throw new ServiceException(ResponseEnum.A10005); } } 2.3 最后一步 获取accessToken 2.3.1 两行代码搞定

第一行代码 AutoWired注入一下 (我用的lombok注解@RequiredArgsConstructor)

解释一下:

@AutoWired可以加到构造方法上, 同时在构造方法上的注入会自动填充那么也就是全参构造 @AllArgsConstructor 注解, 替代了属性上的@AutoWired有一些属性不希望@AutoWired, 在希望的属性上加final, 在类上加@RequiredAllArgsConstructor 代码如下 private final WechatServiceUtils wechatServiceUtils;

第二行代码 直接获取即可

//1.获取access_token String accessToken = wechatServiceUtils.getRedisCacheAccessToken();

执行结果如下: 在这里插入图片描述

2.3.2 微信小程序异常码(如图所示)

在这里插入图片描述 到此本文结束

3. 文章的总结与预告 3.1 本文总结 redis使用文档的查看与使用restTemplate的使用(httpUtils等等都行 自己写也行)微信文档没有坑,说明也挺清晰 3.2 下文预告 获取openId与unionId获取不限制小程序二维码获取手机号(新版)

作者pingzhuyan 感谢观看



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭