注冊

微信小程序getPhoneNumber快速獲取用戶手機號組件

2017-12-12
導讀:說明 獲取微信用戶綁定的手機號,需先調用 login 接口。 因為需要用戶主動觸發(fā)才能發(fā)起獲取手機號接口,所以該功能不由 API 來調用,需用 button 組件的點擊來觸發(fā)。 注意:目前該接...

說明

獲取微信用戶綁定的手機號,需先調用login接口。

因為需要用戶主動觸發(fā)才能發(fā)起獲取手機號接口,所以該功能不由 API 來調用,需用 <button> 組件的點擊來觸發(fā)。

注意:目前該接口針對非個人開發(fā)者,且完成了認證的小程序開放。需謹慎使用,若用戶舉報較多或被發(fā)現(xiàn)在不必要場景下使用,微信有權永久回收該小程序的該接口權限。

使用方法

需要將 <button> 組件 open-type 的值設置為 getPhoneNumber,當用戶點擊并同意之后,可以通過 bindgetphonenumber 事件回調獲取到微信服務器返回的加密數(shù)據(jù), 然后在第三方服務端結合 session_key 以及 app_id 進行解密獲取手機號。

注意

在回調中調用 wx.login 登錄,可能會刷新登錄態(tài)。此時服務器使用 code 換取的 sessionKey 不是加密時使用的 sessionKey,導致解密失敗。建議開發(fā)者提前進行 login;或者在回調中先使用 checkSession 進行登錄態(tài)檢查,避免 login 刷新登錄態(tài)。

例子

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

返回參數(shù)說明

參數(shù) 類型 說明
encryptedData String 包括敏感數(shù)據(jù)在內的完整用戶信息的加密數(shù)據(jù),詳細見加密數(shù)據(jù)解密算法
iv String 加密算法的初始向量,詳細見加密數(shù)據(jù)解密算法

encryptedData 解密后為以下 json 結構,詳見加密數(shù)據(jù)解密算法

{
    "phoneNumber": "13580006666",  
    "purePhoneNumber": "13580006666", 
    "countryCode": "86",
    "watermark":
    {
        "appid":"APPID",
        "timestamp":TIMESTAMP
    }
}
參數(shù) 類型 說明
phoneNumber String 用戶綁定的手機號(國外手機號會有區(qū)號)
purePhoneNumber String 沒有區(qū)號的手機號
countryCode String 區(qū)號

更多微信小程序開發(fā)教程,關注hi小程序。

重磅推薦:小程序開店目錄

第一部分:小商店是什么

第二部分:如何開通一個小商店

第三部分:如何登錄小商店

第四部分:開店任務常見問題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開發(fā)