前言
微信开放平台的授权是,为了让公众或小程序运营者,在面向垂直行业需求时,可以一键授权给第三方平台(并且可以同时授权给多家第三方),通过第三方平台来完成业务。简单地说,就是垂直行业的第三方平台出垂直的业务功能,提供给行业里公众运营者使用,让公众运营者无需自行去一套业务系统。
本文就带着这思路,带您一起探索微信开放平台的授权和业务过程。
微信开放平台授权流程技术说明
我们通过微信授权获取用户的信息进行存储,将用户注册的信息和微信平台的信息关联起来。图中的组件方就是我们,用户访问我们的网站。
1. 在后台公众平台 获取预授权码
请求方式:(请使用 协议)
数据示例:
返回结果示例:
2. 引导公众和小程序进入授权页
两种方式:
1. 在自己的网站中放置“微信公众授权”或“小程序授权”的入口2. 生成授权链接放置在网页中
方式 1:授权页扫码授权
我们需要让用户点击授权按钮后 进入一个授权地址(不能用 方式),网页的授权页网址格式为:
和 代表了两种请求转发方式:直接转发和间接转发。
直接转发方式():客户端和浏览器只发出一次请求,而 、、 或其它信息资源,由第二个信息资源响应该请求。在请求对象 中,保存的对象对于每个信息资源是共享的。间接转发方式():实际是两次 请求,服务器端在响应第一次请求时,让浏览器再向另外一个 发出请求,从而达到转发的目的。
方式 2:点击端链接快速授权
其实与网页授权类似,但是授权链接不同,端的授权地址格式为:
参数介绍
注:_、_ 两个字段互斥,二选其一。
3. 授权后回调 ,得到授权码(_)和过期时间
用户点击授权按钮跳转授权页,完成授权流程后,授权页会自动跳转进入回调 (这是自己网站 接收授权码 的接口地址),并在 参数中返回授权码和过期时间(_?_=&_=600)。
4. 使用授权码换取公众或小程序的接口调用凭据和授权信息
数据示例:
上面的流程讲完,肯定有人蒙圈:
_、__ 怎么来的?
微信开放平台流程
接下来,我们开始正式讲解开放平台的内容。
1. 配置讲解
权限集根据自己的需要进行设置,这里主要讲配置。里面有个部分是校验域名,校验文件需要放到 服务器的根目录下。
登录授权的发起页域名格式为 .
授权测试公众列表:(最多 10 个,以英文“;”隔开)
授权事件接收 :
消息校验 ,消息加解密 。顾名思义,用于校验和加解密。
消息与事件接收 :
公众域名:(以英文“;”隔开)
小程序服务器域名:(以英文“;”隔开)
白名单 地址列表:设置域名所在 地址,可设置为入口的 地址。
2. 参数讲解
_:第三方平台 ,申请开放平台时生成。_:第三方平台 ,申请开放平台时生成,可重置。__:第三方平台 _,通过 获取,有效期 2 小时,最好在令牌快过期时(比如 1 小时 50 分)再进行刷新。__:微信后台推送的 ,此 会每隔 10 分钟定时推送,者要接口进行接收,接收到后必须直接返回字符串 。
(1) 接收
授权事件接收 接收的格式:
注意:
__ 的有效时间较__ 更长,建议保存最近可用的 __,在 __ 过期之前使用该 进行更新,避免出现因为 接收失败而无法更新 __ 的情况。
(2) 获取第三方平台
__ 是第三方平台 接口的调用凭据,也叫做令牌。
(3) 获取预授权码 ,进行授权回调
预授权码用于公众或小程序授权时的第三方平台方安全验证。我们要先获取 __,然后将《微信开放平台授权流程技术说明》授权部分拿过来看。你会发现授权页的参数中需要 _、__、_、_、_。
数据示例:
(4) 用户授权后回调 ,得到授权码 (_)
_?_=&_=600
(5) 使用授权码换取公众或小程序的接口调用凭据和授权信息
(6) 获取(刷新)授权公众或小程序的接口调用凭据(令牌)
此 用于在授权方令牌(__,2 小时失效,调用次数受限)失效时,可用刷新令牌(__)获取新的令牌。当通过接口换取新__后建议保存。
接口调用频次限制说明:
... /-//?=
(7) 获取授权方的帐基本信息
公众或小程序都可以通过这个地址来请求,获取授权方的基本信息,包括头像、昵称、帐类型、认证类型、微、原始 和二维码图片 。
公众返回结果示例:
小程序返回结果示例:
(8) 推送授权相关通知
当公众对第三方平台进行授权、取消授权、更新授权后,微信服务器会向第三方平台方的授权接收 (创建第三方平台时填写)推送相关通知。
接收的 数据示例(授权成功通知):
接收的 数据示例(取消授权通知):
接收的 数据示例(授权更新通知):
运行 -- 的案例解析
案例 :
.
配置微信第三方平台中的授权事件接收 :
配置微信第三方平台中的公众消息与事件接收 :
首次启动后需要等待收到微信推送的 __ 后才可以使用接口(在第三方平台创建审核通过后,微信服务器每隔 10 分钟会向授权事件接收 推送一次 __)。
授权事件接收 ()的实现方法:
解析了微信推送过来的数据 ,再通过 用 方法保存更新 __到 中。
消息与事件处理 ()的实现方法:
通过解析 消息类型,返回对应的数据结果(这个方法需要公众授权后使用)。
.
本案例的授权信息存储存放在 上,所以重启应用时,. 会在初始化过程中读取之前的授权信息,避免了重启导致服务无法使用的问题。
公众授权
我们要使用上面的消息接收功能需要公众先授权。所以通过访问 //___ 地址,指引公众用户进入授权引导页。点击 ,触发授权页,再跳转到微信平台的二维码授权页面,让用户进行扫码授权。这样,消息与事件处理 就能接收到公众传输过来的消息。
有问题,欢迎在评论区下方与我们交流!