千鋒教育-做有情懷、有良心、有品質的職業教育機構
準備一個button組件, 將button組件open-type的值設置為getPhoneNumber,當用戶點擊并同意之后,可以通過 bindgetphonenumber事件回調獲取到動態令牌code; Page({ getPhoneNumber (e) { console.log(e.detail.code) } }) 接著把code傳到開發者后臺,并在開發者后臺調用微信后臺提供的phonenumber.getPhoneNumber接口,消費code來換取用戶手機號。每個code 有效期為5分鐘,且只能消費一次。
getPhoneNumber: function (e) { var that = this; console.log(e.detail.errMsg == "getPhoneNumber:ok"); if (e.detail.errMsg == "getPhoneNumber:ok") { wx.request({ url: 'http://localhost/index/users/decodePhone', data: { encryptedData: e.detail.encryptedData, iv: e.detail.iv, sessionKey: that.data.session_key, uid: "", }, method: "post", success: function (res) { console.log(res); } }) } }
注:getPhoneNumber返回的code與wx.login返回的code作用是不一樣的,不能混用.
注:從基礎庫 2.21.2 開始,對獲取手機號的接口進行了安全升級, 需要用戶主動觸發才能發起獲取手機號接口,所以該功能不由 API 來調用,需用 button 組件的點擊來觸發。
另外,新版本接口不再需要提前調用 wx.login進行登錄.
上一篇
小程序的兼容問題有哪些相關推薦