开发指南/平台简介/基本概念/用户身份体系/应用示例
# 应用示例

## **ISV** **商店应用场景**

**「无限未来科技公司」** 在Lark注册了一个团队，并且通过Lark官方认证获得了 ISV 应用开发资质，在该团队内有两个开发者**小王**和**小李**，分别开发并上架了**小狗商店**和**小猫书店**两个应用。

![image.png](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/57acf17b64dace4908da619d05b7c8a1_kcg6eYiPe4.png?height=906&lazyload=true&maxWidth=600&width=1888)

**「美好生活公司」** 从Lark应用商店中安装了这两款应用，美好生活的团队成员小娴是这两个应用的忠实粉丝，这时**小娴**在**小狗商店**中的`open_id`和在**小猫书店**中的`open_id`是完全不同的，但是`union_id`则相同。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/889b93d1e461ce2e9d941b7d90e6785f_QRWDXe4nxq.png?height=852&lazyload=true&maxWidth=600&width=1702)

**无限未来科技公司** 可以通过`union_id`发现**小娴**在**小狗商店**中的使用行为，并利用这些数据在**小猫书店**中为小娴做商品推荐。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/4e2ad3d25fa21967847fdbda27e697fe_mKeUGyg1iz.png?height=862&lazyload=true&maxWidth=600&width=1706)

但是如果另有一个软件开发商提供了一个**小鹿礼品店**，并且也安装到了「**美好生活公司」**，**小娴**在该应用下的`union_id`则完全不同，也就是说 **跨开发商提供的应用中 **`union_id`** 的值是相互隔离的**。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/d7093ca39d7404b1b35866c74000b1fa_rtcpXgwG8M.png?height=844&lazyload=true&maxWidth=600&width=1712)

## **自建应用场景**

在自建应用的场景中也是类似，区别在于**自建应用只可在应用开发者所在的租户内使用**， Open ID 在不同的自建应用中不同，但是 Union ID 则相同。

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/c0bdb7983372d77a8392f91f0ce88ba5_5ptr0MT8YZ.png?height=856&lazyload=true&maxWidth=550&width=1706)  

![](//sf16-sg.larksuitecdn.com/obj/open-platform-opendoc-sg/0c5bb8a2132cb0216a4cc767d479af25_4t1nLQgVpj.png?height=858&lazyload=true&maxWidth=550&width=1712)

Open ID 和 Union ID 都是基于应用层面的概念。如果用户处于两个不同的租户下，即 **User ID 不相同的话， Open ID 和 Union ID 也都是隔离的**。

例如: 上例中的用户小娴除了是「**美好生活公司**」的成员，同时还是租户「**新洲小学**」的成员，并且这两个租户都安装了**小狗商店**这个应用，小娴在这两个团队内的**小狗商店**应用中的`union_id`也是不相同的。