unionid機制說明:
1. 獲取code(登入憑證,用來換取openid及session_key等)
wx.login(else}})
2. 獲取使用者資訊(利用wx.login返回的code獲取使用者的資訊)
getneededuserinfo: function(code),
success: function(res)})}
解決思路:通過帶登入態的 wx.getuserinfo 獲取到使用者的加密資料 encrypteddata 和加密演算法的初始向量iv,然後將 encryptdata、iv 以及 code傳給後端,後端再去通過接收到的encrypteddata、iv以、code 以及之前的 session_key 解密出使用者的 openid、unionid 等。加密資料解密演算法
以下是具體實現步驟:
1. 獲取code(登入憑證,用來換取openid及session_key等)
wx.login(else}})
2. 獲取加密資料和加密演算法初始向量
需要注意的是:當withcredentials值為true時,要求此前有呼叫過wx.login且登入態尚未過期。
getencdata: function()})}
3. 獲取使用者資訊(利用wx.login返回的code獲取使用者的資訊)
getneededuserinfo: function(code, enc, iv),
success: function(res)})}
實際專案中需要將以上兩種情況整合以後使用。
思路有兩種:
微信小程式獲取unionId
注意本介面需要使用者授權,請開發者妥善處理使用者拒絕授權後的情況。第一步 需要的引數session key,iv,encrypteddata an highlighted block aes解密 待解密的位元組陣列 解密金鑰位元組陣列 iv初始化向量位元組陣列 運算模式 填充模式 public st...
詳解微信小程式 登入獲取unionid
詳解微信小程式 登入獲取unionid 首先公司開發了小程式,網頁和app等,之前都是用的openid來區分使用者,但openid只能標識使用者在當前小程式或 裡唯一,我們希望使用者可以在公司各個產品 比如 小程式,app裡的微信登入 之間,可以保持使用者的唯一性,還好微信給出了unionid.下面...
關於微信小程式登入獲取unionId解密報錯
這裡注意檢視文件,login呼叫時是有可能會重新整理sessionkey的,所以這裡會有乙個呼叫順序問題,如果login發生在getuserinfo方法之後,過了最短週期呼叫時,sessionkey可能被重新整理了,而你拿encrypteddata還是使用重新整理之前的,所以肯定就不匹配了。總結 一...