實現微信UnionID與多個系統UserID關聯方法

2 評論 5395 瀏覽 29 收藏 6 分鐘

下邊這篇文章筆者將介紹在用戶系統賬號與微信賬號一對多的情況下,如何設計來實現數據的互通的相關信息。有需要了解相關信息的同學可以了解了解。

一、背景與目的

如果我們系統的用戶賬號與微信賬號是一對一的關系,那么我們可以輕松地將系統數據與微信生態應用中的數據聯通起來。

但是由于業務需求或特殊情況,我們的用戶系統賬號與微信賬號往往無法保持一對一的映射關系,例如允許用戶在小程序之間切換賬號,或者將多個系統子賬號的通知推送到同一個微信公眾號中。本文將介紹在用戶系統賬號與微信賬號一對多的情況下,如何設計來實現數據的互通。

二、方案設計

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扶正義的匡 原創發布于人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 什么情況下,userid對應unionid會發生變化,以出現重新綁定的場景

    來自上海 回復
    1. 如果產品還是用同一個開放平臺賬號的情況下,那么用戶切換微信登錄同一個userid賬號的時候,unionid就會變化了。進而,對應的openid也會發生變化滴~

      來自廣東 回復