默认微信头像是一个URL地址,保存在微信的服务器上,如果授权登录后换了头像获取的头像地址就会失效,图片显示不出来体验就会比较差。解决办法就是在登录的时候把微信头像保存到本地服务器,这样就不存在这样的情况,用户发现头像没更新可以手动点击更新或者程序自动判断更新。

下面是PHP中如果把用户的微信头像保存到本地服务器,形成永久的头像。

 function download_remote_pic($url) {$header = ['User-Agent: Mozilla/5.0 (Windows NT 6.1;Win64;x64;rv:45.0) Gecko/20100101 Firefox/45.0','Accept-Language: zh-CN, zh;q = 0.8, en-US;q = 0.5, en;q = 0.3','Accept-Encoding: gzip, deflate',];$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);curl_setopt($curl, CURLOPT_ENCODING, 'gzip');curl_setopt($curl, CURLOPT_HTTPHEADER, $header);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在$data = curl_exec($curl);$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);curl_close($curl);if ($code == 200) {//把URL格式的图片转成base64_encode格式的!      $imgBase64Code = "data:image/jpeg;base64," . base64_encode($data);}$img_content = $imgBase64Code; //图片内容  //echo $img_content;exit;  if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)) {var_dump($result);$type = $result[2]; //得到图片类型png?jpg?gif?   $new_file = "./openid" . ".{$type}";if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $img_content)))) {return $new_file;}}}$new_file = download_remote_pic('https://wx.qlogo.cn/mmopen/vi_32/20JUJpvD2IO8TyKTuLTu8o2IXlXobcA8OLxsZ2OBTLAEG9rrMXGicJnCicqdz6vSP2sYpMrFHsZ9FnUCAev3taAA/132');echo $new_file;

保存到本地的图片用OPENID命名防止冲突,调用的时候只要有用户的OPENID就可以随时调用。

获取微信用户信息后如何把微信头像保存到本地服务器相关推荐

  1. 获取微信用户信息java开发_Java微信公众平台开发(十二)--微信用户信息的获取

    前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...

  2. 微信小程序同一个登录按钮上触发获取微信用户信息和电话号码

    微信小程序同一个登录按钮上触发获取微信用户信息和电话号码 因为微信小程序获取用户信息getuserinfo方法和获取电话号码open-type="getPhoneNumber" @ ...

  3. JAVA 获取微信用户信息,看完这篇你必须得学会

    很多IT搬砖员,磕磕碰碰,都比较生怕遇到自己未接触过的东西,但是作为开发,迟早有一天,某个领导跟你说,某个需求,需要接入微信公众号,需要获取微信用户信息. 虽然说微信提供了相关的文档,但是免不了还是很 ...

  4. Spring MVC 实战:三种方式获取登录用户信息

    前言 Web 项目中,维持用户登录状态的常用方式有三种,分别是 Cookie.Session.Token,不管哪种方案,都需要获取到用户信息供业务层使用. 由于获取用户信息与具体业务无关,因此在普通的 ...

  5. SAP系统和微信集成的系列教程之六:如何通过OAuth2获取微信用户信息并显示在SAP UI5应用中

    这是Jerry 2020年的第87篇文章,也是汪子熙公众号总共第269篇原创文章. 本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发 ...

  6. SpringBoot中获取微信用户信息竟然这么简单!

    前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要 ...

  7. 实现微信打开网页时,获取当前微信用户信息(Java)(基于snsapi_userinfo方式)

    /*** 1 第一步:用户同意授权,获取code* 2 第二步:通过code换取网页授权access_token* 3 第三步:刷新access_token(如果需要)* 4 第四步:拉取用户信息(需 ...

  8. Spring学习笔记(二十三)——实现网站微信扫码登录获取微信用户信息Demo

    目录 微信扫码登录介绍 开发步骤 微信扫码登录示例 微信开放文档 遇到的问题 使用第三方工具实现网站微信扫码登录 开发前介绍 开发步骤 微信扫码登录获取微信用户信息Demo实现流程 实现效果 实现过程 ...

  9. 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ

    微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ 一.获取用户信息 1.首先我们需要了解什么是微信用户的OpenID 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密 ...

最新文章

  1. OpenBLAS简介及在Windows7 VS2013上源码的编译过程
  2. “cmake 点点”表示在上一级目录(CMakeLists.txt所在目录)编译
  3. shell 字符串操作(长度,查找,替换)详解
  4. 跨链Cosmos(3)IBC协议二
  5. 1249. 移除无效的括号
  6. C socket demo
  7. 快速获得数据库连接字符串的小窍门
  8. System.load(String filename)和System.loadLibrary(String libname)的区别
  9. 10.15 iptables filter表小案例;10.16—10.18 iptables nat
  10. 举例在项目中动态构建自己的程序集,.NET产生动态程序集!
  11. 安卓内存监控悬浮窗,6年菜鸟开发面试字节跳动安卓研发岗,面试建议
  12. 将计算机屏幕,iPad化身显示器!一款能让平板变电脑屏幕的神器
  13. 计算机一打开就卡在更新失败,Win10更新系统卡住不动怎么办 Win10系统更新卡住不动解决方法...
  14. GBase 8c 数据库产品简介
  15. live2d 3行代码 为网站添加萌萌哒看板娘
  16. 蓝桥杯基础之16进制、10进制、8进制、2进制换算总结
  17. DB2001 深入了解DB2 reorg
  18. spark count统计元素个数
  19. Android获取设备支持的编解码器
  20. 慕课网跟练系列——定位和边距的区别弹出层的简单实例

热门文章

  1. 并联串联混合的电压和电流_干货 | 聊聊电阻串并联的特点及区别
  2. RG交换机VSU配置
  3. ff14显卡测试软件,FF14官方跑分软件
  4. 代码 - 多张图片合并成PDF(每页宽高即是当前页面图片的宽高)- itextpdf
  5. 运算符优先级记忆口诀
  6. java se项目_JavaSE综合项目演练
  7. 接口调用-【4】讯飞离线语音合成Windows/Linux
  8. oracle导出where,Oracle exp导出加where指定条件
  9. 物联网行业4大潜在突破领域浅析
  10. Java Swing编程中对图片的编辑