微信小程序获取手机号和OPENID
小程序开发已经是家常便饭了,当然获取手机号也是需要经常用到,今天做个记录
获取流程是,先通过前端传递过来的code,获取openid和session_key,然后拿着session_key和前端传递过来的加密信息来获取手机号信息
$appid = '';
$secret = '';
$code = ''; //前端传递过来的
$data = file_get_contents('https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret=' . $secret . '&js_code=' . $code . '&grant_type=authorization_code');
if (!empty($data)) {$data = json_decode($data, true);$openid = $data['errcode'] == 0 ? $data['openid'] : '';//$session_key = $data['session_key'];return $openid;
}
有了这些信息后,可以通过解密方法来获取手机号
private function decryptData($appid, $sessionKey, $encryptedData, $iv, &$data)
{if (strlen($sessionKey) != 24) {return -41001;}$aesKey = base64_decode($sessionKey);if (strlen($iv) != 24) {return -41002;}$aesIV = base64_decode($iv);$aesCipher = base64_decode($encryptedData);$result = openssl_decrypt($aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);$dataObj = json_decode($result);if ($dataObj == NULL) {return -41003;}if ($dataObj->watermark->appid != $appid) {return -41004;}$data = $dataObj;return 0;
}
上面方法需要传递四个参数,分别是,appid,session_key,前端的加密数据,前端的IV值,还有一个引入式变量data,方法返回一个状态码,如果状态码等于0的时候,那就是成功了,$data的数据就是手机号json,下面是一个例子:
$appid = '';
$session_key = ''; //拿上门获取的session_key
$encryptedData = ''; //前端传递
$iv = ''; //前端传递
$data = ''; //默认声明
$errCode = $this->decryptData($appid,$session_key,$encryptedData,$iv,$data);
$this->logs('phoneinfo:' . json_encode($data));
if ($errCode == 0) {$phone = $data->phoneNumber;return $phone;
}
微信小程序获取手机号和OPENID相关推荐
- 微信小程序获取手机号登录流程
微信小程序获取手机号登录流程 首先前端使用wx.login 获取code wx.login({success(res) {if (res.code) {that.setData({code: res. ...
- 微信小程序---- 获取手机号(微信最新更新)
微信小程序---- 获取手机号(微信最新更新) 前言:需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphone ...
- 微信小程序获取手机号登录流程(个人开发者账号不支持)
微信小程序获取手机号登录流程 所需条件 1. 非个人开发者账号 2. AppID+AppSecret 流程思路 **注意:** 代码实现 常见问题 所需条件 1. 非个人开发者账号 获取手机号文档 这 ...
- uni-app微信小程序获取手机号;微信小程序获取手机号,获取到后需要进行解密;微信小程序获取手机号失败 Error:该appId没有权限
方法1.uni-app登录加获取手机号解密-直接看此篇即可解决 微信小程序获取手机号注意点: 1.需要先登录,微信小程序登录看这篇 2.手机号获取到时加密的,需要后端解密或者前端自己解密(解密时候就会 ...
- 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能
小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...
- 小程序获取sessionkey_微信小程序 获取session_key和openid的实例
微信小程序 获取session_key和openid的实例 说说获取session_key和openid的条件 1.AppID(小程序ID); 2.AppSecret(小程序密钥); 3.登录时获取c ...
- 微信小程序获取手机号并解密详解
微信小程序获取手机号并解密 1 获取手机号 2 解密 2.1 获取所需数据 2.2 解密返回数据 1 获取手机号 获取手机号的过程官方文档有详细的介绍.参考官方链接 要注意的是,此功能只对非个人且完成 ...
- php 微信小程序获取手机号_实例讲解微信小程序获取手机号授权用户登录功能...
小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写.本文主要给大家分享微信小程序获取手机号授权用户登录功能,需要的朋友参考下吧, ...
- java实现微信、手机号登陆_微信小程序获取手机号授权用户登录功能
小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPaDirIrkFhoneNumber这个组件通过button来 ...
- php7.4 微信小程序获取手机号
第一步应该先接受获取code 然后得到sessionkey和openid 第二步 把openid返回给小程序客户端,同时把sessionkey和openid存入数据库 第三步 小程序获取手机号时把op ...
最新文章
- python flask表单语法_Flask框架如何使用表单
- 【图像超分辨率】RRSGAN: Reference-Based Super-Resolution for Remote Sensing Image
- UART 异步串行通信发送模块设计与实现
- 图论算法(二)-最短路径的Dijkstra [ 单源 ] 和Floyd[ 多源 ] 解法(JAVA )
- etcd部署简单说明
- Python + OpenCV 环境配置
- Ubuntu16.04装机2:安装CUDA10.2+cuDNN7.6.5
- java interruptedexception_如何正确的处理InterruptedException
- python毕业设计作品基于django框架校园网站系统毕设成品(6)开题答辩PPT
- html5在线加密,HTML源代码在线加密解密
- 求解顺序统计量的7种方法
- 普渡大学统计与计算机科学,普渡大学西拉法叶分校统计学
- C语言程序——摄氏度和华氏度之间的转换
- educoder——面向对象程序设计java——实验实训——实验二 - 面向对象
- 微信分享网页 图标不显示
- elasticsearch ingest node
- 项目十大管理之成本管理
- 蓝桥杯 算法提高 阮小二买彩票 Python
- CRC (Cyclic redundancy check) java 实现
- 日志易之配置日志内容黑名单