/** * 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; }
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; } }
/** * 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}')");