微信官方最近已经回收了前端通过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就是获取的微信用户数据。

通过微信授权接口,获取用户微信账户信息相关推荐

  1. uniappH5+springboot微信授权登录获取用户数据(非静默授权)

    uniappH5+springboot微信授权登录获取用户数据(非静默授权) 微信网页授权开发文档 准备工作 微信公众号appid和appSecret及配置相关的ip白名单 配置网页授权域名,具体操作 ...

  2. 微信公众号获取用户位置定位信息入库asp代码

    微信公众号获取用户位置定位信息入库asp代码,可以获取微信用户的坐标和地址信息入库,代码简洁: <% if request("action")="" th ...

  3. 微信小程序获取用户设备的信息

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 可以获取用户的手机型号,手机操作系统,微信版本,屏幕宽高等等. Object wx.getSystemInfo ...

  4. 微信公众号开发之网页授权认证获取用户的详细信息,实现自动登陆

    原创声明:本文转来源本人另一博客[http://blog.csdn.net/liaohaojian/article/details/70175835]绝非他人处转载 从接触公众号到现在,开发维护了2个 ...

  5. (微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆)http://blog.csdn.net/liaohaojian/article/details/70175835

    从接触公众号到现在,通过不断积累学习,对如何调用微信提供接口有了一定的见解.当然在开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事,必先利其器,先看看开 ...

  6. 微信oauth2接口获取用户的openid

    当微信的菜单类型是view型时,就需要通过"网页授权获取用户基本信息"接口来获取了,具体接口使用大家自己到微信公众平台去查看文档吧.这里只简述我的方法吧 如果大家view的设置链接 ...

  7. java用户头像保存_微信授权后获取用户头像保存到服务器

    最近做一个有关微信授权登录的项目,关于授权就不多说了,我获取到用户基本信息,格式如下: $user_info = '{"openid":"xx","n ...

  8. 微信授权(获取openid和userinfo信息)

    获取openid和userinfo信息 一:基于微信公众号的授权登录,获取openid和用户信息. 第一步:用户同意授权,获取code 在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下 ...

  9. 微信小程序 - 获取用户当前位置信息(用于定位地址及获取地址等需求)

    前言 有两种获取位置的方式,一种是 直接返回经纬度等信息(必须代码处理后才能显示到界面上),另一种是 "界面选择式" 由用户打开地图选择位置. 最近有添加用户收货地址需求(外卖项目 ...

  10. 微信开放接口获取用户昵称保存到MySQL中为空白

    微信昵称中包含emoji表情标签,某些标签是使用了4字节编码的UTF8. 而大多数MySQL数据库现在使用的是3字节UTF8编码,这样会导致保存为空,且不会提示失败. 解决方法有2个,一个是升级到My ...

最新文章

  1. 【spring】编程式事务控制
  2. vim php代码规范
  3. 近期知识图谱顶会论文推荐,另附超详笔记解读
  4. 动态规划套路:最大子数组和
  5. EIGRP的successor与fessible successor
  6. [Ext JS 4] contentEL,renderTo, applyTo 释义与区别
  7. 我们会不会与操作系统谈一场奋不顾身的爱情──《云端情人》有感
  8. 数据分析的一些简单思路总结
  9. java多线程编程实例
  10. 软件无线电波测试软件,SDR软件无线电的测量
  11. OA集成新标杆 10oa系统集成能力不容小觑
  12. arcpy投影(一)——prj、gtf文件定义、路径及解析(arcmap,arcpro)
  13. [渝粤教育] 武汉大学 自然科学经典导引 参考 资料
  14. 1GB等于2的多少次方
  15. [Vulfocus解题系列] 所复现漏洞总结
  16. 兼容ios和android的ar,安卓又落后 这几款AR游戏只能iOS玩
  17. 【强化学习】悬崖寻路:Sarsa和Q-Learning
  18. 常用的十种算法:二分查找,分治,动态规划,KMP
  19. 网站搭建基础知识、流程概括
  20. 《精通python设计模式》读书笔记之——结构型设计模式

热门文章

  1. Git 的暂存区(staging area)理解
  2. A Survey on Knowledge Graphs___Representation, Acquisition and Applications.知识图谱综述:表示,获取,应用
  3. SQL—————的分类
  4. linux下载百度网盘
  5. C++STL容器的比较
  6. common-pool2的介绍和使用
  7. SOP:Ubuntu20安装微信
  8. spring使用freemarker生成word文档包含表格、图片(循环插入)
  9. 前端基础 HTML
  10. 解决VMware中虚拟机(centos7)无法上网的一种方法