W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
獲取微信用戶綁定的手機(jī)號,需先調(diào)用wx.login接口。
因為需要用戶主動觸發(fā)才能發(fā)起獲取手機(jī)號接口,所以該功能不由 API 來調(diào)用,需用 button 組件的點擊來觸發(fā)。
注意:目前該接口針對非個人開發(fā)者,且完成了認(rèn)證的小程序開放(不包含海外主體)。需謹(jǐn)慎使用,若用戶舉報較多或被發(fā)現(xiàn)在不必要場景下使用,微信有權(quán)永久回收該小程序的該接口權(quán)限。
需要將 button 組件 open-type 的值設(shè)置為 getPhoneNumber,當(dāng)用戶點擊并同意之后,可以通過 bindgetphonenumber 事件回調(diào)獲取到微信服務(wù)器返回的加密數(shù)據(jù), 然后在第三方服務(wù)端結(jié)合 session_key 以及 app_id 進(jìn)行解密獲取手機(jī)號。
在回調(diào)中調(diào)用 wx.login 登錄,可能會刷新登錄態(tài)。此時服務(wù)器使用 code 換取的 sessionKey 不是加密時使用的 sessionKey,導(dǎo)致解密失敗。建議開發(fā)者提前進(jìn)行 login;或者在回調(diào)中先使用 checkSession 進(jìn)行登錄態(tài)檢查,避免 login 刷新登錄態(tài)。
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({
getPhoneNumber (e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
}
})
參數(shù) | 類型 | 說明 | 最低版本 |
---|---|---|---|
encryptedData | String | 包括敏感數(shù)據(jù)在內(nèi)的完整用戶信息的加密數(shù)據(jù),詳細(xì)見加密數(shù)據(jù)解密算法 | |
iv | String | 加密算法的初始向量,詳細(xì)見加密數(shù)據(jù)解密算法 | |
cloudID | string | 敏感數(shù)據(jù)對應(yīng)的云 ID,開通云開發(fā)的小程序才會返回,可通過云調(diào)用直接獲取開放數(shù)據(jù),詳細(xì)見云調(diào)用直接獲取開放數(shù)據(jù) | 基礎(chǔ)庫 2.8.0 |
獲取得到的開放數(shù)據(jù)為以下 json 結(jié)構(gòu):
{
"phoneNumber": "13580006666",
"purePhoneNumber": "13580006666",
"countryCode": "86",
"watermark":
{
"appid":"APPID",
"timestamp": TIMESTAMP
}
}
參數(shù) | 類型 | 說明 |
---|---|---|
phoneNumber | String | 用戶綁定的手機(jī)號(國外手機(jī)號會有區(qū)號) |
purePhoneNumber | String | 沒有區(qū)號的手機(jī)號 |
countryCode | String | 區(qū)號 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: