一、问题(业务描述)。
在做小程序开发中,获取用户的信息是基本操作,需要获取到用户手机等信息。而手机号码则不能直接从小程序的getUserInfo这个api直接获得,需要后端配合解密才能获取。
二、实施步骤。
1、先查看用来开发的AppID是否已通过微信认证(个人号无法认证也就是个人号无法获取别人的手机号码)。登录到微信公众号基本信息查看,如图:
2、在wxml页面实现
<button wx:if="{
{!phone}}" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" class="phone">手机授权</button>
,
记得一定要使用getPhoneNumber()点击来触发,被举报过多腾讯会收回这个获取手机号码授权的功能。
3、getPhoneNumber()有3个重要参数,是encryptedData,iv,sessionKey。sessionKey是调用wx.login后返回的密钥(还有一个是openid)。
// 解密用户手机号码
getPhoneNumber: function (e) {
if (e.detail.errMsg == "getPhoneNumber:ok") {
var that = this;
wx.login({
success: res => {
//