# 获取接口调用凭据
接口应在服务器端调用,详细说明参见服务端API。
# 接口说明
# 接口英文名
getAccessToken
# 功能描述
获取小程序全局唯一后台接口调用凭据,token有效期为7200s,开发者需要进行妥善保存。
如使用云托管,也可以通过微信令牌/开放接口服务免维护 access_token 调用。
# 注意事项
# 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,值通过微信令牌取得。
- 调用微信支付也可以免维护鉴权和支付证书信息,避免证书泄漏风险。
云开发:
# 在线调试
开发者可以使用网页调试工具调试该接口
# 调用示例
示例说明: 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已被冻结,请登录小程序平台解冻后再次调用。 |