首先公司開發(fā)了小程序, 公眾號網(wǎng)頁和app等, 之前都是用的openid來區(qū)分用戶, 但openid只能標識用戶在當前小程序或公眾號里唯一, 我們希望用戶可以在公司各個產(chǎn)品(比如公眾號, 小程序, app里的微信登錄)之間, 可以保持用戶的唯一性, 還好微信給出了unionid.
下面分兩步介紹一下 微信小程序 獲取unionid的過程.
1. 首先 在微信公眾平臺注冊小程序 , 然后在小程序上模擬登錄流程.
注 : 這里只是簡單登錄流程, 實際中需要維護登錄態(tài), wx.checkSession() 可以檢查此時的登錄態(tài)是否過期. 若過期, 要再次調(diào)用 wx.login() , 否則調(diào)用 wx.getUserInfo() 會拿不到用戶數(shù)據(jù).
注 : 此時后臺服務(wù)器接收到你發(fā)的 code, 再用appid和appSecret等請求微信可以拿到openid和session_key encrypted_data, iv 等數(shù)據(jù), 通過appId, appSecret解密可以獲得openid和其他信息. (此時解出來并沒有unionid, 接下來看第二步)
2. 接下來到 微信開發(fā)平臺去 綁定開發(fā)賬號.
一開始我也是對開放平臺, 公眾平臺什么的有點懵, 后來看到開發(fā)平臺的管理中心才明白,? 這些移動應(yīng)用, 網(wǎng)站應(yīng)用 或者公眾號/小程序 能綁定同一個微信開發(fā)平臺賬號下, 則同一用戶匙奴,對同一個微信開放平臺下的不同應(yīng)用服协,unionid是相同的棕所。
大抵就是上圖這樣設(shè)置吧 , 立刻生效(有時也會過幾分鐘吧??) ,然后后臺就能解密出unionid了.
注 : 如果之前沒有這么多小程序,公眾號開發(fā)的話, 可能一直用的openid作為用戶的唯一標識(就像我這樣??), 不過也不用麻煩替換之前的openid, 可以用unionid直接建立自己的用戶系統(tǒng), 其實就是一個unionid下多個openid或手機號(當然要提前綁定了), 這樣用戶每次登錄, 后臺多一次查詢就ok了
當然了, 微信開發(fā)平臺你要先認證才行....