微信小程序getPhoneNumber快速獲取用戶手機號組件
說明
獲取微信用戶綁定的手機號,需先調用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小程序。
第二部分:如何開通一個小商店