예제 #1
0
 /**
  * TransOpenApiAct::act_getTrackInfo()
  * 获取跟踪号追踪信息
  * @param string $tid 跟踪号
  * @param string $type 运输方式(如中国邮政,ems)
  * @return  json string;
  */
 public function act_getTrackInfo()
 {
     $tid = isset($_REQUEST["tid"]) ? post_check($_REQUEST["tid"]) : "";
     $type = isset($_REQUEST["type"]) ? urldecode($_REQUEST["type"]) : "";
     $lan = isset($_REQUEST["lan"]) ? intval($_REQUEST["lan"]) : 10000;
     if (empty($tid)) {
         self::$errCode = "跟踪号有误!";
         self::$errMsg = 10000;
         return false;
     }
     if (empty($type)) {
         self::$errCode = "运输方式有误!";
         self::$errMsg = 10001;
         return false;
     }
     if (!in_array($lan, array(0, 1, 10000))) {
         self::$errCode = "跟踪语言参数有误!";
         self::$errMsg = 10002;
         return false;
     }
     $res = TransOpenApiModel::getTrackInfo($tid, $type, $lan);
     self::$errCode = TransOpenApiModel::$errCode;
     self::$errMsg = TransOpenApiModel::$errMsg;
     return $res;
 }
예제 #2
0
function track_number_detail_country($trackName)
{
    global $trackNumber, $carrierId;
    $detailInfo = TransOpenApiModel::getTrackInfo($trackNumber, $trackName);
    echo $detailInfo, "\n";
    $detailInfo = json_decode($detailInfo, true);
    print_r($detailInfo);
    $data = array();
    if (is_array($detailInfo)) {
        $detailCount = count($detailInfo['trackingEventList']);
        if ($detailCount > 0) {
            //有跟踪数据插入
            foreach ($detailInfo['trackingEventList'] as $key => $val) {
                $postion = post_check($val['place']);
                $event = post_check($val['details']);
                $trackTime = strtotime($val['date']) ? strtotime($val['date']) : strtotime(trim(substr($val['date'], 0, strpos($val['date'], ' '))));
                $addTime = time();
                array_push($data, "('{$trackNumber}','{$postion}','{$event}','{$trackTime}','{$addTime}')");
            }
            array_push($data, $trackNumber);
            print_r($data);
            $sql_data = $data;
            $data = array('status' => $detailInfo['Response_Info']['status']);
            $res_number = TransOpenApiModel::updateTrackNumber($trackNumber, $data);
            //更新跟踪号信息
            $res_detail = TransOpenApiModel::addTrackNumberDetailByCountry($carrierId, $sql_data);
            //详细数据插入
            echo $res_detail, "=====", $res_number, "=====", date('Y-m-d H:i:s'), "\n";
            return $detailInfo['Response_Info']['status'];
        } else {
            if (!isset($detailInfo['errCode'])) {
                $res = TransOpenApiModel::updateTrackNumber($trackNumber, array("trackTime" => time()));
                // check_cancel_order();
                return 0;
            } else {
                return -1;
            }
        }
    } else {
        return -1;
    }
}
예제 #3
0
 /**
  * TrackWarnInfoModel::trackNumberInfo()
  * 实时获取某个跟踪号的跟踪信息
  * @param integer $carrierId 运输方式ID
  * @param integer $lan 跟踪语言
  * @param string $trackNumber 跟踪号
  * @return json string 
  */
 public static function trackNumberInfo($carrierId, $trackNumber, $lan)
 {
     self::initDB();
     $data = array();
     $trackName = "";
     $sql = "SELECT trackName FROM " . self::$prefix . self::$tab_track_carrier . " WHERE carrierId = '{$carrierId}'";
     $query = self::$dbConn->query($sql);
     if ($query) {
         $res = self::$dbConn->fetch_array($query);
         $trackName = isset($res['trackName']) ? trim($res['trackName']) : "";
     } else {
         self::$errCode = 10000;
         self::$errMsg = "获取数据失败";
         return false;
     }
     if (empty($trackName)) {
         self::$errCode = 10001;
         self::$errMsg = "跟踪名称没有获取到,请选择正确的运输方式!";
         return false;
     }
     $res = TransOpenApiModel::getTrackInfo($trackNumber, $trackName, $lan);
     $res = json_decode($res, true);
     if (isset($res[trackingEventList])) {
         foreach ($res[trackingEventList] as $v) {
             array_push($data, array("postion" => $v['place'], "event" => $v['details'], "trackTime" => $v['date']));
         }
     } else {
         if ($res['ReturnValue'] == '-1') {
             array_push($data, array("postion" => "暂无", "event" => $res['ReturnValue'] . "(跟踪号或运输方式有误或暂无跟踪信息)", "trackTime" => "暂无"));
         } else {
             array_push($data, array("postion" => "物流系统服务器", "event" => $res['ReturnValue'], "trackTime" => date('Y-m-d H:i:s', time())));
         }
     }
     return json_encode($data);
 }
$from = '管拥军';
$to = '管拥军';
$numberList = TransOpenApiModel::getTrackNumberList($page, $pagenum, $carrierId, $where, $hours);
//获取符合条件的跟踪号列表
$total = count($numberList);
echo $total . "条数据抓取开始,时间" . date('Y-m-d H:i:s', time()) . "\n\n";
foreach ($numberList as $v) {
    $data = array();
    $timestr = date('Y-m-d H:i:s', time());
    //目的地国家信息跟踪
    $trackNames = TransOpenApiModel::getTrackNameByCountry($carrierId, $v['toCountry']);
    if (empty($trackNames)) {
        continue;
    }
    $trackName = $trackNames['trackName'];
    $detailInfo = TransOpenApiModel::getTrackInfo($v['trackNumber'], $trackName);
    echo "{$timestr}======", $v['trackNumber'], "=====第{$row}条记录=====状态:{$v['status']}\n";
    echo $detailInfo, "\n";
    $trackNumber = $v['trackNumber'];
    $detailInfo = json_decode($detailInfo, true);
    print_r($detailInfo);
    if (is_array($detailInfo)) {
        $detailCount = count($detailInfo['trackingEventList']);
        if ($detailCount > 0) {
            //有跟踪数据插入
            foreach ($detailInfo['trackingEventList'] as $key => $val) {
                $postion = post_check($val['place']);
                $event = post_check($val['details']);
                $trackTime = strtotime($val['date']) ? strtotime($val['date']) : strtotime(trim(substr($val['date'], 0, strpos($val['date'], ' '))));
                $addTime = time();
                array_push($data, "('{$trackNumber}','{$postion}','{$event}','{$trackTime}','{$addTime}')");