微信小程序

获取接口调用凭据

# 获取接口调用凭据

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

# 接口说明

# 接口英文名

getAccessToken

# 功能描述

  • 获取小程序全局唯一后台接口调用凭据,token有效期为7200s,开发者需要进行妥善保存。

  • 如使用云开发,可通过云调用免维护 access_token 调用。

  • 如使用云托管,也可以通过微信令牌/开放接口服务免维护 access_token 调用。

# 调用方式

# 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 的正确性,避免异常字符,注意大小写