微信公眾平台之快遞查詢功能用法執行個體_PHP

來源:互聯網
上載者:User
關鍵字 微信公眾平台 快遞查詢
本文執行個體講述了公眾平台之快遞查詢功能用法。分享給大家供大家參考。具體如下:

使用方法:

#查快遞(或三個首字母ckd)#快遞編號#快遞單號
如(查詢EMS單號為1034616494006的快遞):
#ckd#15#1034616494006
常用快遞編號:

15EMS,56申通,57順豐,77圓通,
80韻達,87中通,85宅急送,62天天

1. class.base.php檔案:

<?php/** * 公眾平台基礎類 For Fshare * @author: Skiychan * @created:  2013.11.19 */class Wechat{// public $token = '';/* public function __construct($token){  $this->token = $token; }  */ //判斷是否來自伺服器/* public function valid(){  $echoStr = $_GET["echostr"];  if($this->checkSignature()){   echo $echoStr;   exit;  } }*/ public function responseMsg(){  $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];  if (!empty($postStr)){   $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);   $fromUsername = $postObj->FromUserName;   $toUsername = $postObj->ToUserName;   $keyword = trim($postObj->Content);   $time = time();   $textTpl = "      %s      %s      %s      %s      %s      0      ";       if(!empty($keyword)){    //當輸入文字類型    if($msgType = "text"){     //$contentStr = $keyword.$fromUsername.$time;     //$preg = "/^\#([\W\w]*?)\#([\W\w]*?)\#(.*)/"; //0為功能,1為選項,2為餘下的值     //$preg = "/\#([\w]+)/"; //0為功能,1為選項,2為餘下的值     $preg = "/\#([\w\d\x{4e00}-\x{9fa5}]+)/u"; //0為功能,1為選項,2為餘下的值     preg_match_all($preg,$keyword,$newdata);     $fn_name = $newdata[1][0];     //擷取快遞的參數     if(strtolower($fn_name)=="skiy"){      $me = "我是此公眾帳號的開發人員,英文名Skiy。\n如果你對本功能有任何意見和建議,歡迎聯絡我,\n我的QQ是1005043848\n是forskiy,郵箱:\ndeveloper@zzzzy.com";      $contentStr = $me;     }           //擷取快遞的參數     if($fn_name=="快遞"||strtolower($fn_name)=="kuaidi"){      $kdlist = '';      //啟用PDO串連sqlite的方式      $db = new PDO("sqlite:somedata/data.dat");      $results = $db->query('SELECT * FROM kuaidi')->fetchAll();      foreach ($results as $key=>$row) {       //var_dump($row);       //$list_one = $row['id']." ".$row['code']." ".$row['company']."\n";       $list_one = $row['id'].' '.$row['company']."\n";       $kdlist = $kdlist.$list_one;      }        //主機支援sqlite3的方式/*      $db = new SQLite3("somedata/data.dat");      $results = $db->query('SELECT * FROM kuaidi');      while ($row = $results->fetchArray()) {       //var_dump($row);       $list_one = $row['id']." ".$row['code']." ".$row['company']."\n\r";       $kdlist = $kdlist.$list_one;      }  */        $contentStr = $kdlist;     }     if($fn_name=="查快遞"||strtolower($fn_name)=="ckd"){      $id = $newdata[1][1];      $num = $newdata[1][2];      $db = new PDO("sqlite:somedata/data.dat");      $results = $db->query('SELECT code,company FROM kuaidi WHERE id = '.$id)->fetchAll();      $code = $results[0]['code'];  //擷取英文代碼      $com = $results[0]['company'];  //擷取公司名稱      $numinfo = "快遞:".$com."\n"."單號:".$num."\n";      $kd_url = "http://m.kuaidi100.com/query?type=".$code."&postid=".$num;      $json_getdata = file_get_contents($kd_url);      $get_kdinfo = json_decode($json_getdata);  //object      $get_kdinfo = json_decode($json_getdata,true); //array      $last_t = "查詢時間:\n".$get_kdinfo['updatetime']."\n\n";  //查詢時間      $kd_shipinfo = $get_kdinfo['data']; //快遞資料數組      $kd_total = count($kd_shipinfo)-1;      $ship = '';      //物流倒序詳情      for($i = $kd_total;$i>=0;$i--){       $shipinfo = $kd_shipinfo[$i]['time']."\n".$kd_shipinfo[$i]['context']."\n";       $ship = $shipinfo.$ship;      }      //順序物流詳情      /*foreach ($kd_shipinfo as $v){       $shipinfo = $v['time']."\n".$v['context']."\n";       $ship = $shipinfo.$ship;      }      */      $get_kdinfo = $numinfo.$last_t."【物流詳情】\n".$ship;      if($ship){       $contentStr = $get_kdinfo;      }else{       $contentStr = $numinfo.">沒有物流資料!";      }     }     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);     echo $resultStr;    }else{     echo "Input something...";    }   }  }else {   echo "You have no enter something...";   exit;  } } //判斷簽名,返回bool private function checkSignature(){  $signature = $_GET["signature"];  $timestamp = $_GET["timestamp"];  $nonce = $_GET["nonce"];   $token = TOKEN;  $tmpArr = array($token, $timestamp, $nonce);  sort($tmpArr);  $tmpStr = implode( $tmpArr );  $tmpStr = sha1( $tmpStr );  if( $tmpStr == $signature ){   return true;  }else{   return false;  } }}

2. index.php檔案:

<?php/** *  * 公眾平台訊息介面 For Fshare(分享資訊) * @author: Skiychan (Wechat:forskiy) * @created:2013.11.19 *  */include_once 'class.base.php';define('TOKEN', 'skiychan');$wx = new Wechat();//$wx->valid();$wx->responseMsg();

希望本文所述對大家的php程式設計有所協助。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.