在小程序中获取用户手机号需要以下步骤:
首先需要授权用户手机号,即在小程序中调用 wx.login() 方法获取用户的登录凭证,在回调函数中调用 wx.getUserInfo() 方法获取用户的个人信息,并且设置 withCredentials 参数为 true。
在获取用户个人信息的回调函数中,可以得到 encryptedData 和 iv 两个参数,这两个参数可以用来解密用户的手机号。
调用 wx.request() 方法发送请求,将登录凭证、encryptedData 和 iv 传给后端,后端将根据登录凭证获取用户的 session_key,并用 session_key 对 encryptedData 进行解密,得到用户的手机号。
以下是获取用户手机号的代码示例:
- // 获取用户手机号
- wx.login({
- success: function (res) {
- if (res.code) {
- // 登录成功,获取用户的个人信息,包括手机号
- wx.getUserInfo({
- withCredentials: true,
- success: function (userInfoRes) {
- // 解密用户手机号
- wx.request({
- url: 'https://example.com/decryptPhone',
- data: {
- code: res.code,
- encryptedData: userInfoRes.encryptedData,
- iv: userInfoRes.iv
- },
- success: function (phoneRes) {
- console.log(phoneRes.data.phoneNumber);
- }
- })
- }
- })
- } else {
- console.log('登录失败!' + res.errMsg)
- }
- }
- })