千锋教育-做有情怀、有良心、有品质的职业教育机构
准备一个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进行登录.
上一篇
小程序的兼容问题有哪些相关推荐