• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php微信公众号开发之快递查询

    本文实例为大家分享了php微信公众号开发之快递查询的具体代码,供大家参考,具体内容如下

    快递查询

    查询接口是:爱快递: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=ff4735a30a7a4e5a8637146fd0e7cec9order={$keyword}id=shentongshow=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=ff4735a30a7a4e5a8637146fd0e7cec9order={$keyword}id=shentongshow=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;
        }
      }
    }
    
    ?>
    

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • php微信公众号开发模式详解
    • PHP实现微信公众号验证Token的示例代码
    • php实现微信公众号创建自定义菜单功能的实例代码
    • PHP实现的微信公众号扫码模拟登录功能示例
    • 微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
    • php微信公众号开发之校园图书馆
    • php微信公众号开发之欢迎老朋友
    • php微信公众号开发之关键词回复
    • php微信公众号开发之图片回复
    • 基于PHP的微信公众号的开发流程详解
    上一篇:php微信公众号开发之翻页查询
    下一篇:php微信公众号开发之简答题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php微信公众号开发之快递查询 php,微信,公众,号开,发之,