您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> php编程 >> 正文

微信扫描二维码登录网站代码

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 用户通过扫描网页提供的二维码实现登陆信息获取,大家参考使用吧

请先下载  snoopy 类   代码如下: <?php /**  *  微信公众平台PHP-SDK  *  Wechatauth为非官方微信登陆API  *  用户通过扫描网页提供的二维码实现登陆信息获取  *  主要实现如下功能:  *  get_login_code() 获取登陆授权码, 通过授权码才能获取二维码  *  get_code_image($code='') 将上面获取的授权码转换为图片二维码  *  verify_code() 鉴定是否登陆成功,返回200为最终授权成功.  *  get_login_cookie() 鉴定成功后调用此方法即可获取用户基本信息  *  sendNews($account,$title,$summary,$content,$pic,$srcurl='') 向一个微信账户发送图文信息  *  get_avatar($url) 获取用户头像图片数据  *  @author dodge <[email protected]>  *  @link https://github.com/dodgepudding/wechat-php-sdk  *  @version 1.1  *    */ include "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'])?$options['account']:'';                 $this->_datapath = isset($options['datapath'])?$options['datapath']:$this->_datapath;                 $this->debug = isset($options['debug'])?$options['debug']:false;                 $this->_logcallback = isset($options['logcallback'])?$options['logcallback']:false;                 $this->_cookiename = $this->_datapath.$this->_account;                 $this->getCookie($this->_cookiename);         }         /**          * 把cookie写入缓存          * @param  string $filename 缓存文件名          * @param  string $content  文件内容          * @return bool          */         public function saveCookie($filename,$content){                 return file_put_contents($filename,$content);         }           /**          * 读取cookie缓存内容          * @param  string $filename 缓存文件名          * @return string cookie          */         public function getCookie($filename){                 if (file_exists($filename)) {                         $mtime = filemtime($filename);                         if ($mtime<time()-$this->_cookieexpired) return false;                         $data = file_get_contents($filename);                         if ($data) $this->cookie = $data;                 }                  return $this->cookie;         }           /*          * 删除cookie          */         public function deleteCookie($filename) {                 $this->cookie = '';                 @unlink($filename);                 return true;         }           private function log($log){                 if ($this->debug && function_exists($this->_logcallback)) {                         if (is_array($log)) $log = print_r($log,true);                         return call_user_func($this->_logcallback,$log);                 }         }           /**          * 获取登陆二维码对应的授权码          */         public function get_login_code(){                 if ($this->_logincode) return $this->_logincode;                 $t = time().strval(mt_rand(100,999));                 $codeurl = 'https://login.weixin.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_='.$t;                 $send_snoopy = new Snoopy;                  $send_snoopy->fetch($codeurl);                 $result = $send_snoopy->results;                 if ($result) {                         preg_match("/window.QRLogin.uuids+=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.'?t=webwx';         }           /**          * 设置二维码对应的授权码          * @param string $code          * @return class $this          */         pub