小程序获取太阳码(二维码)accessToken未到7200秒,却失效

通过阅读微信开发文档发现accessToken的有效期为2小时也就是7200秒,所以将accessToken在缓存中的过期时间设置为了7000秒,但今天测试时突然发现调用微信接口生成的太阳码图片为空。经过反复测试也没找到问题所在,只好一步步debug,最终发现是调用微信接口后响应流中没有图片,同时code为200。
在这里插入图片描述
这时第一反映就是accessToken已过期,但从redis工具中发现accessToken刚刚申请半个小时,远没到官方规定的2小时。没办法只好通过百度获取答案了,最终我在微信开放社区获取到了答案,原来是7200秒之内而不是一定是7200秒,并且经过实验在得到accessToken的前10分钟可以稳定得到太阳码但之后就不一定了。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用企业微信提供的API来获取小程序二维码。以下是Java示例: ```java import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class GetQrcode { public static void main(String[] args) { String accessToken = "YOUR_ACCESS_TOKEN"; // 替换为实际的access_token String path = "https://qyapi.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + accessToken; String params = "{\"path\":\"pages/index/index\",\"width\":430}"; try { URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json"); conn.setUseCaches(false); conn.setInstanceFollowRedirects(true); conn.connect(); // 将参数写入请求体 byte[] data = params.getBytes(); conn.getOutputStream().write(data); conn.getOutputStream().flush(); conn.getOutputStream().close(); // 读取响应 InputStream is = conn.getInputStream(); byte[] buffer = new byte[1024]; int len = 0; FileOutputStream fos = new FileOutputStream("qrcode.jpg"); while ((len = is.read(buffer)) != -1) { fos.write(buffer, 0, len); } fos.close(); is.close(); conn.disconnect(); System.out.println("二维码已保存至本地!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 在代中替换`YOUR_ACCESS_TOKEN`为实际的access_token,同时指定小程序路径和二维码宽度,即可获取小程序二维码并保存至本地。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值