实现微信UnionID与多个系统UserID关联方法
一、背景与目的
如果我们系统的用户账号与微信账号是一对一的关系,那么我们可以轻松地将系统数据与微信生态应用中的数据联通起来。
但是由于业务需求或特殊情况,我们的用户系统账号与微信账号往往无法保持一对一的映射关系,例如允许用户在小程序之间切换账号,或者将多个系统子账号的通知推送到同一个微信公众号中。本文将介绍在用户系统账号与微信账号一对多的情况下,如何设计来实现数据的互通。
二、方案设计
1. 微信用户体系调研
对于同一个用户,在同一个微信开放平台账号下的不同移动应用、网站应用和公众号(包括小程序)中,OpenID不同,但UnionID相同。例如,如果您拥有小程序A、小程序B和一个微信公众号,并将它们绑定到同一个微信开放平台账号下,当微信用户进入小程序A、小程序B或公众号时,他们获得的UnionID是相同的。这意味着可以根据UnionID查询当前微信用户在同一开放平台下的每个小程序或公众号中的数据,从而实现了数据的高效共享。
2. 设计思路
- 为满足业务需求,应允许一个UnionID绑定多个UserID;
- 根据微信用户体系调查,应允许一个UnionID对应多个不同应用(在同一开放平台下)的OpenID,并且确保UnionID和各个OpenID之间具有唯一性(即一个UnionID对应不同应用的OpenID不会重复);
- 为提高产品易用性并降低用户操作成本,UserID、UnionID和OpenID之间的关联操作应灵活,不要求用户按照特定顺序执行。例如,用户可以先关注公众号,然后登录小程序以完成关联,也可以通过登录小程序后再关注公众号来完成关联;
- 为确保账户信息的安全性和操作准确性,不允许一个UserID绑定多个UnionID。当UserID已经关联了一个UnionID时,应将其更新为当前登录的UnionID和OpenID;
- 在数据新增和更新时,应同时将UserID和UnionID作为主键,以避免一个UserID对应多个UnionID的数据存在。
3. 设计方案
根据上述解决方案思路,我们为以下4个场景进行了详细设计:登录小程序、通过Web扫码关注公众号、通过微信关注公众号以及取消关注公众号。通过这些设计,我们实现了以下效果:
- 一个微信账号可以登录多个系统账号,并且多个系统账号的信息可以推送至该微信的公众号中。
- 用户可以在这4个场景中随意执行,不受顺序限制,而仍然能够确保系统账号与小程序、公众号的准确关联。
登录小程序场景:
Web扫码关注公众号:
微信里关注公众号:
取消关注公众号:
三、最后
本文详细探讨了在用户系统账号与微信账号无法一一对应时,如何设计系统以实现数据的互通。实现过程中,需注意用户操作的灵活性和信息的安全性。用户可以在不同的场景中自由切换,而系统能够确保账号之间的准确关联。同时,通过将UserID和UnionID作为主键,我们避免了一个UserID对应多个UnionID的数据冲突,确保了数据的一致性和准确性。
本文作者 @Kuang扶正义的匡
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!