原文地址: https://mp.weixin.qq.com/s/dX0v-Ovvrjm9Q7o9lPGNKw
在微信開發(fā)中,當(dāng)開發(fā)者擁有多個移動應(yīng)用、網(wǎng)站應(yīng)用和公眾號(含小程序,下同)時,可以通過獲取微信用戶的unionid來區(qū)分用戶的唯一性。因為只要是同一個微信開放平臺帳號下的移動應(yīng)用、網(wǎng)站應(yīng)用和公眾號,用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應(yīng)用,unionid是相同的。
對于微信公眾平臺第三方平臺(以下簡稱第三方平臺)的開發(fā)者而言,在平臺同一賬戶下對應(yīng)的多個公眾賬號時,為方便用戶的管理,也需考慮使用一致的用戶unionid來識別用戶,要實現(xiàn)用戶的unionid一致,關(guān)鍵是要將其所有的公眾賬號綁定在同一微信開發(fā)平臺賬號下。這就需要公眾號在授權(quán)給第三方平臺時,將微信開放平臺帳號管理權(quán)限授予平臺。
第三方平臺在獲得此權(quán)限后,可以代替已授權(quán)的公眾號創(chuàng)建開放平臺帳號或進行綁定/解綁操作。而綁定在同一個開放平臺帳號下的公眾號,用戶unionid一致。開發(fā)者可調(diào)用“獲取用戶基本信息(wx.getUserInfo)”接口獲取用戶unionid。
微信開放平臺帳號管理權(quán)限具體包括以下接口:
1)創(chuàng)建開放平臺帳號并綁定公眾號;
2)將公眾號綁定到已有開放平臺帳號下;
3)將公眾號從開放平臺帳號下解綁;
4)獲取公眾號所綁定的開放平臺帳號。
需注意的是:
1)第三方平臺只能綁定/解綁與開放平臺主體一致的公眾號。這意味著如果開發(fā)者要使用此權(quán)限來管理第三方平臺同一賬戶下多個公眾號的用戶時,需要約束其同一賬戶的公眾號主體一致。是否有此約束條件需考慮第三方平臺具體的需求場景。如平臺不能有此約束條件,則不建議使用文章提到方法來管理用戶的unionid。
2)第三方平臺不可操作(包括綁定/解綁) 通過open.weixin.qq.com線上流程注冊的開放平臺帳號。這意味著通過此權(quán)限,第三方平臺只能將公眾號綁定在第三方平臺通過api創(chuàng)建的開放平臺賬戶中,且不能解綁已經(jīng)人工綁定在開放平臺賬戶上的公眾號。
3)此權(quán)限是一個互斥權(quán)限,用戶授權(quán)給別的第三方平臺后,需在微信公眾平臺中解綁后才能授權(quán)給第三方平臺。
下面結(jié)合某第三方平臺的公眾號綁定授權(quán)流程來講解微信開放平臺帳號管理權(quán)限的使用。
此第三方平臺在授權(quán)檢測部分對授權(quán)的公眾號有認(rèn)證服務(wù)號和全部非互斥權(quán)限獲取的要求,其他的第三方平臺開發(fā)者可以依照自身平臺需求來設(shè)計約束條件,這里不做具體闡述,重點探討一下創(chuàng)建和綁定開放平臺賬戶這部分。
1)判斷是否獲得微信開放平臺帳號管理權(quán)限,如上所訴此權(quán)限是互斥權(quán)限,即用戶在授權(quán)給別的第三方平臺后,是不能授權(quán)給第三方平臺,此時要獲得此權(quán)限需用戶登陸微信公眾平臺在設(shè)置>公眾號設(shè)置>授權(quán)管理中取消授權(quán)后才能重新授權(quán)到第三方平臺。考慮到此操作比較負(fù)責(zé),所以在公眾號授權(quán)中不做約束,但需在后臺記錄,便于此情況下的用戶管理,以及后續(xù)運營人員的拜訪了解具體情況和知道重新授權(quán)。
2)判斷是否綁定開放微信平臺賬戶,若未綁定則創(chuàng)建并綁定,已綁定則嘗試解綁;
3)通過api接口綁定微信平臺賬戶,解除綁定關(guān)系,創(chuàng)建新的微信開放平臺賬戶并綁定,反之則后臺記錄后完成授權(quán)。
綜上所訴,使用微信開放平臺帳號管理權(quán)限來將多個公眾賬號綁定到同一開放平臺賬戶綁定,使之同一的用戶的uniondi一致是解決第三方平臺同一賬戶下的用戶管理的一個可行方法,但也如文中所訴,此權(quán)限使用也有諸多約束,第三方開放者需考慮自身平臺的具體需求來取舍是否使用此權(quán)限來統(tǒng)一平臺賬戶下的用戶unionid.