access_token是公众号的全局唯一接口调用凭据,公众号开发调用各接口时都需使用access_token。access_token的存储至少要保留512个字符空间。有效期目前为2个小时,如果超时需要重复获取新的token,那么上次获取的access_token也会失效,其实这也是一种安全机制,只允许有一个有效的token。
2、请求说明https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
参数名称
是否必须
说明
grant_type
是
默认值client_credential
appid
是
第三方用户唯一凭证,appid
secret
是
第三方用户唯一凭证密钥,即appsecret
3、 响应说明正常返回{ "access_token":"ACCESS_TOKEN", "expires_in":7200}说明:expires_in返回值为7200秒,就是有效期两个小时
错误返回
{ "errcode":40013, "errmsg":"invalid appid"}4、请求错误编码介绍
返回码
说明
-1
系统繁忙,此时请开发者稍候再试
0
请求成功
40001
AppSecret错误或者AppSecret不属于这个公众号,请开发者确认AppSecret的正确性
40002
请确保grant_type字段值为client_credential
40164
调用接口的IP地址不在白名单中,请在接口IP白名单中进行设置。
89503
此IP调用需要管理员确认,请联系管理员
89501
此IP正在等待管理员确认,请联系管理员
89506
24小时内该IP被管理员拒绝调用两次,24小时内不可再使用该IP调用
89507
1小时内该IP被管理员拒绝调用一次,1小时内不可再使用该IP调用
5、开发示例5.1 引用依赖包首先打开公众号创建一个maven项目,创建完成后引入hutool依赖包,方面后续http请求和字符串操作。
内容如下:
<!--安装最新版本的hutool--><dependencies> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.22</version> </dependency></dependencies>5.2 代码示例import cn.hutool.core.util.StrUtil;import cn.hutool.http.HttpUtil;import cn.hutool.json.JSONObject;import cn.hutool.json.JSONUtil;/** * 小程序开发第一步获取微信Token */public Demo01_GetToken { // 建议放在配置文件里面,这里只是演示 private static String token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}"; private final static String appid = "你的appid"; private final static String secret = "你的secret"; public static void main(String[] args) { // 获取完整的tokenURL String url = StrUtil.format(token_url, appid, secret); // 获取token String tokenResult = HttpUtil.get(url); System.out.println("获取token返回结果: " + tokenResult); JSONObject tokenJson = JSONUtil.parseObj(tokenResult); String token = tokenJson.get("access_token").(); System.out.println("输出公众号token: " + token); }}注意事项:需要在公众号配置公网IP白名单,否则调用会失败。
5.3 输出效果结果