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

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

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

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

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

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

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

比如我这里获取到的

<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

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中有

打开就是这样的

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"
//   }
// }

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

相关文章
|
7月前
|
Java 数据安全/隐私保护 计算机视觉
手机虚拟视频替换摄像头,QQ微信虚拟视频插件,jar代码分享
这段代码演示了如何使用JavaCV捕获视频流、处理帧数据并输出到虚拟摄像头设备。它需要JavaCV和OpenCV库支持
|
7月前
|
API 数据安全/隐私保护 开发者
企业微信自动加好友软件,导入手机号批量添加微信好友,python版本源码分享
代码展示了企业微信官方API的合规使用方式,包括获取access_token、查询部门列表和创建用户等功能
|
7月前
|
Android开发 数据安全/隐私保护
手机微信虚拟视频聊天,安卓免root虚拟摄像头,免root虚拟hook相机
以上代码实现了一个完整的免root虚拟摄像头方案,通过Hook系统摄像头服务和微信视频通话接口
|
8月前
|
Android开发
微信加好友脚本自动,手机号自动添加定时,可群聊通讯录添加
这是一款基于 AutoJS 的微信自动化脚本,适用于 Android 7.0+ 系统,实现定时批量添加好友功能。采用分层设计(主控模块+功能模块+配置模块)
微信养号脚本,导入手机号自动添加,autojs代码分享
这段代码实现了基本的微信自动添加好友功能,包括读取手机号文件、启动微信、搜索用户和发送
企业微信批量加好友脚本,企业微信自动加手机号好友软件,自动同意群发消息自动回复
这是一款为企业微信设计的自动化营销工具,能够一键批量加好友并自动回复消息。通过模拟操作实现自动化流程,提升网络营销效率。
|
8月前
|
监控 数据可视化 BI
微信计数器统计工具,QQ统计器手机APP,通过autojs实现后台
这是一款基于AutoJS的微信/QQ新增好友监控脚本,具备后台运行、自动统计每日新增好友数量、生成简单报表及定时提醒功能。
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
581 0
|
人工智能 小程序 搜索推荐
uni app下开发AI运动小程序解决方案
本文介绍了在小程序中实现AI运动识别的解决方案。该方案依托于UNI平台,通过高效便捷的插件形式,实现包括相机抽帧控制、人体识别、姿态识别等在内的多项功能,无需依赖后台服务器,大幅提高识别效率和用户体验。方案内置多种运动模式,支持自定义扩展,适用于AI健身、云上赛事、AI体测等多场景,适合新开发和存量改造项目。

热门文章

最新文章