微信生態賬號體系—各ID介紹與Unionid的獲取

11 評論 24160 瀏覽 105 收藏 11 分鐘

如果你從事微信生態相關工作,對公眾號、小程序、企業微信獲取 UnionId的方法還有些分不清,那看這篇文章就對了。本文詳細地介紹了微信生態賬號體系中,各ID介紹與Unionid的獲取。歡迎一起學習探討。

本文主要面向的對象:從事微信生態相關工作,尤其是剛接觸不久的產研同學。

01 微信生態各應用之間的主要實體對象

微信生態的各個應用有其各自的定位,一套完整閉環的流程,很難在單一的應用中實現,所以需要我們對各應用都要有所了解。

先打個比方:一個人可以在教育公司工作,可以在娛樂公司工作,也可以自己經營一家店面,可以在國內工作也可以在國外工作,無論在哪工作,都需要納稅。

每個公司都有自己的統一社會信用代碼,每個人都有身份證號,在每家公司的工號,這跟微信生態種各個ID之間的關系是十分相似的。

注:企業微信員工的員工id、部門id并未在此體現,下文會有介紹。

講賬號體系,unionid絕對是重之重。這是微信生態中的“OneID”,是識別用戶身份的唯一標識,決定了多矩陣產品運營時業務能否貫通。

以下講述均在應用已綁定開放平臺的前提下展開。

02 公眾號、小程序Unionid的獲取

公眾號獲取Unionid

公眾號獲取unionid分為兩種場景:

場景一:用戶已經關注公眾號

這個場景相對簡單,用戶關注之后所有的營銷、服務等動作都可直接獲取

  1. 根據openid獲取unionid,該方法用戶無感知,不會產生用戶操作成本;
  2. 網頁非靜默授權(snsapi_userinfo),該方法用戶無感知,不會產生用戶操作成本;除了unionid外,會同時獲取用戶的頭像、昵稱;

場景二:用戶沒有關注公眾號

實際應用場景舉例:經過公眾號授權構建后的H5商城、帶追蹤功能營銷素材,用戶在微信客戶端點擊后可以實現對客戶行為的跟蹤等。

網頁非靜默授權(snsapi_userinfo),使用時需注意的是:

該方法會阻斷用戶的操作流程,并需要妥善處理用戶“拒絕/取消”的場景;

在發起非靜默授權之前,務必要規范使用,否則會觸發“快照”模式,獲取到的都是虛擬數據,無法使用。

小程序獲取Unionid

開發模式:自研

  1. wx.login+code2Session,該方法用戶無感知,不會產生用戶操作成本;
  2. 云函數:Cloud.getWXContext,該方法用戶無感知,不會產生用戶操作成本;
  3. 支付后調用getPaidUnionId,該方法用戶無感知,不會產生用戶操作成本,但5分鐘內有效;
  4. getUserInfo接口,該方法會阻斷用戶的操作流程,并需要妥善處理用戶“拒絕”的場景;

開發模式:第三方授權

wx.login+component_access_token,該方法用戶無感知,不會產生用戶操作成本;

公眾號與小程序獲取Unionid的對比

公眾號/小程序第三方授權與自研的方式獲取unionid方式大致相同,只需要用對token、component_access_token、authorizer_access_token即可。

從以上獲取方式而言,小程序除了getPaidUnionId,其余獲取用戶unionid的方法都需要依賴前端之后獲取到的code。也就是說,對于純后端的開發或三方對接來講,是無法直接從小程序處獲取unionid的。

相比小程序獲取unionid而言,公眾號非靜默授權獲取unionid的方式并不合理,因為這種方式把獲取unionid與客戶昵稱、頭像混在一起了,本質上是沒有做好數據權限的分類。(我個人把生態內的數據分為了公開數據:appid等、內部數據:unionid等、隱私數據:頭像昵稱等)

商家為了貫通業務,強行彈窗讓用戶授權,對C端用戶體驗不好,對商家容易造成流量損失。

03 企業微信Unionid的獲取

