亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現的微信公眾號掃碼模擬登錄功能示例

2024-05-05 00:09:22
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現的微信公眾號掃碼模擬登錄功能。分享給大家供大家參考,具體如下:

PHP微信公眾號掃碼模擬登錄功能

功能只是將:https://github.com/huanz/wechat-mp-hack 改成PHP實現罷了.
之前有個休閑豆每日晨報訂閱號每天定時群發消息,去年微信突然要求一定要掃碼授權才能登錄,FK,然后就放棄了,前幾天看到早有人使用程序掃碼登錄,獲取token,cookie自動群發了,閑著也是閑著,就將js改成php實現了登錄功能.

主要流程如下

1,先訪問https://mp.weixin.qq.com/ ,模擬登錄,進入二維碼頁面
2,帶著返回的cookie下載二維碼.程序后臺一直while循環,等待掃描消息.
3,打開下載的二維碼,微信掃碼,登錄成功,獲取token和cookie,然后后面就可以自由發揮了.

供上代碼.

class WeiSendAuto{  //--------------------------------------------------------LOGIN START  private $_apis = [    "host"     => "https://mp.weixin.qq.com",    "login"     => "https://mp.weixin.qq.com/cgi-bin/bizlogin?action=startlogin",    "qrcode"    => "https://mp.weixin.qq.com/cgi-bin/loginqrcode?action=getqrcode¶m=4300",    "loginqrcode"  => "https://mp.weixin.qq.com/cgi-bin/loginqrcode?action=ask&token=&lang=zh_CN&f=json&ajax=1",    "loginask"   => "https://mp.weixin.qq.com/cgi-bin/loginqrcode?action=ask&token=&lang=zh_CN&f=json&ajax=1&random=",    "loginauth"   => "https://mp.weixin.qq.com/cgi-bin/loginauth?action=ask&token=&lang=zh_CN&f=json&ajax=1",    "bizlogin"   => "https://mp.weixin.qq.com/cgi-bin/bizlogin?action=login&lang=zh_CN"  ];  private $_redirect_url = "";  private $_key      = "";  private function _getCookieFile(){    return WEI_UPLOAD_PATH."cookie_{$this->_key}.text";  }  private function _getSavePath(){    return WEI_UPLOAD_PATH.$this->_qrcodeName();  }  private function _qrcodeName(){    return "qrcode_{$this->_key}.png";  }  private function _log($msg){    Log::record("[微信調度:".date("Y-m-d H:i:s")."] ======: {$msg}");  }  public function getToken(){    return Utils::getCache("token_{$this->_key}");  }  public function setToken($token){     Utils::setCache("token_{$this->_key}",$token);  }  public function init($options){    if(!isset($options["key"])){      die("Key is Null!");    }    $this->_key   =  $options["key"];    if($this->getToken()){      echo("HAS Token !");      return;    }else{      //尼瑪,先要獲取首頁!!!      $this->fetch("https://mp.weixin.qq.com/","","text");      $this->_log("start login!!");      $this->start_login($options);    }  }  private function start_login($options){    $_res    = $this->_login($options["account"],$options["password"]);    if(!$_res["status"]){      $this->_log($_res["info"]);      return;    }    //保存二維碼    $this->_saveQRcode();    $_ask_api    =  $this->_apis["loginask"];    $_input["refer"] =  $this->_redirect_url;    $_index     =  1;    while(true){/*      if($_index>60){        break;      }*/      $_res    =  $this->fetch($_ask_api.$this->getWxRandomNum(),$_input);      $_status   =  $_res["status"];      if($_status==1){        if($_res["user_category"]==1){          $_ask_api = $this->_apis["loginauth"];        }else{          $this->_log("Login success");          break;        }      }else if($_status==4){        $this->_log("已經掃碼");      }else if($_status==2){        $this->_log("管理員拒絕");        break;      }else if($_status==3){        $this->_log("登錄超時");        break;      }else{        if($_ask_api==$this->_apis["loginask"]){          $this->_log("請打開test.jpg,用微信掃碼");        }else{          $this->_log("等待確認");        }      }      sleep(2);      $_index++;    }    /*if($_index>=60){      $this->_log("U親,超時了");      return;    }*/    $this->_log("開始驗證");    $_input["post"]   = ["lang"=>"zh_CN","f"=>"json","ajax"=>1,"random"=>$this->getWxRandomNum(),"token"=>""];    $_input["refer"]   = $this->_redirect_url;    $_res        = $this->fetch($this->_apis["bizlogin"],$_input);    $this->_log(print_r($_res,true));    if($_res["base_resp"]["ret"]!=0){      $this->_log("error = ".$_res["base_resp"]["err_msg"]);      return ;    }    $redirect_url    =  $_res["redirect_url"];//跳轉路徑    if(preg_match('/token=([/d]+)/i', $redirect_url,$match)){//獲取cookie      $this->setToken($match[1]);    }    $this->_log("驗證成功,token: ".$this->getToken());  }  //下載二維碼  private function _saveQRcode(){    $_input["refer"] = $this->_redirect_url;    $_res    = $this->fetch($this->_apis["qrcode"],$_input,"text");    $fp     = fopen($this->_getSavePath(), "wb+") or die("open fails");    fwrite($fp,$_res) or die("fwrite fails");    fclose($fp);  }  private function _login($_username,$_password){    $_input["post"] = array(      'username'  => $_username,      'pwd'    => md5($_password),      'f'     => 'json',      'imgcode'  => ""    );    $_input["refer"] = "https://mp.weixin.qq.com";    $_res      = $this->fetch($this->_apis["login"],$_input);    if($_res["base_resp"]["ret"]!==0){      return Utils::error($_res["base_resp"]["err_msg"]);    }    $this->_redirect_url  =  "https://mp.weixin.qq.com".$_res["redirect_url"];//跳轉路徑    return Utils::success("ok");  }  function getWxRandomNum(){    return "0.".mt_rand(1000000000000000,9999999999999999);  }  /**   * @param $url   * @param null $_input   * @param string $data_type   * @return mixed   * $_input= ["post"=>[],"refer"=>"",cookiefile='']   */  function fetch( $url, $_input=null, $data_type='json') {    $ch = curl_init();    $useragent = isset($_input['useragent']) ? $_input['useragent'] : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2';    //curl_setopt( $ch, CURLOPT_HTTPHEADER, $this->_headers); //設置HTTP頭字段的數組    curl_setopt( $ch, CURLOPT_URL, $url );    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );    curl_setopt( $ch, CURLOPT_AUTOREFERER, true );    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );    curl_setopt( $ch, CURLOPT_POST, isset($_input['post']) );    if( isset($_input['post']) )     curl_setopt( $ch, CURLOPT_POSTFIELDS, $_input['post'] );    if( isset($_input['refer']) )    curl_setopt( $ch, CURLOPT_REFERER, $_input['refer'] );    curl_setopt( $ch, CURLOPT_USERAGENT, $useragent );    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, ( isset($_input['timeout']) ? $_input['timeout'] : 5 ) );    curl_setopt( $ch, CURLOPT_COOKIEJAR, ( isset($_input['cookiefile']) ? $_input['cookiefile'] : $this->_getCookieFile() ));    curl_setopt( $ch, CURLOPT_COOKIEFILE, ( isset($_input['cookiefile']) ? $_input['cookiefile'] : $this->_getCookieFile() ));    $result = curl_exec( $ch );    curl_close( $ch );    if ($data_type == 'json') {      $result = json_decode($result,true);    }    return $result;  }  //--------------------------------------------------------LOGIN END}

怎么調用?上碼

$arr = array(  'account'  => '***',  'password' => '****',  'key'    => "tmall",);$w       =  new WeiSendAuto();$w->init($arr);if(!$w->getToken()){  die("NOT TOKEN!");}

 

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品久久在线| 国产一区二区三区中文| 国产91精品久久久久久| 久久91亚洲人成电影网站| 国产精品美女久久久久av超清| 久久综合色影院| 亚洲乱码av中文一区二区| 色多多国产成人永久免费网站| 青青久久av北条麻妃海外网| 亚洲欧美精品伊人久久| 日韩精品中文字幕视频在线| 成人午夜黄色影院| 国内外成人免费激情在线视频网站| 亚洲免费一级电影| 色哟哟亚洲精品一区二区| 亚洲成人激情图| 久久久久久久影视| 亚洲欧美日韩精品久久| 日韩国产高清污视频在线观看| 亚洲精品ady| 九九九热精品免费视频观看网站| 在线a欧美视频| 亚洲国产欧美精品| 欧美又大粗又爽又黄大片视频| 亚洲欧美中文日韩在线v日本| 欧美精品videosex极品1| 亚洲国产成人精品女人久久久| 久久久久久国产三级电影| 成人高h视频在线| 欧美成人午夜免费视在线看片| 主播福利视频一区| 国产v综合v亚洲欧美久久| 日韩电影第一页| 亚洲精品自产拍| 亚洲已满18点击进入在线看片| 欧美激情a在线| 7777kkkk成人观看| 欧美精品午夜视频| 日本午夜精品理论片a级appf发布| 精品偷拍一区二区三区在线看| 欧美wwwxxxx| 中文字幕精品av| 一本色道久久88综合亚洲精品ⅰ| 岛国av一区二区在线在线观看| 欧美另类69精品久久久久9999| 国产成人精品日本亚洲| 在线成人激情视频| 欧美日韩日本国产| 69久久夜色精品国产7777| 久久综合网hezyo| 久久综合伊人77777| 亚洲影院在线看| 成人网在线免费观看| 一色桃子一区二区| 日韩亚洲综合在线| 日本免费在线精品| 国产不卡av在线免费观看| 成人精品网站在线观看| 亚洲精品久久久久久久久久久| 久久综合久久88| 欧美激情videos| 久久综合色88| 粉嫩老牛aⅴ一区二区三区| 亲爱的老师9免费观看全集电视剧| 美女国内精品自产拍在线播放| 性色av一区二区三区红粉影视| 一区二区三区视频观看| 91免费在线视频| 欧美性猛交xxxx乱大交3| 欧美日韩国产一区二区三区| 国产999精品视频| 国产成人久久久精品一区| 久久99久国产精品黄毛片入口| 美女啪啪无遮挡免费久久网站| 亚洲国产精品电影在线观看| 欧美电影《睫毛膏》| 成年无码av片在线| 午夜精品国产精品大乳美女| 青青草原成人在线视频| 亚洲缚视频在线观看| 精品一区精品二区| 日韩在线免费观看视频| 久久久久久91| 丁香五六月婷婷久久激情| 日韩动漫免费观看电视剧高清| 亚洲精品一区中文| 日韩在线观看免费av| 欧美理论电影在线播放| 欧美亚洲一区在线| 久久国产精品网站| 亚洲色图综合久久| 精品欧美一区二区三区| 久久99热这里只有精品国产| 国产精品视频色| 亚洲免费伊人电影在线观看av| 国产精品爱久久久久久久| 55夜色66夜色国产精品视频| 久久久久国产精品一区| 欧美日韩国产va另类| 色婷婷综合久久久久中文字幕1| 国产亚洲欧美一区| 欧美在线视频免费播放| 自拍偷拍亚洲欧美| 亚洲激情在线视频| 国内精品国产三级国产在线专| 国产精品九九九| 色哟哟亚洲精品一区二区| 91久久精品久久国产性色也91| 日韩精品在线免费观看| 日韩大片免费观看视频播放| 在线播放日韩专区| 日本中文字幕不卡免费| 自拍亚洲一区欧美另类| 亚洲欧美日韩一区在线| 午夜精品久久久久久久99热浪潮| 亚洲美女av电影| 日韩激情片免费| 日日狠狠久久偷偷四色综合免费| 岛国视频午夜一区免费在线观看| 色播久久人人爽人人爽人人片视av| 中文字幕日韩欧美精品在线观看| 国产精品视频在线播放| 国产成人综合一区二区三区| 色先锋久久影院av| 国产成人自拍视频在线观看| 在线看日韩av| 国内精品久久久久伊人av| 久久人人爽人人爽人人片av高请| 欧美激情视频网址| 国内免费久久久久久久久久久| 久久精品成人一区二区三区| 国产精品99久久99久久久二8| 欧美性精品220| 日本欧美在线视频| 国产成人av在线播放| 午夜免费在线观看精品视频| 黑人巨大精品欧美一区二区三区| 91精品国产高清自在线看超| 日韩视频在线观看免费| 国产精品高清免费在线观看| 成人国产精品色哟哟| 欧美日韩国产精品一区二区不卡中文| 亚洲精品一区二区三区婷婷月| 一区二区三区www| 国产丝袜一区二区三区| 美女视频黄免费的亚洲男人天堂| 久久99热精品这里久久精品| 欧美激情在线一区| 欧美亚洲第一页| 26uuu另类亚洲欧美日本老年| 国产精品a久久久久久| 57pao国产精品一区| 美女视频黄免费的亚洲男人天堂| 综合欧美国产视频二区| 久久国产精品99国产精| 日本免费久久高清视频| 国产成人拍精品视频午夜网站| 国产精品欧美一区二区| 欧美激情一级二级| 97人人爽人人喊人人模波多| 欧美性生交大片免费| 欧美裸身视频免费观看| 欧美日韩国产综合视频在线观看中文| 亚洲欧美日韩中文视频|