前提:调用手机号权限以前,要先调用wx.login接口javascript
在回调中调用 wx.login 登陆,可能会刷新登陆态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,致使解密失败。建议开发者提早进行 login
;或者在回调中先使用 checkSession
进行登陆态检查,避免 login
刷新登陆态html
一、代码示例(亲测)java
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({ getPhoneNumber (e) { console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.encryptedData) } })
测试的过程当中,开始先是用的本身我的的一个appid,在开发者工具测试,提示该appid没有权限,以下图小程序
在真机测试,没有弹框,控制台报错 : getPhoneNumber:fail data no reponse,如图:api
缘由:目前该接口针对非我的开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发如今没必要要场景下使用,微信有权永久回收该小程序的该接口权限。服务器
本身的小程序没有认证吧,可是以后用的,公司的一个项目测试,仍是这样,用的另外一个项目测试好好的,,猜想应该是那个项目的appid不对吧。微信
2.结果,如图:session
点击拒绝以后,获取到的信息:app
点击赞成,获取到的信息:工具
赞成以后获取到信息以后,要请求后台一个解密的接口,获取到真正的手机号