# 获取接口调用凭据

接口应在服务器端调用,详细说明参见服务端API

# 接口说明

# 接口英文名

getAccessToken

# 功能描述

# 注意事项

# AppSecret 安全提醒

  • AppSecret是账号使用后台API接口的小程序密钥,请开发者妥善保管,避免因泄露造成账号被其它人冒用等风险。如长期无AppSecret的使用需求,开发者可以使用管理员账号登录小程序平台,在“开发-开发管理”中对AppSeceret进行冻结,提高账号的安全性。AppSecret冻结后,开发者无法使用AppSecret获取Access token(接口返回错误码40243),不影响账号基本功能的正常使用,不影响通过第三方授权调用后台接口,不影响云开发调用后台接口。开发者可以随时使用管理员账号登录小程序平台,在“开发-开发管理”中对AppSecret进行解冻。

# 调用方式

# HTTPS 调用


GET https://api.weixin.qq.com/cgi-bin/token 

# 请求参数

属性 类型 必填 说明
grant_type string 填写 client_credential
appid string 小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
secret string 小程序唯一凭证密钥,即 AppSecret,获取方式同 appid

# 返回参数

属性 类型 说明
access_token string 获取到的凭证
expires_in number 凭证有效时间,单位:秒。目前是7200秒之内的值。

# 其他说明

# 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 的刷新流程。

详情可参考微信公众平台文档 《获取access_token》

# 免维护 access_token 的场景

如果使用了云托管云开发,可以免维护 access_token,免鉴权直接调用服务端接口。

云托管:

  • 通过微信令牌免维护 access_token 发起服务端调用,在调用微信服务端接口时,将 URL 上的 access_token 参数改成 cloudbase_access_token,值通过微信令牌取得。
  • 调用微信支付也可以免维护鉴权和支付证书信息,避免证书泄漏风险。

云开发:

  • 通过云开发云调用免维护 access_token 调用。
  • 调用微信支付也可以免维护鉴权和支付证书信息,避免证书泄漏风险。

# 在线调试

开发者可以使用网页调试工具调试该接口

# 调用示例

示例说明: HTTPS调用示例

# 请求数据示例


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

# 返回数据示例


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

# 错误码

错误码 错误描述 解决方案
-1 system error 系统繁忙,此时请开发者稍候再试
40001 invalid credential  access_token isinvalid or not latest 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口
40013 invalid appid 不合法的 AppID ,请开发者检查 AppID 的正确性,避免异常字符,注意大小写
40002 invalid grant_type 不合法的凭证类型
40125 不合法的 secret 请检查 secret 的正确性,避免异常字符,注意大小写
40164 调用接口的IP地址不在白名单中 请在接口IP白名单中进行设置
41004 appsecret missing 缺少 secret 参数
50004 禁止使用 token 接口
50007 账号已冻结
61024 第三方平台 API 需要使用第三方平台专用 token
40243 AppSecret已被冻结,请登录小程序平台解冻后再次调用。