獲取手機號

2020-02-11 18:39 更新

獲取用戶綁定的手機號。需要用戶主動通過 button 組件的點擊來觸發(fā)后才能發(fā)起獲取手機號接口。(僅企業(yè)主體小程序可使用)


注意事項

  • 請謹慎使用,僅可在登陸時使用?。?!若用戶舉報較多或被發(fā)現(xiàn)在不必要場景下使用,字節(jié)跳動有權永久回收該小程序的該接口權限。
  • 使用(用戶點擊 button)前需先調用tt.login接口。如果在回調中調用 tt.login 會刷新登錄態(tài),導致登陸后換取的 sessionKey 與手機號碼加密時使用的 sessionKey 不同,從而導致解密失敗。
  • 基礎庫 1.14.0 開始支持
  • 觸發(fā)按鈕文案應為“授權手機號快捷登錄”“手機號碼一鍵登錄”等,禁止在用戶進入小程序時就彈出獲取手機號。


使用方法

需要將 <button> 組件 open-type 的值設置為 getPhoneNumber。用戶點擊后會彈出一個授權彈窗讓用戶確認(若該用戶賬戶未綁定手機號碼會執(zhí)行一次綁定手機號碼的流程;授權彈窗每次使用都會彈出)。 用戶同意后,開發(fā)者可以通過 bindgetphonenumber 事件回調獲取到一個加密數(shù)據(jù),開發(fā)者可以把該數(shù)據(jù)傳回到自己的服務端進行解密獲取手機號。


代碼示例

<button
  open-type="getPhoneNumber"
  bindgetphonenumber="getPhoneNumberHandler"
></button>
Page({
  getPhoneNumberHandler(e) {
    console.log(e.detail.errMsg);
    console.log(e.detail.iv);
    console.log(e.detail.encryptedData);
  }
});


回調參數(shù)說明

參數(shù)類型說明
errMsgstring錯誤信息
encryptedDatastring包括敏感數(shù)據(jù)在內的完整用戶信息的加密數(shù)據(jù)
ivstring加密算法的初始向量

errMsg為發(fā)生錯誤時具體的錯誤信息:

  • 開放平臺沒有權限獲取手機號:platform auth deny。若平臺封禁了某開發(fā)者該權限時可能返回或者是非企業(yè)小程序也會返回此信息。
  • 未在小程序平臺登錄:not login。開發(fā)者看到此信息后應當執(zhí)行登錄操作。
  • 用戶沒有綁定手機號或用戶拒絕授權:auth deny。
  • 其他錯誤:internal error。

數(shù)據(jù)解密

參考敏感數(shù)據(jù)處理在開發(fā)者后臺解密。解密后獲取得到的數(shù)據(jù)形式如下:

{
  "phoneNumber": "138xxxxxxxx", // 用戶綁定的手機號(國外手機號會有區(qū)號)
  "purePhoneNumber": "138xxxxxxxx", // 沒有區(qū)號的手機號
  "countryCode": "86", // 區(qū)號
  "watermark": {
    "appid": "ttxxxxxxxxxxxxxxxx",
    "timestamp": 15000000000000000
  }
}


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號