婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP實現的微信公眾號掃碼模擬登錄功能示例

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

熱門標簽:咸寧銷售電銷機器人系統 外呼系統能給企業帶來哪些好處 百度地圖標注偏差 余姚電話機器人 百度地圖怎樣標注圖標 廣東廣州在怎么申請400電話 400電話蘭州申請請 電銷機器人問門薩維品牌my 開發地圖標注類網站

本文實例講述了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=asktoken=lang=zh_CNf=jsonajax=1",
    "loginask"   => "https://mp.weixin.qq.com/cgi-bin/loginqrcode?action=asktoken=lang=zh_CNf=jsonajax=1random=",
    "loginauth"   => "https://mp.weixin.qq.com/cgi-bin/loginauth?action=asktoken=lang=zh_CNf=jsonajax=1",
    "bizlogin"   => "https://mp.weixin.qq.com/cgi-bin/bizlogin?action=loginlang=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微信開發技巧匯總》、《php curl用法總結》、《PHP網絡編程技巧總結》、《php字符串(string)用法總結》、《PHP中json格式數據操作技巧匯總》及《PHP針對XML文件操作技巧總結》

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

您可能感興趣的文章:
  • php微信公眾號開發模式詳解
  • PHP實現微信公眾號驗證Token的示例代碼
  • php實現微信公眾號創建自定義菜單功能的實例代碼
  • 微信公眾平臺開發教程③ PHP實現微信公眾號支付功能圖文詳解
  • php微信公眾號開發之快遞查詢
  • php微信公眾號開發之校園圖書館
  • php微信公眾號開發之歡迎老朋友
  • php微信公眾號開發之關鍵詞回復
  • php微信公眾號開發之圖片回復
  • 基于PHP的微信公眾號的開發流程詳解

標簽:巴彥淖爾 重慶 臨沂 銅陵 鷹潭 十堰 衡陽 麗江

