开放平台

授权流程说明

# 授权流程技术说明

# 一、概述

# (1)整体说明

1、本文涉及的小程序或者公众号授权给第三方平台的技术实现流程仅适用于平台型第三方平台,不适用于定制化型第三方平台。

2、当前提供了三种授权方式,分别是PC版扫码授权、H5版授权及小程序插件版授权,开发者可根据自身业务情况,选择合适的授权方式。

3、服务商获取商家授权是“服务商为商家提供服务”的基础,服务商可以按照下方文档说明构建授权链接与授权码,亦可以通过“一键部署官方提供的第三方平台云服务”的方式获得系统自动生成的授权链接与授权码。

4、完成一次完整的授权,需要服务商与商家的配合,相关流程如下。

参数 必填 说明
component_appid 第三方平台方 appid
pre_auth_code 预授权码
redirect_uri - 授权回调 URI(填写格式为https://xxx)。(插件版无该参数)
- 管理员授权确认之后会自动跳转进入回调 URI,并在 URL 参数中返回授权码和过期时间(redirect_url?auth_code=xxx&expires_in=600)
auth_type - 要授权的账号类型,即商家点击授权链接或者扫了授权码之后,展示在用户手机端的授权账号类型。
- 1 表示手机端仅展示公众号;2 表示仅展示小程序,3 表示公众号和小程序都展示。如果为未指定,则默认小程序和公众号都展示。
- 第三方平台开发者可以使用本字段来控制授权的账号类型。
- 对于已经注销、冻结、封禁、以及未完成注册的账号不再出现于授权账号列表。
biz_appid - 指定授权唯一的小程序或公众号 。
- 如果指定了appid,则只能是该appid的管理员进行授权,其他用户扫码会出现报错。
- auth_type、biz_appid 两个字段如果设置的信息冲突,则biz_appid生效的优先级更高。
- 例如,auth_type=1,但是biz_appid是小程序的appid,则会按照auth_type=2来处理,即以biz_appid的类型为准去拉出来对应的权限集列表.
category_id_list - 指定的权限集id列表,如果不指定,则默认拉取当前第三方账号已经全网发布的权限集列表。
- 如需要指定单个权限集ID,写法为“category_id_list=99” ,如果有多个权限集,则权限集id与id之间用中竖线隔开。

# 2、授权列表页逻辑说明

  • 当商家进入了授权账号列表页展示的账号列表,除了受“授权参数”影响,还与第三方平台账号的配置有关,以及与微信号用户的角色有关。
版本 使用场景
PC版 - 访问PC版授权链接则会自动出现授权码,商家以微信扫码的方式进入授权账号列表页,选择账号以完成授权。
- 通常将该链接放置服务商PC版官网或者saas业务控制台中
H5版 - 访问H5版授权链接则直接进入授权账号列表页,选择账号以完成授权。
- 通常将该链接放置服务商H5版(例如服务号)官网或者saas业务控制台中
插件版 - 商家可在服务商小程序里直接进入授权账号列表页,选择账号以完成授权。
- 通常将该链接放置服务商小程序版官网或者saas业务控制台中

# 4、授权链接拼接方式

版本 使用场景
PC版 https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx
H5版-新版 https://open.weixin.qq.com/wxaopen/safe/bindcomponent?action=bindcomponent&no_scan=1&component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx&biz_appid=xxxx#wechat_redirect
H5版-旧版 https://mp.weixin.qq.com/safe/bindcomponent?action=bindcomponent&no_scan=1&component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx&biz_appid=xxxx#wechat_redirect

# 5、插件版使用方式

  • 需先申请“服务商组件”方可使用插件版授权页,关于小程序服务商组件到更多使用指南,请查看https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/product/Register_Mini_Programs/beta_mp_plugin.html
# 代码示例
const MiniprogramThirdpartyPlugin = requirePlugin('miniprogram-thirdparty-plugin')  

// 初始化 
MiniprogramThirdpartyPlugin.init(wx)  

// 请求用户授权 
MiniprogramThirdpartyPlugin.openAuthorizeAccount({
   platformAppID: '', 
   preAuthCode:‘’,//获取的预授权码
   authType:3, 
   bizAppid: wxxxxxxxxx,//非必填字段,参数详情请看文章末尾
   }) 
# 插件版参数说明
参数 必填
platformAppID 第三方平台方 appid
preAuthCode 预授权码,可通过pre_auth_code接口获得
authType 要授权的账号类型:1 则商户点击链接后,手机端仅展示公众号、2 表示仅展示小程序,3 表示公众号和小程序都展示。如果为未指定,则默认小程序和公众号都展示。第三方平台开发者可以使用本字段来控制授权的账号类型。
bizAppid 指定授权唯一的小程序或公众号

# 三、商家的使用步骤

  • 可前往授权相关操作进行查看。