微信token重复请求导致redis缓存失效的问题
问题描述
问题导致的源头:{"errcode":42001,"errmsg":"access_token expired hint: [8W2pha0008vr 72!]"}
这个提示意思是说token失效了,为什么会失效,因为在服务器上面也有一个获取token的线程,而我本地测试也在获取token,相互覆盖了。我本地代码实现的逻辑是:第一次拿到token就放入缓存,设置有效期1小时,在这1小时内都去redis中取。这时候如果其他地方也用同样的APPID和APPSECRET去获取token,那我这里redis里面的不就失效了,再用它去请求其他数据就会返回上面这个json。
而我对于返回错误码的处理是返回一个空对象,并没有尝试重新获取;
问题解决
问题解决的最直接方案当然就是增加一个机制,判断这个错误码,并尝试重新获取token,并刷新缓存。
问题的引申
这里引申出来另外一个问题,记录一下。这个问题是因为我没有对不同的APPID进行区分导致的。
举个例子:假设微信的access_token在redis中的key是wechat_token,每次使用都会去取,如果这时候我换了另外一个APPID,但是token还是使用这个,岂不是GG。下次记得这种情况一定要进行区分(wechat_token+":"+APPID)
微信公众号的二维码,有效期内生成的URL是否会覆盖之前的?经过测试是不会的,在有效期内连续请求生成二维码两次,拿到的两个链接在期限时间内都是可以使用的。
测试代码:
private static String QRCODE_CREATE_URL = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN";
private static String QRCODE_GET_URL = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET";
public static String getQrCodeUrl(String access_token) {
String qrCodeCreateUrl = QRCODE_CREATE_URL.replace("TOKEN", access_token);
JSONObject qrJsonObj = new JSONObject();
qrJsonObj.put("expire_seconds", 3600);
qrJsonObj.put("action_name", "QR_SCENE");
String qrJsonStr = HttpClientUtil.httpsPost(qrCodeCreateUrl, qrJsonObj.toJSONString());
if (qrJsonStr.contains("errorcode")) {
System.out.println(qrJsonStr);
return "";
}
String ticket = null;
try {
ticket = JSON.parseObject(qrJsonStr).getString("ticket");
} catch (Exception e) {
System.out.println(qrJsonStr);
return "";
}
if (StringUtils.isNotEmpty(ticket)) {
return QRCODE_GET_URL.replace("TICKET", ticket);
}
return "";
}
相关知识
微信token重复请求导致redis缓存失效的问题
错误;您所请求的网址(URL)无法获取
基于Vue3+Node Koa+WebSocket实现的“宠物收养交流平台”这是一个宠物收养交流平台web应用,主要分为
微信支付
宠物之家项目
基于SpringBoot+Vue+uniapp的宠物咖啡馆平台(源码+lw+部署文档+讲解等)
基于Java的宠物服务平台的设计与实现(源码+lw+部署文档+讲解等)
最新微信小程序选题推荐
基于PHP的宠物爱好者交流平台管理系统设计与实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+微信小程序宠物美容预约平台设计和实现(源码+LW+部署讲解)
网址: 微信token重复请求导致redis缓存失效的问题 https://www.mcbbbk.com/newsview204587.html
上一篇: 谁是电梯安全责任人?电梯安全条例 |
下一篇: 全球首款「碳中和」宠物衣服“持证 |
推荐分享

- 1我的狗老公李淑敏33——如何 5096
- 2南京宠物粮食薄荷饼宠物食品包 4363
- 3家养水獭多少钱一只正常 3825
- 4豆柴犬为什么不建议养?可爱的 3668
- 5自制狗狗辅食:棉花面纱犬的美 3615
- 6狗交配为什么会锁住?从狗狗生 3601
- 7广州哪里卖宠物猫狗的选择性多 3535
- 8湖南隆飞尔动物药业有限公司宠 3477
- 9黄金蟒的价格 3396
- 10益和 MATCHWELL 狗 3352