巨人網絡通訊聲明:本文標題《PHP實現的微信公眾號掃碼模擬登錄功能示例》,本文關鍵詞  PHP,實現,的,微信,公眾,號掃碼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現的微信公眾號掃碼模擬登錄功能示例》相關的同類信息!
  • 本頁收集關于PHP實現的微信公眾號掃碼模擬登錄功能示例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    狠狠色丁香久久婷婷综合_中| 亚洲高清三级视频| 欧美一区二区三区免费视频| 色天使色偷偷av一区二区 | 亚洲欧美中日韩| 国产精品久久久久7777按摩 | 亚洲大尺度视频在线观看| 日韩毛片视频在线看| 亚洲精品日韩综合观看成人91| 亚洲男女一区二区三区| 伊人夜夜躁av伊人久久| 亚洲大片一区二区三区| 日韩电影在线免费看| 国产一区二区三区在线观看精品 | 中文字幕字幕中文在线中不卡视频| 国产精品视频一二三| 亚洲激情自拍偷拍| 日日欢夜夜爽一区| 国产精品77777| 91视频.com| 欧美日韩高清不卡| 久久久久久久久久久黄色| 国产偷国产偷精品高清尤物| 国产精品久久久久久户外露出| 一区二区三区精品视频在线| 蜜乳av一区二区三区| 国产精品1区二区.| 91免费视频网| 91精品国产综合久久福利 | 日韩综合小视频| 国产精品亚洲成人| 欧美日韩亚州综合| 日本一区二区三区电影| 亚洲国产精品精华液网站| 狠狠色综合色综合网络| 欧洲精品一区二区三区在线观看| 日韩亚洲欧美中文三级| 亚洲乱码精品一二三四区日韩在线| 日韩国产精品久久久久久亚洲| 懂色中文一区二区在线播放| 在线播放91灌醉迷j高跟美女| 久久精品日韩一区二区三区| 亚洲成人一区二区| 波多野结衣中文字幕一区二区三区 | 日韩免费视频一区二区| 中文字幕视频一区| 国模娜娜一区二区三区| 在线日韩av片| 国产精品五月天| 国产呦萝稀缺另类资源| 91精品国产综合久久久久久| 一区二区国产视频| 成人av资源在线| 亚洲精品一区二区三区福利| 日韩av中文字幕一区二区| 欧美亚洲一区二区在线观看| 国产精品毛片大码女人| 国产成人免费视频网站高清观看视频| 9191国产精品| 日日嗨av一区二区三区四区| 欧美色图片你懂的| 一区二区三区不卡在线观看 | 午夜影院久久久| 91成人在线精品| 亚洲欧美偷拍三级| 91麻豆.com| 亚洲欧美区自拍先锋| 91色乱码一区二区三区| 中文字幕在线一区| 91麻豆福利精品推荐| 亚洲女同一区二区| 在线观看网站黄不卡| 亚洲一区自拍偷拍| 欧美精品第1页| 男男成人高潮片免费网站| 91精品在线麻豆| 久久99国产精品麻豆| 久久影院午夜论| 国产ts人妖一区二区| 国产精品成人免费| 在线免费av一区| 日韩电影免费在线观看网站| 日韩欧美一级二级三级久久久| 久久国产精品露脸对白| 国产香蕉久久精品综合网| 不卡电影一区二区三区| 一区二区三区.www| 欧美一区二区三区在线视频| 精品午夜一区二区三区在线观看| 国产视频一区二区在线| 99久精品国产| 亚洲国产精品久久人人爱| 91精品国产乱| 国产成人免费视| 亚洲综合区在线| 日韩美女一区二区三区四区| 国产精品亚洲第一区在线暖暖韩国| 国产精品电影一区二区三区| 欧美在线观看一区二区| 激情久久五月天| 日韩美女精品在线| 日韩女优视频免费观看| 91网站在线观看视频| 蜜臀av在线播放一区二区三区| 中文字幕精品一区二区精品绿巨人| 欧美三级资源在线| 国产一区二区三区观看| 一区二区三区四区在线| 精品日韩av一区二区| 色综合天天综合网天天狠天天| 蜜臀av性久久久久av蜜臀妖精| 中文字幕中文在线不卡住| 日韩一二三区不卡| 91国在线观看| 成人午夜电影小说| 久久99精品久久久久久动态图 | 懂色av中文字幕一区二区三区| 亚洲夂夂婷婷色拍ww47| 国产亚洲精品福利| 欧美一区二区三区性视频| 99精品视频中文字幕| 国内精品视频一区二区三区八戒| 亚洲h动漫在线| 亚洲视频一二区| 亚洲国产精品99久久久久久久久| 欧美高清www午色夜在线视频| 99精品欧美一区二区三区小说 | 亚洲欧美日韩精品久久久久| 日韩精品一区二区三区在线观看| 在线视频综合导航| 成人av免费在线| 国产ts人妖一区二区| 国产美女精品人人做人人爽| 日韩av在线免费观看不卡| 亚洲成人tv网| 一区二区三区国产豹纹内裤在线| 国产精品免费aⅴ片在线观看| 久久综合狠狠综合久久综合88| 在线不卡欧美精品一区二区三区| 色婷婷久久综合| 色综合久久六月婷婷中文字幕| 成人精品国产福利| 成人av在线电影| 成人av手机在线观看| 成人黄色在线看| 成人午夜碰碰视频| 成人黄色小视频在线观看| 国产精品白丝jk白祙喷水网站| 国产美女在线观看一区| 国产成人免费高清| 成人av网站大全| 99精品视频一区二区三区| 92精品国产成人观看免费| 97久久精品人人澡人人爽| 99久久免费视频.com| 91麻豆精品秘密| 欧美性极品少妇| 日韩精品专区在线影院重磅| 欧美成人伊人久久综合网| 久久久久久久网| 日韩美女视频19| 亚洲一区二区不卡免费| 蜜臀av一区二区在线观看| 国产一区二区三区四区五区美女| 国产成人精品一区二区三区四区 | 九九**精品视频免费播放| 国产一区二区三区在线观看免费| 国产福利91精品一区二区三区| 99在线视频精品| 777a∨成人精品桃花网| 久久精品亚洲国产奇米99| 亚洲欧洲精品成人久久奇米网| 亚洲va欧美va国产va天堂影院| 久久99国产乱子伦精品免费| 丁香婷婷综合网| 欧美三级日本三级少妇99| 精品国产91乱码一区二区三区 | 久久久国际精品| 亚洲欧美在线高清| 青草国产精品久久久久久| 成人永久免费视频| 欧美日韩国产综合一区二区| 久久这里都是精品| 亚洲国产乱码最新视频| 久久爱www久久做| 色94色欧美sute亚洲线路二| 欧美r级电影在线观看| 综合久久给合久久狠狠狠97色| 爽好多水快深点欧美视频| 高清不卡在线观看| 3d动漫精品啪啪1区2区免费| 国产视频一区二区在线观看| 日韩精品91亚洲二区在线观看| 成人免费观看男女羞羞视频| 日韩一区二区电影网| 樱桃国产成人精品视频| 国产成人综合亚洲网站| 91精品国产综合久久香蕉的特点 | 色一情一伦一子一伦一区| 精品国免费一区二区三区|