# 基本概念介绍

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

# 一、不同类型的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生成介绍

# 四、授权操作介绍

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