在做微信第三方平台开发的时候,虽然授权的技术实现流程比较简单,但是相对于一个key直接集成的一些其他的服务来说,还是有一些步骤,过一段时间再回头查相关功能时还是可能忘记的,虽然官方的文档很全,但时每次都要前前后后看文档或每次都要走一遍步骤还是挺浪费时间的.
于是本人整理了下相关内容,进行分享和讨论.
目录
交互流程
搬自官网,以公众号为例,授权给第三方平台整体流程如下图:
wechat_authorization_official
具体的步骤为:
- 第三方平台方获取预授权码(
pre_auth_code
) - 引入用户进入授权页(PC和移动端)
- 用户确认并同意登录授权给第三方平台方
- 授权后回调URI,得到授权码(
authorization_code
)和过期时间 - 利用授权码调用公众号或小程序的相关API(获取授权方的token等)
接口调用流程
整体流程还是很清晰易懂的,但是到具体接口调用时可能会有一些混乱,比如接口之间的参数的衔接等.因此本人制作了一张图,从接口调用的角度来描述授权的流程,如下:
wechat_authorization步骤从上到下
常见问题
1. component_access_token
的更新方式
答: 使用获取接口来更新.
2. authorizer_access_token
的更新方式
答: 使用refresh_token
来更新.
refresh_token
也要同时使用最新返回的结果
3. authorizer_refresh_token
的丢失处理
答: 需要重新授权(从头来一遍).
4. component_access_token
和authorizer_access_token
的更新机制
答: 主动+被动.
- 主动: 设定定时任务(如:1min)分别检查
component_access_token
和authorizer_access_token
是否快过期或过期,如果是则更新token - 被动: 每次使用
component_access_token
或authorizer_access_token
时,先检查相应其是否过期,如果过期则更新token再继续相应操作