侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

微信公众平台之快递查询功能用法实例

微信(小程序)  /  管理员 发布于 3年前   105

本文实例讲述了微信公众平台之快递查询功能用法。分享给大家供大家参考。具体如下:

使用方法:

#查快递(或三个首字母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)=="ku"){      $kdlist = '';      //启用PDO连接sqlite的方式      $db = new PDO("sqlite:somedata/data.dat");      $results = $db->query('SELECT * FROM ku')->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 ku');      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 ku WHERE id = '.$id)->fetchAll();      $code = $results[0]['code'];  //获取英文代码      $com = $results[0]['company'];  //获取公司名称      $numinfo = "快递:".$com."\n"."单号:".$num."\n";      $kd_url = "http://m.ku100.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();

希望本文所述对大家的php程序设计有所帮助。

您可能感兴趣的文章:

  • Python实现微信公众平台自定义菜单实例
  • php微信公众平台开发类实例
  • PHP版微信公众平台红包API
  • 微信公众平台实现获取用户OpenID的方法
  • 基于php的微信公众平台开发入门实例
  • php微信公众平台开发之获取用户基本信息
  • 如何使用微信公众平台开发模式实现多客服


  • 上一条:
    微信小程序 滚动选择器(时间日期)详解及实例代码
    下一条:
    微信公众平台天气预报功能开发
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 小程序开发之跳转微信直播示例api(0个评论)
    • 在uni_app中开发小程序之常用功能示例代码汇总(0个评论)
    • 小程序开发之多端框架:taro(0个评论)
    • 微信小程序前端使用七牛云官方SDK上传七牛云代码示例(0个评论)
    • 百度小程序审核未通过,真机审核存在点击返回键退出小程序...解决方式之一tabBar(0个评论)
    • 近期文章
    • ChatGPT再出新功能,推出插件功能,能联网、搜索了(0个评论)
    • 在go语言中使用GoPDF包把html生成PDF文件示例(0个评论)
    • 在go语言中创建和解析(读取)符号链接示例(0个评论)
    • ubuntu 22.04系统中报错:Python 3.6 is no longer supported by the Python core team...解决方式(0个评论)
    • Laravel 10.4版本发布(0个评论)
    • mysql5.7中实现分区表及分区where in查询示例及分区分表对比浅析(0个评论)
    • nginx + vue配置实现同域名下不同路径访问不同项目(0个评论)
    • 在laravel框架中的5个HTTP客户端技巧分享(0个评论)
    • 在go语言中使用FFmpeg库实现PCM音频文件编码为mp3格式文件流程步骤(0个评论)
    • gopacket免安装Pcap实现驱动层流量抓包流程步骤(0个评论)
    • 近期评论
    • 博主 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..
    • xiaoB 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..
    • BUG4 在

      你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..
    • 博主 在

      go语言+beego框架中获取get,post请求的所有参数中评论 @ t1  直接在router.go文件中配就ok..
    • Jade 在

      如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
    • 2017-10
    • 2018-01
    • 2020-03
    • 2021-06
    • 2021-10
    • 2022-03
    • 2023-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客