请先下载 snoopy 类
复制代码 代码如下:
<"snoopy.class.php";
class Wechatauth
{
private $cookie;
private $_cookiename;
private $_cookieexpired = 3600;
private $_account = 'test';
private $_datapath = './data/cookie_';
private $debug;
private $_logcallback;
public $login_user; //当前登陆用户, 调用get_login_info后获取
public function __construct($options)
{
$this->_account = isset($options['account'])"/window.QRLogin.uuid\s+=\s+\"([^\"]+)\"/",$result,$matches);
if(count($matches)>1) {
$this->_logincode = $matches[1];
$_SESSION['login_step'] = 0;
return $this->_logincode;
}
}
return $result;
}
/**
* 通过授权码获取对应的二维码图片地址
* @param string $code
* @return string image url
*/
public function get_code_image($code=''){
if ($code=='') $code = $this->_logincode;
if (!$code) return false;
return 'http://login.weixin.qq.com/qrcode/'.$this->_logincode.'"https://wx.qq.com/";
$send_snoopy->fetch($url);
$result = $send_snoopy->results;
$this->log('step1:'.$result);
if ($result) {
preg_match("/window\.code=(\d+)/",$result,$matches);
if(count($matches)>1) {
$status = intval($matches[1]);
if ($status==201) $_SESSION['login_step'] = 1;
if ($status==200) {
preg_match("/ticket=([0-9a-z-_]+)&lang=zh_CN&scan=(\d+)/",$result,$matches);
$this->log('step2:'.print_r($matches,true));
if (count($matches)>1) {
$ticket = $matches[1];
$scan = $matches[2];
$loginurl = 'https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage"https://wx.qq.com/";
$send_snoopy->fetch($loginurl);
$this->log('step3:'.print_r($send_snoopy->headers,true));
foreach ($send_snoopy->headers as $key => $value) {
$value = trim($value);
if(strpos($value,'Set-Cookie: ') !== false){
$tmp = str_replace("Set-Cookie: ","",$value);
$tmp = str_replace("Path=/","",$tmp);
$tmp = str_replace("Domain=.qq.com; ","",$tmp);
$cookie.=$tmp;
}
}
$cookie .="Domain=.qq.com;";
$this->cookie = $cookie;
$this->saveCookie($this->_cookiename,$this->cookie);
}
}
return $status;
}
}
return false;
}
/**
* 获取登陆的cookie
*
* @param bool $is_array 是否以数值方式返回,默认否,返回字符串
* @return string|array
*/
public function get_login_cookie($is_array = false){
if (!$is_array) return $this->cookie;
$c_arr = explode(';',$this->cookie);
$cookie = array();
foreach($c_arr as $item) {
$kitem = explode('=',trim($item));
if (count($kitem)>1) {
$key = trim($kitem[0]);
$val = trim($kitem[1]);
if (!empty($val)) $cookie[$key] = $val;
}
}
return $cookie;
}
/**
* 授权登陆后获取用户登陆信息
*/
public function get_login_info(){
if (!$this->cookie) return false;
$t = time().strval(mt_rand(100,999));
$send_snoopy = new Snoopy;
$submit = 'https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit"https://wx.qq.com/";
$send_snoopy->submit($submit,array());
$this->log('login_info:'.$send_snoopy->results);
$result = json_decode($send_snoopy->results,true);
if ($result['BaseResponse']['Ret']<0) return false;
$this->_login_user = $result['User'];
return $result;
}
/**
* 获取头像
* @param string $url 传入从用户信息接口获取到的头像地址
*/
public function get_avatar($url) {
if (!$this->cookie) return false;
if (strpos($url, 'http')===false) {
$url = 'http://wx.qq.com'.$url;
}
$send_snoopy = new Snoopy;
$send_snoopy->rawheaders['Cookie']= $this->cookie;
$send_snoopy->referer = "https://wx.qq.com/";
$send_snoopy->fetch($url);
$result = $send_snoopy->results;
if ($result)
return $result;
else
return false;
}
/**
* 登出当前登陆用户
*/
public function logout(){
if (!$this->cookie) return false;
preg_match("/wxuin=(\w+);/",$this->cookie,$matches);
if (count($matches)>1) $uid = $matches[1];
preg_match("/wxsid=(\w+);/",$this->cookie,$matches);
if (count($matches)>1) $sid = $matches[1];
$this->log('logout: uid='.$uid.';sid='.$sid);
$send_snoopy = new Snoopy;
$submit = 'https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxlogout"https://wx.qq.com/";
$send_snoopy->submit($submit,array('uin'=>$uid,'sid'=>$sid));
$this->deleteCookie($this->_cookiename);
return true;
}
}
PS:本站还提供了一个功能十分强大的二维码工具供大家使用:
http://tools.jb51.net/transcoding/jb51qrcode
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 魔兽世界wlk暗牧一键输出宏是什么 wlk暗牧一键输出宏介绍
- 群星.1996-红不让台语原唱2辑【福和唱片】【WAV+CUE】
- 郭书瑶.2009-爱的抱抱(EP)【种子音乐】【FLAC分轨】
- 郑瑞芬.1989-BE.MY.BABY【现代】【WAV+CUE】
- 花钱请人每周放30万只不咬人的蚊子 防治登革热传播
- 饭制《第一后裔》丧尸版弗蕾娜
- 贝克汉姆亲临!2024FC品类游戏嘉年华圆满落幕
- 「命轨爻错之翼」风之翼发放说明
- 《原神》前瞻特别节目回顾长图
- 米游币抽抽乐-原神专场现已开启!
- 黑鸭子2001《风情中国HQCD》[日本版][WAV+CUE]
- 陈杰洲1990-成人礼[滚石][WAV+CUE]
- MarkAanderud-HandsFree(2024)[24-44,1]FLAC
- 孙露《观心》1:1母盘直刻限量版[低速原抓WAV+CUE][361M]
- 钟志刚《汽车DJ玩主》[低速原抓WAV+CUE][1G]