企業微信與其他應用的不同之處

  1. 定位不同:企業微信是由企業號演變而來的,但現在企業微信的定位已經完全不是“應用”了,而是一個集營銷、辦公于一體的“工作臺”,是國內私域運營的主陣地。
  2. 獲取unionid的配置不同:企業微信不可以直接綁定到開放平臺,而是通過綁定微信開發者ID(一個已經綁定開放平臺、與企業微信同主體、認證過的小程序或公眾號的appid)來實現的。
  3. 擁有獨立的id名稱:同等功能效力下,external_userid=openid、corpid=appid、服務商的corpid=component_appid、chat_id=opengid。
  4. 有獨立的組織架構:部門:department、員工:userid,且企業員工是沒有unionid的。
  5. 數據隔離非常明顯:為響應個保法,企微做了兩次大的id升級,現在基本上分為兩種:

不同開發模式的數據隔離,對同一個微信用戶,自建應用的id數據為明文,三方應用與自建代開發應用的external_userid、corpid、userid全部為密文,且三方應用與自建代開發應用無法直接獲取C端用戶的unionid。

不同服務商的數據隔離,對同一個微信用戶,不同的服務商拿到的external_userid、corpid、userid不同且全部為密文。

此圖片來源自企微官方API

企業微信獲取Unionid

開發模式:自建應用

自建應用獲取unionid是十分方便的,直接調用獲取客戶詳情接口即可。

開發模式:自建代開發應用/第三方應用

這種模式是無法直接獲取C端用戶的unionid的,那如何打通多矩陣運營業務場景呢?

企微提供了unionid轉external_userid的接口,無論使用的是企業自己的公眾號/小程序還是服務商的,都可以調此接口。如果用的是企業自己的小程序,獲取的unionid可以直接存儲入庫,以方便后面開展業務。

需要注意的是,unionid(即微信開放平臺賬號主體)與openid(即小程序或服務號賬號主體)需要認證,且主體名稱需與當前授權企業的主體名稱一致,或者主體名稱需與服務商的主體名稱一致。

場景一:加好友后,營銷素材的追蹤

在私域運營當中,通常將經過公眾號授權后的H5當做抓手,在C端用戶打開、瀏覽該鏈接時進行打標簽、通知跟進人等運營動作。

業務實現邏輯是:在公眾號/小程序等應用中獲取到unionid之后,轉換成external_userid,從而判斷該C端用戶是否已經加過好友且完成唯一身份識別,進而對客戶進行預設的業務處理。

場景二:未加好友,短鏈引流

將有手機號但是還沒有加企微好友的客戶引流到企微中,想統計具體哪些客戶成功加微。

業務實現邏輯:在小程序上獲取unionid之后,添加好友之前,此時并不能直接轉換成external_userid,而是一個臨時id—pending_id,待添加好友之后,可通過external_userid查詢pending_id,進而建立unionid與external_userid之間的關系。

視頻號獲取unionid因為場景比較簡單,不在此處講解。

熟練掌握以上規則之后,才算初識企微生態賬號體系,接下來的路還很漫長。我陸續還會輸出更多文章,希望可以一起學習探討。

本文由 @好美呀,你! 原創發布于人人都是產品經理,未經許可,禁止轉載

題圖來自Unsplash,基于 CC0 協議

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

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 最近在做小紅書,可以關注我,上面交流更方便PM_Gang

    來自北京 回復
  2. 最近在做小紅書,可以關注我,上面交流更方便PM_Gang

    來自北京 回復
  3. 業務實現邏輯是:在公眾號/小程序等應用中獲取到unionid之后,轉換成external_userid,從而判斷該C端用戶是否已經加過好友且完成唯一身份識別,進而對客戶進行預設的業務處理。

    這句話我理解一下 用戶進入了H5活動頁 獲取unionid 這個H5綁定的有公眾號 那么是不是就可以靜默? 這塊的獲取 是靜默嗎

    來自河南 回復
    1. 用戶關注過綁定的公眾號才會走靜默授權,否則想獲取unionid必須要用非靜默授權

      來自北京 回復
  4. 沒看明白啊

    來自河南 回復
  5. 感謝分享,很有幫助,內容整理的非常系統。

    來自上海 回復
  6. 更多微信生態信息,可關注公眾號:產品人鋼哥

    來自北京 回復
  7. 感謝 上周剛接觸了解 unionid 正好刷到您這篇文章
    后半段對我們幫助很大 分享給研發的戰友了

    來自浙江 回復
  8. 看半天。還是沒看明白

    來自湖南 回復
    1. 不清楚的地方可以提出來哈,多交流??

      來自北京 回復
  9. 根據openid獲取unionid(https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html#UinonId);
    網頁非靜默授權:(https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html)

    來自北京 回復