微信小程序API用戶信息, wx.getUserInfo?獲取用戶信息
wx.getUserInfo(OBJECT)
?獲取用戶信息,withCredentials 為 true 時(shí)需要先調(diào)用wx.login接口
OBJECT參數(shù)說明:
參數(shù)名 | 類型 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|
withCredentials | Boolean | 否 | 是否帶上登錄態(tài)信息 | 1.1.0 |
lang | String | 否 | 指定返回用戶信息的語言,zh_CN 簡體中文,zh_TW 繁體中文,en 英文 | 1.4.0 |
success | Function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) | |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) | |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) |
注:當(dāng) withCredentials 為 true 時(shí),要求此前有調(diào)用過 wx.login 且登錄態(tài)尚未過期,此時(shí)返回的數(shù)據(jù)會(huì)包含 encryptedData, iv 等敏感信息;當(dāng) withCredentials 為 false 時(shí),不要求有登錄態(tài),返回的數(shù)據(jù)不包含 encryptedData, iv 等敏感信息。
success返回參數(shù)說明:參數(shù) | 類型 | 說明 |
---|---|---|
userInfo | OBJECT | 用戶信息對(duì)象,不包含 openid 等敏感信息 |
rawData | String | 不包括敏感信息的原始數(shù)據(jù)字符串,用于計(jì)算簽名。 |
signature | String | 使用 sha1( rawData + sessionkey ) 得到字符串,用于校驗(yàn)用戶信息,參考文檔signature。 |
encryptedData | String | 包括敏感數(shù)據(jù)在內(nèi)的完整用戶信息的加密數(shù)據(jù),詳細(xì)見加密數(shù)據(jù)解密算法 |
iv | String | 加密算法的初始向量,詳細(xì)見加密數(shù)據(jù)解密算法 |
示例代碼:
wx.getUserInfo({
success: function(res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender //性別 0:未知、1:男、2:女
var province = userInfo.province
var city = userInfo.city
var country = userInfo.country
}
})
encryptedData 解密后為以下 json 結(jié)構(gòu),詳見加密數(shù)據(jù)解密算法
{
"openId": "OPENID",
"nickName": "NICKNAME",
"gender": GENDER,
"city": "CITY",
"province": "PROVINCE",
"country": "COUNTRY",
"avatarUrl": "AVATARURL",
"unionId": "UNIONID",
"watermark":
{
"appid":"APPID",
"timestamp":TIMESTAMP
}
}
Bug & Tip
-
tip
:wx.getUserInfo
接口需要用戶授權(quán),請(qǐng)兼容用戶拒絕授權(quán)的場景。
UnionID機(jī)制說明:
如果開發(fā)者擁有多個(gè)移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用、和公眾帳號(hào)(包括小程序),可通過unionid來區(qū)分用戶的唯一性,因?yàn)橹灰峭粋€(gè)微信開放平臺(tái)帳號(hào)下的移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào)(包括小程序),用戶的unionid是唯一的。換句話說,同一用戶,對(duì)同一個(gè)微信開放平臺(tái)下的不同應(yīng)用,unionid是相同的。
同一個(gè)微信開放平臺(tái)下的相同主體的App、公眾號(hào)、小程序,如果用戶已經(jīng)關(guān)注公眾號(hào),或者曾經(jīng)登錄過App或公眾號(hào),則用戶打開小程序時(shí),開發(fā)者可以直接通過wx.login獲取到該用戶UnionID,無須用戶再次授權(quán)。
微信開放平臺(tái)綁定小程序流程
前提:微信開放平臺(tái)帳號(hào)必須已完成開發(fā)者資質(zhì)認(rèn)證
開發(fā)者資質(zhì)認(rèn)證流程:
登錄微信開放平臺(tái)(open.weixin.qq.com) – 帳號(hào)中心 – 開發(fā)者資質(zhì)認(rèn)證
綁定流程:
登錄微信開放平臺(tái)(open.weixin.qq.com)—管理中心—公眾帳號(hào)—綁定公眾帳號(hào)
更多微信小程序開發(fā)教程,可以關(guān)注hi小程序。第二部分:如何開通一個(gè)小商店