用戶
 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,登錄網站

小程序社區 首頁 教程 實戰教程 查看內容

微信小程序開發實戰之獲取UnionId詳解

Rolan 2020-10-9 15:01

綁定了開發者帳號的小程序,可以通過以下途徑獲取 UnionID

UnionID 機制說明

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

UnionID獲取途徑

綁定了開發者帳號的小程序,可以通過以下途徑獲取 UnionID。

  1. 調用接口 wx.getUserInfo,從解密數據中獲取 UnionID。注意本接口需要用戶授權,請開發者妥善處理用戶拒絕授權后的情況。

  2. 如果開發者帳號下存在同主體的公眾號,并且該用戶已經關注了該公眾號。開發者可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID,無須用戶再次授權。

  3. 如果開發者帳號下存在同主體的公眾號或移動應用,并且該用戶已經授權登錄過該公眾號或移動應用。開發者也可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID ,無須用戶再次授權。

  4. 用戶在小程序(暫不支持小游戲)中支付完成后,開發者可以直接通過getPaidUnionId接口獲取該用戶的 UnionID,無需用戶授權。注意:本接口僅在用戶支付完成后的5分鐘內有效,請開發者妥善處理。

  5. 小程序端調用云函數時,如果開發者帳號下存在同主體的公眾號,并且該用戶已經關注了該公眾號,可在云函數中通過 cloud.getWXContext 獲取 UnionID。

  6. 小程序端調用云函數時,如果開發者帳號下存在同主體的公眾號或移動應用,并且該用戶已經授權登錄過該公眾號或移動應用,也可在云函數中通過 cloud.getWXContext 獲取 UnionID。

微信開放平臺綁定小程序流程

登錄微信開放平臺 — 管理中心 — 小程序 — 綁定小程序

實現思路:

下面分兩步介紹一下 微信小程序 獲取unionid的過程.

1. 首先 在微信公眾平臺注冊小程序 , 然后在小程序上模擬登錄流程.

注 : 這里只是簡單登錄流程, 實際中需要維護登錄態, wx.checkSession() 可以檢查此時的登錄態是否過期. 若過期, 要再次調用 wx.login() , 否則調用 wx.getUserInfo() 會拿不到用戶數據.

注 : 此時后臺服務器接收到你發的 code, 再用appid和appSecret等請求微信可以拿到openid和session_key encrypted_data, iv 等數據, 通過appId, appSecret解密可以獲得openid和其他信息. (此時解出來并沒有unionid, 接下來看第二步)

2. 接下來到 微信開發平臺去 綁定開發賬號.

一開始我也是對開放平臺, 公眾平臺什么的有點懵, 后來看到開發平臺的管理中心才明白,  這些移動應用, 網站應用 或者公眾號/小程序 能綁定同一個微信開發平臺賬號下, 則同一用戶,對同一個微信開放平臺下的不同應用,unionid是相同的。

大抵就是上圖這樣設置吧 , 立刻生效(有時也會過幾分鐘吧

鮮花
鮮花
雞蛋
雞蛋
分享至 : QQ空間
收藏
时时彩彩票app下载手机版