最近做一个有关微信授权登录的项目,关于授权就不多说了,我获取到用户基本信息,格式如下:

$user_info = '{"openid":"xx","nickname":"nice花椒.","sex":2,"language":"zh_CN","city":"杭州","province":"浙江","country":"中国","headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/vi_32\/Q0j4TwGTfTJPpziaqOoIpGia9ZVj9fheAwLmTiavV4rxR40NQ1zPQPyiaMY58FEISDIfpn0q5VeeXliaKyiaiabgK2ZHg\/0","privilege":[]}';

直接把headimgurl入库保存,bug来了。

话不多说,进入正题:

微信返回的是json格式

$user_arr = json_decode($user_info, true);

获取用户openid对比数据库,判断是不是首次授权

$mem_info= $member->getuserinfo(array('openid'=>$user_arr['openid']));

首次授权或者头像链接地址与上次不同

if(!$mem_info || $mem_info['wximage']!=$user_info['headimg']){

$headimgurl = saveheadimgurl($user_arr['headimgurl']);

$headimg ? 0 : $headimg='lib/avata.jpg' ;

if($mem_info['wximage']!=$user_info['headimg']){

unlink($mem_info['headimg']);

}

//快来写你的注册或者修改代码吧!

}

保存图片

function saveheadimgurl($headimg){

$header = array(

'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, $headimg);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($curl, CURLOPT_HTTPHEADER,$header);

$dataimg = curl_exec($curl);

$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);

curl_close($curl);

if ($code == 200) {

$imgBase64Code = "data:image/jpeg;base64," . base64_encode($dataimg);

}

$img_content=$imgBase64Code;

if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)){

$type = $result[2];

create(DOFILESPATH."head");

$new_file = DOFILESPATH."head/".md5(uniqid(rand())).".{$type}";

if (file_put_contents($new_file, base64_decode(str_replace($result[1],'', $img_content))))

{

return $new_file;

}

}

return false;

}

指定位置创建文件

function create($dir){

if(is_dir($dir)){

$temp = explode('/',$dir);

$cur_dir = '';

for($i=0; $i

$cur_dir .= $temp[$i].'/';

if(!is_dir($cur_dir)){

@mkdir($cur_dir,777);

}

}

}

}

哈哈,我是一个专注接口的小菜鸟,多多指教!

java用户头像保存_微信授权后获取用户头像保存到服务器相关推荐

  1. java查看附近门店_微信公众号获取用户地理位置并列出附近的门店的示例代码...

    思路分析: 1.在微信公众号内获取用户地理位置 需要js-sdk签名包(关于如何获取文档有介绍) 2.根据获取的地理位置ajax去后台请求,通过sql语句,查询中距离最近的门店(sql语句在网上搜的, ...

  2. java微信获取用户列表_微信公众平台 获取用户列表

    一.接口说明 公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成.一次拉取调用最多拉取10000个关注者的Open ...

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

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

  4. 用c#开发微信(2)扫描二维码,用户授权后获取用户基本信息 (源码下载)

    本文将介绍基于Senparc.Weixin微信开发框架来实现网页授权来获取用户基本信息.先生成包含授权及回调url信息的二维码:用户用微信扫描之后,被要求授权以获取Ta的用户基本信息:用户授权后,通过 ...

  5. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号

    获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...

  6. java中用户头像是怎么弄的_微信小程序获取用户openid,头像昵称信息,后台java代码...

    https://blog.csdn.net/qq_39851704/article/details/79025557 首先最近正在练习微信小程序刚刚写了一个获取用户openid的代码,貌似之前的小程序 ...

  7. 微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)

    如果开发者拥有多个移动应用.网站应用.和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用.网站应用和公众帐号(包括小程序),用户的 Un ...

  8. 唯一标识 微信小程序_微信小程序获取用户唯一标识(不用授权)

    在做微信小程序开发时,根据应用的需要,可能会要求获得用户不同的信息和硬件设备不同的使用权限.前者比如:用户标识.头像.昵称.姓别.地址.手机号码等,后者包括:地理位置.手机相册.摄像头等.根据小程序现 ...

  9. python 公众号 关注者位置_微信公众号获取用户地理位置

    很久没搞微信的js-sdk了, 搞了一下午, 刷新页面老是失败, 没想到结合经验给大家展示下获取用户地理位置 第一步:登录微信公众号https://mp.weixin.qq.com 首先先设置最基本的 ...

最新文章

  1. aidl实现进程间通信
  2. “战狼”无人直升机完成高原靶试
  3. mysql binlog 回退_MYSQL Binglog分析利器:binlog2sql使用详解
  4. python-上传文件的几种方式
  5. jQuery 定位到某个元素
  6. CASE_04 基于FPGA的电梯控制器
  7. updatePanle总结
  8. esxi6.0开启网络UI管理界面
  9. diffrences between ARP table and MAC address table
  10. 赫夫曼树的定义及原理
  11. mysql查binlog删除时间_mysql的binlog日志删除查询
  12. python 实现两个excel表格数据的对比--代码
  13. c语言口袋妖怪代码大全,口袋妖怪代码大全.docx
  14. 阮一峰:值得分享给开发者的 Authing 身份云
  15. 读书笔记:《Designing Data-Intensive Applications》
  16. Oracle报错1031,dataguard 归档日志报1031错误的一次处理
  17. java-数组常用api
  18. IAR无法调试问题解决
  19. tomcat配置SSI
  20. UEFI U盘安装Win10最简单的方法【转】

热门文章

  1. 【原创】如何做一张原创8BIT音乐的NES音乐卡片
  2. 浏览器底层,内存分配,运行机制
  3. 数据恢复软件EasyRecovery Photo16新版本功能特点介绍
  4. 阿里云产品推荐——弹性裸金属服务器(神龙)
  5. go语言 第三方包安装方法_安装第三方软件到电视的方法,看直播应该下载什么软件?...
  6. lotus notes 闪退_大神解答win7系统Lotus Notes邮箱闪退的步骤介绍
  7. 【Java】实现聊天程序(完整版)
  8. 十八、redis6从入门到高级
  9. http://blog.sina.com.cn/s/blog_5eec6f3a0100hxwn.html
  10. 【Android】 简单的朋友圈界面设计