部分小程序沒法獲取UnionId緣由

問題背景

  • 經過觀察數據,發現有一部分用戶是沒法獲取到UnionId的
    • 也就是接口返回的參數中不包含UnionId參數
  • 看了微信文檔的解釋,只要小程序在開放平臺綁定,就必定會分配UnionId
  • 網上也有用戶遇到這樣的狀況,沒有解決

問題影響

使用微信小程序成功受權之後,下次在公衆號中受權或在App中使用微信受權,沒法識別是同一個微信用戶,可能會出現一個微信用戶綁定不一樣App用戶的狀況。小程序

UnionID機制

微信對UnionId機制的原文解釋

若是開發者擁有多個移動應用、網站應用、和公衆賬號(包括小程序),可經過unionid來區分用戶的惟一性,由於只要是同一個微信開放平臺賬號下的移動應用、網站應用和公衆賬號(包括小程序),用戶的unionid是惟一的。換句話說,同一用戶,對同一個微信開放平臺下的不一樣應用,unionid是相同的。微信小程序

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

注意: 後邊這句話的描述網站

用戶關注過公衆號,或者曾經登陸過App或公衆號,則用戶打開小程序時,開發者能夠直接經過wx.login獲取到該用戶UnionID接口

即:若是用戶沒有關注過公衆號,或者沒有登錄過App,經過wx.login是沒法獲取到該用戶UnionID,只能經過wx.getUserInfo來獲取UnionId開發

經驗證,系統不存在UnionId的小程序用戶都是沒有關注公衆號或未在App中使用微信受權的用戶文檔

解決方案

  1. 獲取小程序UnionId應該以wx.getUserInfo的UnionId爲主
  2. wx.getUserInfo須要用戶受權,產品方面,須要考慮用戶拒絕受權的處理流程
相關文章
相關標籤/搜索