# 微信unionid互通场景

一、业务场景
目前大多数企业都依赖于微信公众平台来构建其产品生态，如自建的商城小程序、会员管理小程序、自主运营的微信公众号以及支持微信登录的自研APP等。在这些多样化的接触点中，unionId充当了微信用户全链路活动的唯一标识符。 尽管unionId在微信生态内实现了用户身份的统一识别，但它却无法与企业微信数据实现有效互通。 这导致了一个显著的问题：当企业成功将客户引流至企业微信平台后，客户数据便呈现断层，影响了客户关系管理和数据分析的连续性。
## 二、解决方案
此处由于企微数据安全规则等原因，尘锋作为企微服务商，无法直接通过企微提供的入口获取到微信用户的unionId。以下列出规则及条件：

   - 尘锋如何单方面获取微信用户unionId？

单纯添加企微好友后，尘锋无法获取微信用户unionId，但是微信用户可以通过主动访问由尘锋提供开发支持的尘锋商场小程序、名片小程序、H5营销素材链接等进行授权。

   - 企业自行获取到的unionId如何与尘锋互通？有什么条件？

根据企微官方规则，企业需要确保获取unionId的微信公众平台账号（如自研小程序）、微信开放平台账号、企业微信账号等认证主体完全一致，即可实现互通，仅限已经成功添加微信好友的用户进行互通。在企业通过自研小程序获取到微信用户unionId之后，可调用尘锋提供的转换接口，将unionId转换为该微信好友的external_user_id，转换成功后即为互通成功，尘锋会存储该unionId并与好友关联。
注意：如通过unionId只换取到pending_id，说明当前未添加该微信用户为好友，请定时重试。

   - 关于企业微信不再向企微服务商提供unionId的更新说明

[企业客户微信unionid的升级方案](https://developer.work.weixin.qq.com/document/path/96516#%E5%9B%9B%E3%80%81%E4%BC%81%E4%B8%9A%E5%AE%A2%E6%88%B7%E5%BE%AE%E4%BF%A1unionid%E7%9A%84%E5%8D%87%E7%BA%A7%E6%96%B9%E6%A1%88)

   - 关于企业unionId互通的认证主体要求说明

[将微信客户的unionid转为external_userid](https://developer.work.weixin.qq.com/document/path/93274)
## 三、对接流程
![微信用户unionId互通场景通用解决方案](https://cdn-sales.dustess.com/W00000000082/sales/l/o/0/g/lo0goxyz5oq1703833469910.jpg)
## 四、相关接口
| **接口名称**                                                                                                                                        | **备注**                                                                                                                                     |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| [unionId上传&关联externalUserId](https://open.dustess.com/doc-5158546.md) | 通过企业自研小程序获取到的unionId，调用尘锋接口换取微信好友external_user_id，如果当前无好友关系，则不会返回  |
| [查询好友列表](https://open.dustess.com/doc-5158543.md)                   | 当企业成功使用unionId换取到external_user_id之后，尘锋也会存储该关系，随后企业也能使用unionId查询对应好友列表数据了。                         |
| [查询联系人](https://open.dustess.com/doc-5147939.md)                 | 当企业成功使用unionId换取到external_user_id之后，尘锋也会存储该关系，如果某好友已经关联了联系人，则通过unionId也可以查询到对应联系人数据了。 |

## 五、核心字段
| **字段名**      | **备注**                                                                                                                                     |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| unionId         | 个人微信用户在微信生态的唯一标识，unionId可以与external_user_id进行关联                                                                      |
| external_userid | 企微外部联系人id，指微信好友在企微平台的唯一标识，如果有多个员工添加同1微信好友，该值不变                                                    |
| pending_id      | 企微提供的临时外部联系人id，当未添加微信用户为好友时会返回，与external_user_id有关联关系，有效期为90天，在本场景中仅为识别是否已添加为好友。 |
| customerId      | 尘锋联系人id                                                                                                                                 |

