微信中OpenID和UnionID的關係

一、官方說明:

如果開發者擁有多個移動應用、網站應用、和公衆帳號(包括小程序),可通過UnionID來區分用戶的唯一性,因爲只要是同一個微信開放平臺帳號下的移動應用、網站應用和公衆帳號(包括小程序),用戶的UnionID是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應用,UnionID是相同的。

二、UnionID:用戶統一標識,針對一個微信開放平臺帳號下的應用,同一用戶的unionid是唯一的。

三、OpenID: 普通用戶的標識,對當前開發者帳號唯一。一個OpenID對應一個公衆號。

四、總結:

同一個微信開放平臺下的相同主體的App、公衆號、小程序,如果用戶已經關注公衆號,或者曾經登錄過App或公衆號,則用戶打開小程序時,開發者可以直接通過wx.login獲取到該用戶UnionID,無須用戶再次授權。

1、微信openid和unionid長度是不一樣的:openid=28,unionid=29

2、openid同一用戶同一應用唯一,unionid同一用戶不同應用唯一。這裏的不同應用是指在同一微信開發平臺下的不同應用。

3、爲了識別用戶,每個用戶針對每個公衆號會產生一個安全的openid。

4、如果需要在多公衆號、移動應用之間做用戶共通,則需要前往微信開放平臺,將這些公衆號和應用綁定到一個開放平臺賬號下,綁定後,一個用戶雖然對多個公衆號和應用有多個不同的openid,但他對所有這些同一開放平臺賬號下的公衆號和應用,只有一個unionid。一個微信開放平臺只可以綁定10個公衆號。

5、對於在pc端和客戶端

我們在使用微信網頁版本的時候,生成微信二維碼用戶掃描登錄,此時獲取的openid和微信客戶端的openid是不一樣的,但是unionId是一樣的。這是因爲,網頁二維碼掃描登錄是網站應用,客戶端是公衆號,兩者屬於不同應用。

6、獲取用戶的openid是無需用戶同意的,獲取用戶的基本信息則需要用戶同意。

7、問題:如果先有公衆號並且積累了大量粉絲,然後纔有的小程序,然後想在小程序下也能識別公衆號粉絲怎麼辦呢?

8、解決:

8.1、首先將公衆號和小程序關聯到同一個開放平臺賬號;

8.2、通過API將公衆號粉絲列表全部拉一遍,同時計算這些粉絲的unionid並保存起來;

8.3、用戶進入小程序時計算unionid,然後根據之前保存的公衆號粉絲unionid的數據映射過去就好了。

9、早期沒有開放平臺,後面註冊,可以生成唯一的unionid來保證用戶是唯一的。後面上線小程序可以保證會員一致。

原文鏈接:https://blog.csdn.net/qq_32858649/java/article/details/82877023

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章