UnionID機制說明
如果開發者擁有多個移動應用、網站應用、和公眾帳號(包括小程序),可通過unionid來區分用戶的唯一性,因為只要是同一個微信開放平台帳號下的移動應用、網站應用和公眾帳號(包括小程序),用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平台下的不同應用,unionid是相同的。
我們系統都做了移動應用、網站應用、和公眾帳號的微信登入,我們后端這邊是有微信綁定賬號功能的。所以需要在微信的給出的用戶唯一的unionID判斷該用戶是否已綁定微信號。
微信小程序API詳情的官方鏈接: https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject
微信官方的流程圖:
前端調用wx.login獲取code,然后將code返回給后台拿着code與appid,secret訪問微信接口獲取session_key、openid和 unionId
看一下拿code請求成功后,微信官方給出的返回結果:
我當時返回的結果就是不滿足UnionID情況下的、此處我黑人問號三連???
再看看微信官方給出的解釋、怎么才能滿足UnionID的情況呢?
所以我就讓前端同事改邏輯,前端需要調用完wx.login函數后獲得code、緊接着前端再調用wx.authorize函數讓用戶授權同意再將剛剛調用完wx.login獲取到的code請求后端接口(前端的這里調用函數貌似是有順序的 wx.login ----> wx.authorize)
然后............................
還是只返回了session_key、openid 還是沒有UnionID !!!!!麻蛋!
划重點、檢查微信開放平台的管理中心的小程序是否添加綁定:
開發資質未認證的話,需要申請開發者資質認證(需要交資料and費用)
認證通過后、去管理中心、小程序、綁定小程序(小程序登入賬號就是微信公眾號的賬號and密碼)
綁定好后、再次訪問小程序接口、就可以獲取到UnionID了
------------------------------------------------------------------------性感分割線-------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------