一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php微信公眾號開發之快遞查詢

php微信公眾號開發之快遞查詢

2019-08-31 12:39dq_095 PHP教程

這篇文章主要為大家詳細介紹了php微信公眾號開發之快遞查詢功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

快遞查詢

  • 數組用法
  • 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'=>'退回');//構建快遞狀態數組
          $kuaidiurl="http://www.aikuaidi.cn/rest/?key=ff4735a30a7a4e5a8637146fd0e7cec9&order={$keyword}&id=shentong&show=xml";//快遞地址
          $kuaidistr=file_get_contents($kuaidiurl);//讀入文件
          $kuaidiobj=simplexml_load_string($kuaidistr);//xml解析
          $kuaidistatus = $kuaidiobj->Status;//獲取快遞狀態
          $kuaistr=strval($kuaidistatus);//對象轉換為字符串
          $contentStr0 =$status[$kuaistr];//根據數組返回
          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 ="此項功能尚未開發";  
        }
        $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'=>'退回');//構建快遞狀態數組
          $kuaidiurl="http://www.aikuaidi.cn/rest/?key=ff4735a30a7a4e5a8637146fd0e7cec9&order={$keyword}&id=shentong&show=xml";//快遞地址
          $kuaidistr=file_get_contents($kuaidiurl);//讀入文件
          $kuaidiobj=simplexml_load_string($kuaidistr);//xml解析
          $kuaidistatus = $kuaidiobj->Status;//獲取快遞狀態
          $kuaistr=strval($kuaidistatus);//對象轉換為字符串
          $contentStr0 =$status[$kuaistr];//根據數組返回
          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 ="此項功能尚未開發";  
        }
        $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;
    }
  }
}

?>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 和肥岳在厨房激情 | 天天做日日做天天添天天欢公交车 | 国产日韩精品一区二区三区 | 色婷丁香| 春宵福利网站在线观看 | 刺激一区仑乱 | 国产成人精品免费2021 | 99爱免费视频 | 国产精品林美惠子在线观看 | 国产精品猎奇系列在线观看 | 国产91精选学生在线观看 | 美女脱了内裤打开腿让人桶网站o | 男插女的下面免费视频夜色 | 国产成人在线播放视频 | 亚洲日日做天天做日日谢 | 国产永久在线观看 | 国产日韩一区二区三区 | 女性性色生活片免费观看 | 非洲黑人又大粗gay 非洲黑人bbwbbwbbw | 人妖欧美一区二区三区四区 | 日本中年japanesebear | 69日本xxxx| 四虎影视地址 | 青青草99热久久 | 福利一区在线观看 | 嫩草影院精品视频在线观看 | 四虎永久网址在线观看 | 失禁尿丝袜vk | 性欧美xxxxx高清 | 热辣小秘书办公室 | 国内免费高清视频在线观看 | 欧美日韩一区二区三区免费不卡 | 日本又黄又裸一级大黄裸片 | 国产精品成 | 国产精品嫩草影院在线 | 国产成人免费 | 久久棋牌评测 | 国产亚洲精品福利在线 | 兽操人 | 日本乱人伦中文在线播放 | 成年人免费观看 |