前言
微信小程序获取手机号码,从官方文档到其他博主的文档 零零散散的 (我就是这样看过来 没有一篇满意的 也许是我搜索姿势不对) 依旧是前人栽树 后人乘凉 系列。保证看完 就可以实现获取手机号码功能
1.认证(有资格)
获取手机号码接口权限,只对认证的小程序开发(非个人)
2.身份牌
需要第三方服务端(你们的后端童鞋)的友情支持
- 前端同学的工作
// 登录 一定要在现在app.js 登陆(后面解密需要用到)
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
this.globalData.code = res.code
http.authCode2Session({ // 调用接口,传入参数 这个接口就是自家后台给你提供的 post请求
data: {
jsCode: res.code,
grantType: \'getPhoneNumber\',
},
success: res => {
this.globalData.openid = res.openid // 存入 globalData
},
fail: err => {
console.log(err)
}
})
}
})
- 后端工作 (我不是后端 没有这个代码 但是根据小程序文档来做是可以的)
入口
拿到了openid sessionkey 之后,然后再写一个入口 button
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
回调
在页面写函数getPhoneNumber()
Page({
getPhoneNumber (e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
}
})
真机调试
开发工具是不可以的,真机调试 拿自己的手机调试一下
就是这样子的
解密
前端拿到的数据是加密的。只好后端做一个保存接口 传给后端,后端再去解密 才能真的拿到用户的手机号码
解密后的数据是这样子的
Fannie总结
应该是写的明明白白 清清楚楚了 如果你还不明白 就是我的锅 没有写清楚 那就来问我吧