千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)
準(zhǔn)備一個(gè)button組件, 將button組件open-type的值設(shè)置為getPhoneNumber,當(dāng)用戶點(diǎn)擊并同意之后,可以通過(guò) bindgetphonenumber事件回調(diào)獲取到動(dòng)態(tài)令牌code; Page({ getPhoneNumber (e) { console.log(e.detail.code) } }) 接著把code傳到開(kāi)發(fā)者后臺(tái),并在開(kāi)發(fā)者后臺(tái)調(diào)用微信后臺(tái)提供的phonenumber.getPhoneNumber接口,消費(fèi)code來(lái)?yè)Q取用戶手機(jī)號(hào)。每個(gè)code 有效期為5分鐘,且只能消費(fèi)一次。
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作用是不一樣的,不能混用.
注:從基礎(chǔ)庫(kù) 2.21.2 開(kāi)始,對(duì)獲取手機(jī)號(hào)的接口進(jìn)行了安全升級(jí), 需要用戶主動(dòng)觸發(fā)才能發(fā)起獲取手機(jī)號(hào)接口,所以該功能不由 API 來(lái)調(diào)用,需用 button 組件的點(diǎn)擊來(lái)觸發(fā)。
另外,新版本接口不再需要提前調(diào)用 wx.login進(jìn)行登錄.
上一篇
小程序的兼容問(wèn)題有哪些相關(guān)推薦