溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php版微信公眾賬號第三方管理工具開發(fā)的示例分析

發(fā)布時間:2021-09-03 10:14:23 來源:億速云 閱讀:137 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)php版微信公眾賬號第三方管理工具開發(fā)的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體如下:

最近在搗鼓微信公共平臺提供的API,等確實一個獲取用戶信息的API。

所以沒有辦法,只能自己去獲取,手動填寫當(dāng)然可以解決問題,當(dāng)然編程不就是為了讓生活變的更簡單么?

當(dāng)然,遠程抓取微信公共平臺數(shù)據(jù)的想法就油然而生,當(dāng)然第一個想到了CURL。

CURL可以遠程提交表達,我感覺微信是提議讓我們怎么的,只要不是惡意刷接口,就不會出現(xiàn)驗證碼。

主要注意的幾個問題:

① 遠程登錄接口是時候的HTTPS協(xié)議。
② 登錄成功后頁面有跳轉(zhuǎn)。
③ 返回的HTML頁面是可以直接輸出的。

下面展示了一個CURL的具體寫法

//微信遠程登錄綁定賬號
  public function Curl_login($username,$pwd){
  $config_token = "XiaoDengPHP";
  $pwd = md5($pwd);
  $url = "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
  $postArray = array("username=".$username,"pwd=".$pwd,"imgcode=","f=json");
  $fields = implode("&", $postArray);
  $filedir = $_SERVER['DOCUMENT_ROOT']."/Cookies";
  $cookie_file = $filedir."/cookie.txt";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); //表示是https協(xié)議提交
  curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //生產(chǎn)Cookies并保存在指定目錄下
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //將curl_exec()獲取的信息以文件流的形式返回,而不是直接輸出。
  curl_setopt($ch, CURLOPT_REFERER,"https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN"); //跳轉(zhuǎn)指向
  $result = curl_exec($ch);
  return json_decode($result);
  // 關(guān)閉CURL會話
  curl_close($ch);
}

上面這個方法就實現(xiàn)了,遠程登錄微信公共平臺,接下來的事,就是去讓賬號變成開發(fā)者模式,一樣的CURL。

注意這次的curl要帶上cookies而不是生產(chǎn)cookies

重點代碼在于驗證服務(wù)器的相應(yīng),你需要設(shè)置一個服務(wù)器的連接和一個token

public function auth($token)
{
    $data = array(
    $_GET['timestamp'],
    $_GET['nonce'],
    $token);
    $sign = $_GET['signature'];
    sort($data);
    $signature = sha1(implode($data));
    if($signature === $sign){
       echo ($_GET['echostr']);
     exit;
    }else{
     return false;
    }
}

這樣如果開通成功了,應(yīng)該會返回一個MES=302的json數(shù)據(jù)和一個微信平臺認(rèn)證的token的信息。

只要你細(xì)心,你就會發(fā)現(xiàn),微信連接里面TOKEN是一個動態(tài)變化的,但有是在一段時間內(nèi)不變的。

所以你需要這個token來構(gòu)造URL,來獲取其他頁面信息。

但開發(fā)現(xiàn)過程中,你一定遇到一個很崩潰的問題。

感謝各位的閱讀!關(guān)于“php版微信公眾賬號第三方管理工具開發(fā)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI