給產(chǎn)品經(jīng)理講技術(shù):微信的openid和unionid

很想寫這樣的一篇掃盲貼,剛好利用端午小長假的時間,學堂君跟大家來聊聊微信的openid和unionid 。

無論是產(chǎn)品經(jīng)理、還是H5前端工程師、客戶端前端開發(fā)人員、后端開發(fā)人員,只要進行微信開發(fā)就會跟openid和unionid打交道。特別是openid。

有些時候,我們在微信里面玩一些H5小游戲或者是進行相關(guān)操作的時候,會出現(xiàn)下面的這個界面。這個界面是微信提供給企業(yè)開發(fā)授權(quán)的頁面。

微信網(wǎng)頁授權(quán)頁面

是不是看到這樣的界面很熟悉呢?今天學堂君跟大家講的就是跟它有關(guān)的知識點。

 

下面學堂君站在產(chǎn)品經(jīng)理的角度跟大家詳細說說微信的openid和unionid 到底是啥東東。

openid 普通用戶的標識,對當前開發(fā)者帳號唯一。一個openid對應一個公眾號。

unionid 用戶統(tǒng)一標識。針對一個微信開放平臺帳號下的應用,同一用戶的unionid是唯一的。

張小龍微信8條
1、微信的用戶隱私策略:

每個接入微信的應用(公眾號、APP)就像一個獨立的商場,用戶使用這些應用就像逛商場,商場用會員卡識別用戶,類似的,我們根據(jù)商場名字為每個用戶生成了一張專屬會員卡(openid),每張會員卡只能在對應的商場才能夠使用,你不能拿著沃爾瑪?shù)臅T卡去華潤萬家積分。這是一種安全的授權(quán)方式,如果沒有這個會員卡,直接暴露微信號,就相當于拿著身份證去逛商場,丟失一個會員卡號遠比丟失身份證號要安全。

那么問題來了,都是萬達集團,萬達大歌星與萬達商場希望做到會員卡通用。微信在這里做了一個打通機制,對于同一個企業(yè),在用戶屬性里面加了一個企業(yè)屬性(UnionID),方便同一個企業(yè)在不同的產(chǎn)品中識別到同一個用戶。

微信獨有的 unionid機制, 用戶唯一標識符,同個開發(fā)賬號下的應用 有個unionid是一樣的。

這個機制伴隨著微信聯(lián)合登錄已經(jīng)在微信開放平臺(open.weixin.qq.com)推出了。獲得了開放平臺認證的企業(yè),可以綁定10個手機應用、10個網(wǎng)站、10個公眾號,他們對應的用戶信息也可以互聯(lián)互通。

 

 

2、微信openid和unionid長度是不一樣的。請記?。?/strong>

openid=28   ,    unionid=29

3、第三方獲取微信openid的兩種常見的方式

一、靜默授權(quán),用戶無感知

用戶在你開發(fā)的公眾號發(fā)消息,微信服務器將POST消息的XML數(shù)據(jù)包到開發(fā)者填寫的URL上,這時你可以通過程序獲取到改用戶的openid。

以snsapi_base為scope發(fā)起的網(wǎng)頁授權(quán),是用來獲取進入頁面的用戶的openid的,并且是靜默授權(quán)并自動跳轉(zhuǎn)到回調(diào)頁的。用戶感知的就是直接進入了回調(diào)頁(往往是業(yè)務頁面)

二、用戶同意授權(quán)

 

通過微信專有網(wǎng)頁授權(quán)頁面獲?。ㄈ缟蠄D的綠色界面),需要用戶手動點擊確認。

以snsapi_userinfo為scope發(fā)起的網(wǎng)頁授權(quán),是用來獲取用戶的基本信息的。但這種授權(quán)需要用戶手動同意,并且由于用戶同意過,所以無須關(guān)注,就可在授權(quán)后獲取該用戶的基本信息。

學堂君就哪一個具體的生活場景的案例跟大家解讀一下什么是靜默授權(quán)和用戶同意授權(quán)。

比如你去某個寫字樓拜訪某家企業(yè),進去大樓之前,保安會讓你填寫來訪登記表。這個動作就等同于微信的用戶同意授權(quán)。 如果你不是從正面進去,或者從側(cè)門、或者是溜進去,沒有填寫來訪登記信息。你直接進去了。就好比就是靜默授權(quán)。
第一種方式獲取屬于微信被動發(fā)送給開發(fā)中填寫的url的,需要用戶關(guān)注公眾號。第二種獲取屬于網(wǎng)頁發(fā)起請求去獲取的,兩種獲取方式獲取的openid的值是一樣的,用戶無需關(guān)注開發(fā)的公眾號。openid在不同的公眾號和不同的應用之間是不同的,但是 UnionID是一致的。

用戶微信授權(quán)流程圖

 

總的來說,微信網(wǎng)頁授權(quán)流程分為四步:

1、引導用戶進入授權(quán)頁面同意授權(quán),獲取code

2、通過code換取網(wǎng)頁授權(quán)access_token(與基礎支持中的access_token不同)

3、如果需要,開發(fā)者可以刷新網(wǎng)頁授權(quán)access_token,避免過期

4、通過網(wǎng)頁授權(quán)access_token和openid獲取用戶基本信息(支持UnionID機制)

 

詳細的實現(xiàn)方法,童鞋們可以微信官網(wǎng)的文檔:網(wǎng)頁授權(quán)獲取用戶基本信息  解讀。

微信開放平臺unionid

4、網(wǎng)頁授權(quán)獲取用戶基本信息也遵循UnionID機制。

即如果開發(fā)者有在多個公眾號,或在公眾號、移動應用之間統(tǒng)一用戶帳號的需求,需要前往微信開放平臺(open.weixin.qq.com)綁定公眾號后,才可利用UnionID機制來滿足上述需求。

有一個地方需要注意的:

即我們在使用微信網(wǎng)頁版本的時候,生成微信二維碼用戶掃描登錄,此時獲取的openid和前面我們所說通過微信客戶端獲取的openid就不是一樣的,但是UnionID是一樣的,這是因為,網(wǎng)頁二維碼掃描登錄是網(wǎng)站應用,第一種獲取openid是公眾號,兩者屬于不同應用,所以是不一樣的。

有興趣的小伙伴可以去嘗試體驗下!

 

5、UnionID機制的優(yōu)勢和好處

對于用戶來說,用一個微信號就可以同時跨平臺登陸公眾號、移動應用和PC網(wǎng)站,無需重新注冊,方便快捷。

對于開發(fā)者來說:

1、可以降低用戶注冊成本,提高用戶留存率,更好的管理用戶資料。

2、如果是PC網(wǎng)站,微信登陸就和我們在PC上登陸網(wǎng)頁版的微信一樣,直接掃描二維碼即可,極大的方便了用戶,而且保障安全。

3、當同一用戶用同一微信同時登陸PC網(wǎng)站、移動應用、公眾號,這三方的數(shù)據(jù)就可統(tǒng)一儲存,用戶無論在哪一端進行操作,三大平臺都會統(tǒng)一修改結(jié)果,這將極大方便了對同一用戶的數(shù)據(jù)管理和行為統(tǒng)計。

 

 

總結(jié):任何程序的開發(fā)原理和機制都是來源于生活,學會用互聯(lián)網(wǎng)的專業(yè)技能把我們?nèi)粘5囊恍┥顖鼍稗D(zhuǎn)換成技術(shù)門檻和機制。這也是一種提升自身專業(yè)水平能力的具體表現(xiàn)(撩妹技能)。

 


每天更新,
全站高品質(zhì)素材免費下載!