通过微信授权接口,获取用户微信账户信息
微信官方最近已经回收了前端通过getUserInfo接口获取微信信息的功能,现在推荐的办法是使用后端解密获取,具体办法如下:
第一步:通过jscode2session获取openid
$appid = '你的appid';
$secret = '你的secret';
$js_code = $params['code']; //前端传给后端的js_code
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret=' . $secret . '&js_code=' . $js_code . '&grant_type=authorization_code';
$getOpenid = curl_init();
curl_setopt($getOpenid, CURLOPT_URL, $url);
curl_setopt($getOpenid, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($getOpenid, CURLOPT_HEADER, 0);
curl_setopt($getOpenid, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($getOpenid, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($getOpenid, CURLOPT_CONNECTTIMEOUT, 10);
$resultSession = curl_exec($getOpenid);
$disposeData = @json_decode($resultSession,true); //获取请求接口后的数据,拿到openid和session_key。
第二步:通过session_key,encryptedData,iv获取解析微信用户信息
$openid = $disposeData['openid'];
$sessionKey = $disposeData['session_key'];
/**
* 分割线,上方获取sessionKey,下方使用sessionKey进行解密
*/
$encryptedData = $params['encryptedData']; //前端传
$iv = $params['iv'];//前端传
$encryptedData = str_replace(' ', '+', $encryptedData);
//此处接收到微信发送的数据时,PHP会将数据中的+转化为空格,此处需要将空格转化为+
$iv = str_replace(' ', '+', $iv);
$aesKey = base64_decode($sessionKey);
$aesIV = base64_decode($iv);
$aesCipher = base64_decode($encryptedData);
$result = openssl_decrypt($aesCipher, 'AES-128-CBC', $aesKey, 1, $aesIV);
$userData = @json_decode($result,true);
结果中的$userData就是获取的微信用户数据。
通过微信授权接口,获取用户微信账户信息相关推荐
- uniappH5+springboot微信授权登录获取用户数据(非静默授权)
uniappH5+springboot微信授权登录获取用户数据(非静默授权) 微信网页授权开发文档 准备工作 微信公众号appid和appSecret及配置相关的ip白名单 配置网页授权域名,具体操作 ...
- 微信公众号获取用户位置定位信息入库asp代码
微信公众号获取用户位置定位信息入库asp代码,可以获取微信用户的坐标和地址信息入库,代码简洁: <% if request("action")="" th ...
- 微信小程序获取用户设备的信息
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 可以获取用户的手机型号,手机操作系统,微信版本,屏幕宽高等等. Object wx.getSystemInfo ...
- 微信公众号开发之网页授权认证获取用户的详细信息,实现自动登陆
原创声明:本文转来源本人另一博客[http://blog.csdn.net/liaohaojian/article/details/70175835]绝非他人处转载 从接触公众号到现在,开发维护了2个 ...
- (微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆)http://blog.csdn.net/liaohaojian/article/details/70175835
从接触公众号到现在,通过不断积累学习,对如何调用微信提供接口有了一定的见解.当然在开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事,必先利其器,先看看开 ...
- 微信oauth2接口获取用户的openid
当微信的菜单类型是view型时,就需要通过"网页授权获取用户基本信息"接口来获取了,具体接口使用大家自己到微信公众平台去查看文档吧.这里只简述我的方法吧 如果大家view的设置链接 ...
- java用户头像保存_微信授权后获取用户头像保存到服务器
最近做一个有关微信授权登录的项目,关于授权就不多说了,我获取到用户基本信息,格式如下: $user_info = '{"openid":"xx","n ...
- 微信授权(获取openid和userinfo信息)
获取openid和userinfo信息 一:基于微信公众号的授权登录,获取openid和用户信息. 第一步:用户同意授权,获取code 在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下 ...
- 微信小程序 - 获取用户当前位置信息(用于定位地址及获取地址等需求)
前言 有两种获取位置的方式,一种是 直接返回经纬度等信息(必须代码处理后才能显示到界面上),另一种是 "界面选择式" 由用户打开地图选择位置. 最近有添加用户收货地址需求(外卖项目 ...
- 微信开放接口获取用户昵称保存到MySQL中为空白
微信昵称中包含emoji表情标签,某些标签是使用了4字节编码的UTF8. 而大多数MySQL数据库现在使用的是3字节UTF8编码,这样会导致保存为空,且不会提示失败. 解决方法有2个,一个是升级到My ...
最新文章
- 【spring】编程式事务控制
- vim php代码规范
- 近期知识图谱顶会论文推荐,另附超详笔记解读
- 动态规划套路:最大子数组和
- EIGRP的successor与fessible successor
- [Ext JS 4] contentEL,renderTo, applyTo 释义与区别
- 我们会不会与操作系统谈一场奋不顾身的爱情──《云端情人》有感
- 数据分析的一些简单思路总结
- java多线程编程实例
- 软件无线电波测试软件,SDR软件无线电的测量
- OA集成新标杆 10oa系统集成能力不容小觑
- arcpy投影(一)——prj、gtf文件定义、路径及解析(arcmap,arcpro)
- [渝粤教育] 武汉大学 自然科学经典导引 参考 资料
- 1GB等于2的多少次方
- [Vulfocus解题系列] 所复现漏洞总结
- 兼容ios和android的ar,安卓又落后 这几款AR游戏只能iOS玩
- 【强化学习】悬崖寻路:Sarsa和Q-Learning
- 常用的十种算法:二分查找,分治,动态规划,KMP
- 网站搭建基础知识、流程概括
- 《精通python设计模式》读书笔记之——结构型设计模式
热门文章
- Git 的暂存区(staging area)理解
- A Survey on Knowledge Graphs___Representation, Acquisition and Applications.知识图谱综述:表示,获取,应用
- SQL—————的分类
- linux下载百度网盘
- C++STL容器的比较
- common-pool2的介绍和使用
- SOP:Ubuntu20安装微信
- spring使用freemarker生成word文档包含表格、图片(循环插入)
- 前端基础 HTML
- 解决VMware中虚拟机(centos7)无法上网的一种方法