萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 微信掃描二維碼登錄網站代碼

微信掃描二維碼登錄網站代碼

 用戶通過掃描網頁提供的二維碼實現登陸信息獲取,大家參考使用吧

請先下載  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
copyright © 萬盛學電腦網 all rights reserved