微信小程序——获取接口调用凭据access_token

问题背景

今天在搞一个微信小程序的时候,使用到了发布内容的问题,然后想使用微信请求接口,结果遇到了请求接口需要获取调用凭证access_token。

查看微信小程序开发文档

打开微信小程序开发文档后,打开服务端相关文档,如下图:

图中可以看到功能的描述,他是获取全局唯一后台接口调用凭证,有效期为7200秒,而且需要我们自己保存,并且需要自己定期维护更新这个token

假如,我们使用云托管,可以通过微信开放接口免维护acctess_token的调用

这里,我们使用的是https调用,采用我们自己的服务端去调用微信的服务端的方式,不通过云调用也不通过前端调用,

实现方案

public static String getAccessToken(String appid,String appsecret){

    String reqUrl = ACCESS_TOKEN_URL.replaceAll("APPID",appid).replaceAll("APPSECRET",appsecret);

    String result = HttpUtils.httpsRequest(reqUrl, "GET", null);
    JSONObject jsonObject = JSONObject.parseObject(result);
    String  access_token = (String) jsonObject.get("access_token");
    System.out.println(access_token);
    return result;
}

public static void main(String[] args) {
    String accessToken = getAccessToken("wx7cbdf2fc3c123456", "fd54746d6eb3bf2b9770be4081234567");
    System.out.println(accessToken);
}

通过上方的实现代码,我们可以看到将请求地址中的APPID替换成我们自己的appid,以及appsecret也换成我们自己的秘钥。

然后,发起GET请求,请求到微信服务器获取返回access_token结果,在将其转为JSONObject对象,即可根据key获取到他的value值。

这样既能获取的到access_token,也能获取他的有效时间。

然后再根据这个过期时间,我们再去缓存token即可。

具体的缓存结构我没有写,最简单的方案就是先判断缓存中是否存在,如果不存在再去调用接口,返回正常的token后放到我们的缓存中,并且将结果返回。

好了,今天关于微信小程序中获取接口调用凭证access_token的分享就到这里,欢迎大家留言交流。

也欢迎大家关注我的工种昊《coder练习生》

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
微信中控服务器(一个获取微信 access_token 和 ticket 的服务).zip wechat-token-proxy 是一个获取微信 access_token 和 ticket 的服务。它能使调用微信公众号各接口的各个业务逻辑点共享 access_token 和 ticket ,避免产生冲突。 说到这个冲突,就得先了解微信access_token 。引用微信官方的描述: access_token是公众号的全局唯一票据,公众号调用接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取access_token失效。 如果第三方不使用中控服务器,而是选择各个业务逻辑点各自去刷新access_token,那么就可能会产生冲突,导致服务不稳定。 详见微信官网 微信限定每天只能调用2000次刷新access_token接口。换言之,每次调用公众号接口时都刷新access_token的话,很有可能超出2000次/日的限制。 开发 wechat-token-proxy 的目的,是为了让众多的业务逻辑点能和谐调用微信公众号的接口,共享access_token,减少一个令业务服务不稳定的因素。 项目文件说明 |文件名|功能简介| |:--------:|------| |conf/wx_config.json|设置微信 app_id 和 app_secret| |destinations/wx_flush_access_token.js|获取access_token| |shipper.js|将access_token写到文件, 或读取access_token| |refresher/wx_access_token.json|此文件保存access_token的值| |schedule.js|定时执行wx_flush_access_token.js| |app.js|通过http方式输出json格式的access_token| |conf/access.json|设置允许访问此服务的 IP 或 域名| 如何使用 由于使用了 express 框架,启动 wechat-token-proxy 只需要执行 app.js 文件。具体步骤如下: clone 项目 git clone .git 进入 wechat-token-proxy 文件夹,并安装依赖模块 cd wechat-token-proxy npm install 设置 conf/wx_config.json 和 conf/access.json 两个文件。 wx_config.json 内容如下: { "app_id": "微信公众号的AppID", "app_secret": "微信公众号的AppSecret" } access.json 内容如下: { "ip": ["127.0.0.1"], "hostname": ["localhost"] } 启动项目 node app.js 打开浏览器 访问 http://localhost:3000 获取 access_token; 访问 http://localhost:3000/ticket 获取 ticket。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值