云开发小程序如何获取用户的手机号
~
官方文档
1、https://developers.weixin.qq.com/miniprogram/dev/component/button.html
2、https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
首先我说下做这个的场景,近期在迭代培训刷题小程序,该小程序支持线上和线下报名,对于线上报名的用户平台会电话引导购买其他付费服务,这个时候对于手机号的正确收集是非常有必要的
那么能不能通过文本框让用户自己输入呢,这样做其实也不是不可以的,但是目前常规的做法就是利用微信的
微信开放能力直接获取微信实名认证绑定的手机号,由于目前基本绝大部分手机都实名认证了,所以这个方式就非常自然
~
其实在之前的开发中,也做过手机号码的获取工作,但是当时是在社区随便找了一个可行方案,没有严格按照官方指定的方案来,这次就顺着官方提供的思路实现了下
你
笑
起
来
真好看
具体代码就是增加以下二块
1、
2、
对的,你看到了,创建的云函数就是默认的初始化代码,但是这样就work的,不妨可以试试
利用微信的开放能力获取手机号,是需要企业资质的,所以对于个人小程序是不支持的,这一点需要格外注意。
参考楼主的代码,成功获取手机号
<!-- wxml --> <button open-type="getPhoneNumber" bindgetphonenumber="getphone">使用微信手机</button>
//js getphone: function (e) { console.log('手机号:', e) this.getPhoneNumberData(e.detail.cloudID) }, getPhoneNumberData: function (cloudID) { wx.cloud.callFunction({ name: 'login', data: { weRunData: wx.cloud.CloudID(cloudID), obj: { shareInfo: wx.cloud.CloudID(cloudID) } } }) .then(res=>{ console.log('云函数获取开放数据:',res) console.log('手机号:',res.result.event.weRunData.data.phoneNumber) }) .catch(err=>{ console.log(err) }) },
官方提供了以下二种方案,本文采用了第二种方式来实现
服务端获取开放数据
小程序可以通过各种前端接口获取微信提供的开放数据。考虑到开发者服务端也需要获取这些开放数据,微信提供了两种获取方式:
方式一:开发者后台校验与解密开放数据
方式二:云调用直接获取开放数据(云开发)