微信小程式的unionid

2021-09-19 16:00:28 字數 779 閱讀 8329

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還是使用重新整理之前的,所以肯定就不匹配了。總結 一...