Nivelle 开拓视野冲破艰险看见世界 身临其境贴近彼此感受生活

微信服务号开发之access_token

2017-09-02
nivelle

access_token

定义:access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

生成策略:

  1. 采用统一的控制器去获取和刷新Access_token,各个业务逻辑都使用这个控制器中的access_token.

  2. expire_in表示access_token的有效时间,目前是7200秒(这一时间并不稳定),应该在过期前去刷新以免影响业务.公众号平台保证在后台刷新过程中,新老access_token都可用.

  3. 因为access_token有效性不稳定,需设置被动刷新access_token的策略,当发现access_token已经过期能及时刷新,保证服务正常.

接口说明:

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

参数 描述
grant_type 获取access_token填写client_credential,表示使用的授权模式(网页授权使用的是授权码模式,它使用的是客户端模式)
appid 第三方用户唯一凭证
secret 第三方用户唯一凭证密钥,即appsecret

说明:grant_type支持的五种授权模式

  1. authorization_code — 授权码模式(即先登录获取code,再获取token)

  2. password — 密码模式(将用户名,密码传过去,直接获取token)

  3. client_credentials — 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向’服务端’获取资源)

  4. implicit — 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)

  5. refresh_token — 刷新access_token

返回值,正常情况下:

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

错误情况下:


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

常见返回码:

返回码 说明
-1 系统繁忙,此时请开发者稍候再试
0 请求成功
40001 AppSecret错误或者AppSecret不属于这个公众号,请开发者确认AppSecret的正确性
40002 请确保grant_type字段值为client_credential
40164 调用接口的IP地址不在白名单中,请在接口IP白名单中进行设置

评论