千家信息网

如何实现微信公众平台之快递查询功能

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章主要讲解了"如何实现微信公众平台之快递查询功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何实现微信公众平台之快递查询功能"吧!具体如下:
千家信息网最后更新 2024年11月19日如何实现微信公众平台之快递查询功能

这篇文章主要讲解了"如何实现微信公众平台之快递查询功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何实现微信公众平台之快递查询功能"吧!

具体如下:

使用方法:

#查快递(或三个首字母ckd)#快递编号#快递单号
如(查询EMS单号为1034616494006的快递):
#ckd#15#1034616494006
常用快递编号:

15EMS,56申通,57顺丰,77圆通,
80韵达,87中通,85宅急送,62天天

1. class.base.php文件:

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                  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文件:

valid();$wx->responseMsg();

感谢各位的阅读,以上就是"如何实现微信公众平台之快递查询功能"的内容了,经过本文的学习后,相信大家对如何实现微信公众平台之快递查询功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0