微信小程序 用戶信息·獲取手機(jī)號

2022-05-11 15:42 更新

獲取手機(jī)號

獲取微信用戶綁定的手機(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ù)說明

參數(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ū)號


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號