首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >uniapp微信小程序获取用户手机号

uniapp微信小程序获取用户手机号

作者头像
阿超
发布2022-08-16 20:23:36
发布2022-08-16 20:23:36
3.2K0
举报
文章被收录于专栏:快乐阿超快乐阿超

价值产生信心,信心产生热忱,而热忱则征服世界。——华特·H·柯亭姆

我们在uniapp开发中有时会需要获取用户的手机号

可以在官方文档找到对应的方法

这里注意一点,只能通过button进行点击获取

但我们这样获取到后还需要解密

比如我这里获取到的

代码语言:javascript
复制
<template>
	<view><button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">点我获取手机号</button></view>
</template>

<script>
export default {
	data() {
		return {};
	},
	methods: {
		getPhoneNumber(e) {
			console.log(e.detail.errMsg);
			console.log(e.detail.iv);
			console.log(e.detail.encryptedData);
		}
	}
};
</script>

你会发现获取到的是一串密文

这个我们需要用session_key

需要通过调用wx.login

代码语言:javascript
复制
wx.login({
  success (res) {
    if (res.code) {
 	  console.log('获取code成功,code为:' + res.code)
    } else {
      console.log('登录失败!' + res.errMsg)
    }
  }
})

获取一个code作为参数

然后再加上appidappsecrect调用微信提供的api

去换取openidsession_key

然后再用微信官方提供的一个js去解密

下载地址

我们这里是node环境

所以引入node能用的这个js即可

使用方式在上面的那个demo.js中有

打开就是这样的

代码语言:javascript
复制
var WXBizDataCrypt = require('./WXBizDataCrypt')

var appId = 'wx4f4bc4dec97d474b'
var sessionKey = 'tiihtNczf5v6AKRyjwEUhQ=='
var encryptedData = 
	'CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZM'+
	'QmRzooG2xrDcvSnxIMXFufNstNGTyaGS'+
	'9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+'+
	'3hVbJSRgv+4lGOETKUQz6OYStslQ142d'+
	'NCuabNPGBzlooOmB231qMM85d2/fV6Ch'+
	'evvXvQP8Hkue1poOFtnEtpyxVLW1zAo6'+
	'/1Xx1COxFvrc2d7UL/lmHInNlxuacJXw'+
	'u0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn'+
	'/Hz7saL8xz+W//FRAUid1OksQaQx4CMs'+
	'8LOddcQhULW4ucetDf96JcR3g0gfRK4P'+
	'C7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB'+
	'6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns'+
	'/8wR2SiRS7MNACwTyrGvt9ts8p12PKFd'+
	'lqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYV'+
	'oKlaRv85IfVunYzO0IKXsyl7JCUjCpoG'+
	'20f0a04COwfneQAGGwd5oa+T8yO5hzuy'+
	'Db/XcxxmK01EpqOyuxINew=='
var iv = 'r7BXXKkLb8qrSNn05n0qiA=='

var pc = new WXBizDataCrypt(appId, sessionKey)

var data = pc.decryptData(encryptedData , iv)

console.log('解密后 data: ', data)
// 解密后的数据为
//
// data = {
//   "nickName": "Band",
//   "gender": 1,
//   "language": "zh_CN",
//   "city": "Guangzhou",
//   "province": "Guangdong",
//   "country": "CN",
//   "avatarUrl": "http://wx.qlogo.cn/mmopen/vi_32/aSKcBBPpibyKNicHNTMM0qJVh8Kjgiak2AHWr8MHM4WgMEm7GFhsf8OYrySdbvAMvTsw3mo8ibKicsnfN5pRjl1p8HQ/0",
//   "unionId": "ocMvos6NjeKLIBqg5Mr9QjxrP1FA",
//   "watermark": {
//     "timestamp": 1477314187,
//     "appid": "wx4f4bc4dec97d474b"
//   }
// }

解密完成后即可获取手机号~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档