# 基本概念介绍

为了帮助开发者更快的掌握第三方平台开发以及更高效地基于第三方平台为商家提供服务,本文将就常见的术语进行介绍。

# 一、不同类型的ID

ID名称 说明
AppID - AppID是不同类型的产品的帐号 ID ,是帐号的唯一标识符。
- 例如公众号的AppID、小程序的AppID、开放平台的AppID、第三方平台的AppID、移动应用的AppID、网站应用的AppID、小商店的 AppID 等等。
openid - openid是微信用户在不同类型的产品的身份ID。
- 微信用户访问公众号、小程序、移动应用、网站应用、小商店等都会有唯一的openid,但同一个微信用户访问不同的产品生成的 openid 也是不一样的。
- 例如,对于不同公众号,同一用户的 openid 不同;同理,对于不同的小程序,同一用户的 openid 也是不同的
unionid - unionid是微信用户在同一个开放平台下的产品的身份ID。
- 如果开发者拥有多个移动应用、网站应用、和公众帐号(即公众号和小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的 UnionID 是唯一的。即,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

在服务商代商家运营公众号和小程序的场景中,通常会对商家的开放平台帐号和服务商的第三方平台帐号关系混淆。为了避免再出现此情况,开发者可参考下图理清相关关系。

注意区分几个概念

# 1、商家的开放平台帐号 VS 服务商的开放平台帐号

  • 要将商家的公众号、小程序绑定到商家的开放平台帐号下,才能实现为商家将公众号和小程序的用户身份打通。
  • 不是将商家的公众号和小程序绑定到服务商的开放平台帐号下进行身份打通。换而言之就是,服务商无法实现将所有商家的公众号和小程序的用户身份打通。服务商只能帮助商家将绑定在商家开放平台帐号下公众号和小程序的用户身份打通。
  • 如果商家没有开放平台帐号,可以先引导商家到微信开放平台进行注册,然后再将商家自己的公众号小程序绑定于开放平台下。
  • 此外,服务商也可以调用接口为商家创建开放平台帐号、绑定公众号和小程序。

# 2、“绑定” VS “授权”

  • “绑定”指的是将商家将其公众号或者小程序帐号绑定到商家的开放平台下
  • “授权”是指商家将其公众号或者小程序扫码授权给服务商的第三方平台帐号
  • 对于一些集团型的企业,申请第三方平台是为了服务集团内的公众号和小程序。对于同一公司的公众号和小程序有身份打通的需求,即需要将公众号和小程序挂到同一个开放平台帐号下。
  • 但由于集团公司业务复杂性,会申请多个第三方平台帐号(即会有多个开放平台帐号)。这种情况下,开发者只需要将所有的公众号和小程序绑到一个开放平台帐号即可,多申请的开放平台帐号不需要再绑定任何的公众号和小程序,只是用来创建第三方平台帐号即可。大概的结构图如下:

# 二、授权小程序与开发小程序

小程序名称 说明
授权小程序(又名商家小程序) - 商家可以有小程序,服务商也可以有小程序,为了高效沟通,通常将商家主体的小程序称为商家小程序;
- 当商家将其小程序授权给服务商之后,则称之为授权小程序。
- 然而,商家可以将公众号和小程序都授权给服务商,统称为授权帐号,指的是已经授权给服务商的帐号(含公众号和小程序帐号)
- 与授权帐号相对的是服务商帐号,通常是使用第三方平台帐号来代指服务商帐号。
开发小程序(又名模板小程序) - 商家小程序通常是最终会发布上线,成为一个可用的应用为 C 端用户提供服务的。
- 而开发小程序只是服务商用于进行小程序代码的编写、用于小程序的调试等工作,通常不会发布上线。
- 由于一份小程序的代码可以批量复制于无数个商家小程序,这份母版小程序代码又称小程序模板代码,用于开发该母版小程序代码的小程序帐号则是“开发小程序”帐号,也称之为“模板小程序”帐号。
- “开发小程序”其实也是一个普通的小程序帐号,只需要将普通小程序绑定到第三方平台帐号中即为“开发小程序”。

注意区分几个概念

# 3、将帐号绑定到开放平台帐号 VS 将帐号绑定到第三方平台帐号

操作 说明
将帐号绑定到开放平台帐号 - 这通常是商家侧的行为,目的是将同一开放平台下的应用的用户身份打通;
将帐号绑定到第三方平台帐号 - 这通常是服务商侧的行为,目的是使用“开发小程序”为商家提供代开发小程序服务
  • 逻辑关系如下:
  • 操作截图如下:

# 4、3rdMiniProgramAppid VS extAppid

小程序 appid 类型 说明
3rdMiniProgramAppid - 指的是“开发小程序”的appid
extAppid - 指的是授权给第三方平台的商家小程序的appid。
- 当服务商希望在小程序模板代码中结合某个商家小程序进行个性化的开发和调试,即可通过该参数来完成,详情可查看第三方平台代开发说明

# 三、不同类型的token

token名称 说明
access_token - 是使用公众号、小程序、网站应用或者移动应用的 Appid 和 secret 生成的。
- 使用 access_token 调用官方接口,指的是使用商家身份调用接口,常用于自研模式。
- 公众号、小程序、网站应用、移动应用的接口均支持使用 access_token 调用。
component_access_token - 是使用第三方平台帐号的 Appid 和 secret 以及 component_verify_ticket 生成的。
- 使用 component_access_token 调用官方接口,指的是使用服务商身份调用只开放给服务商的接口。
- 第三方平台的部分接口支持使用 component_access_token 调用。
authorizer_access_token - 是在获得商家授权的情况下,使用 component_access_token 和授权帐号 authorizer_appid 生成的。
- 使用 authorizer_access_token 调用官方接口,指的是服务商代商家(服务商以商家身份)调用接口,常用于第三方开发模式。
- 公众号、小程序的接口以及第三方平台的部分接口支持使用 authorizer_access_token 调用。
- 网站应用、移动应用的接口不支持使用 authorizer_access_token 调用。
  • 在保障安全的情况下,为了降低开发者维护 token 的成本,官方接口也支持使用“云调用”的方式免 token 调用,详情可查看云调用&微信令牌
  • token生成的步骤可查看token生成介绍

# 四、授权操作介绍

完成一次完整的授权,需要服务商与商家的配合,相关流程如下,操作截图可查看授权与解除授权