# 获取普通 AccessToken

# 接口说明

  • 获取网站应用全局唯一后台接口调用凭据(access_token)。调用绝大多数后台接口时都需使用 access_token,开发者需要进行妥善保存。

  • 本接口应在服务器端调用。

# 关于网站授权 access_token 和普通 access_token 的区别

  • 微信网站授权是通过 OAuth2.0 机制实现的,在用户授权给网站应用后,网站应用可以获取到一个网站应用页面授权特有的接口调用凭证(网站授权 access_token),通过网站授权 access_token 可以进行授权后接口调用,如获取用户基本信息;
  • 其他微信接口,需要通过本文的接口“获取 access_token”接口来获取到的普通 access_token 调用。

# 注意事项

access_token 的存储与更新

  • access_token 的存储至少要保留 512 个字符空间;
  • access_token 的有效期目前为 2 个小时 ,需定时刷新,重复获取将导致上次获取的 access_token 失效;
  • 建议开发者使用中控服务器统一获取和刷新 access_token,其他业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致 access_token 覆盖而影响业务;
  • access_token 的有效期通过返回的 expires_in 来传达,目前是 7200 秒之内的值,中控服务器需要根据这个有效时间提前去刷新。在刷新过程中,中控服务器可对外继续输出的老 access_token,此时公众平台后台会保证在 5 分钟内,新老 access_token 都可用,这保证了第三方业务的平滑过渡;
  • access_token 的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新 access_token 的接口,这样便于业务服务器在 API 调用获知 access_token 已超时的情况下,可以触发 access_token 的刷新流程。

# 接口调用请求说明

GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

# 请求参数说明

参数 类型 是否必填 描述
grant_type string 填写 client_credential
appid string 开放唯一凭证,即 网站应用账号 ID。(需要已完成网站应用的开通,且账号没有异常状态)
secret string 开放唯一凭证密钥,即 网站应用账号密钥

# 请求参数示例

{}

# 返回参数说明

参数 类型 描述
access_token string 获取到的凭证
expires_in number 凭证有效时间,单位:秒。目前是 7200 秒之内的值。
errcode number 错误码
errmsg string 错误信息

# 返回参数示例

正常返回

{
  "access_token": "ACCESS_TOKEN",
  "expires_in": 7200
}

错误时返回

{
  "errcode": 40013,
  "errmsg": "invalid appid"
}

# 错误码

错误码 错误描述 最低版本
公共错误码 -
0 请求成功
40001 AppSecret 错误或者 AppSecret 不属于这个网站应用,请开发者确认 AppSecret 的正确性
40002 请确保 grant_type 字段值为 client_credential
40013 不合法的 AppID,请开发者检查 AppID 的正确性,避免异常字符,注意大小写
40125 不合法的 secret,请检查 secret 的正确性,避免异常字符,注意大小写
40164 调用接口的 IP 地址不在白名单中,请在接口 IP 白名单中进行设置
41004 缺少 secret 参数
50004 禁止使用 token 接口
50007 账号已冻结
61024 第三方平台 API 需要使用第三方平台专用 token