主頁 > 知識庫 > php微信公眾號開發(fā)之快遞查詢

php微信公眾號開發(fā)之快遞查詢

熱門標簽:兼職做地圖標注好賺錢嗎 智能電銷語音機器人資訊 山東電銷卡外呼系統(tǒng)原理是什么 400 電話 辦理 地圖標注怎么做商戶驗證 打開百度地圖標注 亳州企業(yè)外呼系統(tǒng) 海南外呼系統(tǒng)方案 蘇州外呼系統(tǒng)有效果嗎

本文實例為大家分享了php微信公眾號開發(fā)之快遞查詢的具體代碼,供大家參考,具體內(nèi)容如下

快遞查詢

  • 數(shù)組用法
  • foreach

查詢接口是:愛快遞:https://www.aikuaidi.cn/api/

核心代碼如下:

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $fromUsername = $postObj->FromUserName;
        $toUsername = $postObj->ToUserName;
        $type = $postObj->MsgType;
        $customrevent = $postObj->Event;
        $latitude = $postObj->Location_X;
        $longitude = $postObj->Location_Y;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "xml>
              ToUserName>![CDATA[%s]]>/ToUserName>
              FromUserName>![CDATA[%s]]>/FromUserName>
              CreateTime>%s/CreateTime>
              MsgType>![CDATA[%s]]>/MsgType>
              Content>![CDATA[%s]]>/Content>
              FuncFlag>0/FuncFlag>
              /xml>";       
        switch ($type)
        { 
        case "text";
          $status=array('0'=>'查詢出錯','1'=>'暫無記錄','2'=>'在途中','3'=>'派送中','4'=>'已簽收','5'=>'拒收','6'=>'疑難件','7'=>'退回');//構(gòu)建快遞狀態(tài)數(shù)組
          $kuaidiurl="http://www.aikuaidi.cn/rest/?key=ff4735a30a7a4e5a8637146fd0e7cec9order={$keyword}id=shentongshow=xml";//快遞地址
          $kuaidistr=file_get_contents($kuaidiurl);//讀入文件
          $kuaidiobj=simplexml_load_string($kuaidistr);//xml解析
          $kuaidistatus = $kuaidiobj->Status;//獲取快遞狀態(tài)
          $kuaistr=strval($kuaidistatus);//對象轉(zhuǎn)換為字符串
          $contentStr0 =$status[$kuaistr];//根據(jù)數(shù)組返回
          foreach ($kuaidiobj->Data->Order as $a)
          {  
            foreach ($a->Time as $b)
            {
              foreach ($a->Content as $c)
              {
                $m.="{$b}{$c}";}
              }
          }
          //遍歷獲取快遞時間和事件
          $contentStr="你的快遞單號{$keyword}{$contentStr0}{$m}";
          break;         
        default;
          $contentStr ="此項功能尚未開發(fā)";  
        }
        $msgType="text";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;

index.php整體代碼如下:

?php
/**
 * wechat php test
 */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
  public function valid()
  {
    $echoStr = $_GET["echostr"];

    //valid signature , option
    if($this->checkSignature()){
      echo $echoStr;
      exit;
    }
  }

  public function responseMsg()
  {
    //get post data, May be due to the different environments
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

    //extract post data
    if (!empty($postStr)){

        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $fromUsername = $postObj->FromUserName;
        $toUsername = $postObj->ToUserName;
        $type = $postObj->MsgType;
        $customrevent = $postObj->Event;
        $latitude = $postObj->Location_X;
        $longitude = $postObj->Location_Y;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "xml>
              ToUserName>![CDATA[%s]]>/ToUserName>
              FromUserName>![CDATA[%s]]>/FromUserName>
              CreateTime>%s/CreateTime>
              MsgType>![CDATA[%s]]>/MsgType>
              Content>![CDATA[%s]]>/Content>
              FuncFlag>0/FuncFlag>
              /xml>";       
        switch ($type)
        { 
        case "text";
          $status=array('0'=>'查詢出錯','1'=>'暫無記錄','2'=>'在途中','3'=>'派送中','4'=>'已簽收','5'=>'拒收','6'=>'疑難件','7'=>'退回');//構(gòu)建快遞狀態(tài)數(shù)組
          $kuaidiurl="http://www.aikuaidi.cn/rest/?key=ff4735a30a7a4e5a8637146fd0e7cec9order={$keyword}id=shentongshow=xml";//快遞地址
          $kuaidistr=file_get_contents($kuaidiurl);//讀入文件
          $kuaidiobj=simplexml_load_string($kuaidistr);//xml解析
          $kuaidistatus = $kuaidiobj->Status;//獲取快遞狀態(tài)
          $kuaistr=strval($kuaidistatus);//對象轉(zhuǎn)換為字符串
          $contentStr0 =$status[$kuaistr];//根據(jù)數(shù)組返回
          foreach ($kuaidiobj->Data->Order as $a)
          {  
            foreach ($a->Time as $b)
            {
              foreach ($a->Content as $c)
              {
                $m.="{$b}{$c}";}
              }
          }
          //遍歷獲取快遞時間和事件
          $contentStr="你的快遞單號{$keyword}{$contentStr0}{$m}";
          break;         
        default;
          $contentStr ="此項功能尚未開發(fā)";  
        }
        $msgType="text";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;

    }else {
      echo "";
      exit;
    }
  }

  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;
    }
  }
}

?>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • php微信公眾號開發(fā)模式詳解
  • PHP實現(xiàn)微信公眾號驗證Token的示例代碼
  • php實現(xiàn)微信公眾號創(chuàng)建自定義菜單功能的實例代碼
  • PHP實現(xiàn)的微信公眾號掃碼模擬登錄功能示例
  • 微信公眾平臺開發(fā)教程③ PHP實現(xiàn)微信公眾號支付功能圖文詳解
  • php微信公眾號開發(fā)之校園圖書館
  • php微信公眾號開發(fā)之歡迎老朋友
  • php微信公眾號開發(fā)之關(guān)鍵詞回復(fù)
  • php微信公眾號開發(fā)之圖片回復(fù)
  • 基于PHP的微信公眾號的開發(fā)流程詳解

標簽:萊蕪 呼倫貝爾 金華 紹興 清遠 溫州 綏化 安康

巨人網(wǎng)絡(luò)通訊聲明:本文標題《php微信公眾號開發(fā)之快遞查詢》,本文關(guān)鍵詞  php,微信,公眾,號開,發(fā)之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php微信公眾號開發(fā)之快遞查詢》相關(guān)的同類信息!
  • 本頁收集關(guān)于php微信公眾號開發(fā)之快遞查詢的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章