API_trackorder
API_trackorder
php
date_default_timezone_set("Asia/Karachi");
include_once "../includes/conn.php";
include '../price_calculation.php';
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers,
Authorization, X-Requested-With");
$content = (array)json_decode(file_get_contents("php://input"));
$tracking_no = trim($content['tracking_no']);
if(empty($tracking_no)){
$error_msg = "Tracking No is required";
echo json_encode($error_msg);
exit();
}
$api_tracking_no = $row['api_tracking_no'];
$api_id = $row['api_id'];
$tracking_number = isset($api_tracking_no) && $api_tracking_no != '' ?
$api_tracking_no : 0;
$track__No = $row['track_no'];
$booking_api_id = 0;
if($api_id == 5){
$api_settings = mysqli_fetch_assoc(mysqli_query($con, "SELECT *
FROM third_party_apis WHERE id ='" . 5 . "' "));
$api_key=$api_settings['api_key'];
$api_password=$api_settings['api_secret_key'];
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL,
'http://new.leopardscod.com/webservice/trackBookedPacket/format/json/');
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, json_encode(array(
'api_key' => $api_key,
'api_password' => $api_password,
'track_numbers' => $tracking_number
// 'track_numbers' => 'JD588086656'
)));
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, [
'Authorization: 19C98763F68E6A06F4486D99D12D0A25',
'Content-Type: application/json'
]);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
$data = json_decode($buffer);
// echo "<pre>"; print_r($data); die;
$leopard_tracking = array();
$packet_list = $data->packet_list;
foreach ($packet_list as $key => $value) {
if($api_id == 6){
// $tracking_number='20222331696976';
$url = 'https://sonic.pk/api/shipment';
$collection_name = 'track?tracking_number=' . $tracking_number .
'&type=0';
// $collection_name = 'status?
tracking_number=2232233738742&type=0';
$request_url = $url . '/' . $collection_name;
$curl = curl_init($request_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Host: sonic.pk',
"Authorization: $api_key",
'Content-Type: application/json'
]);
$response = curl_exec($curl);
curl_close($curl);
$data1 = json_decode($response);
$sonic_tracking=array();
$sonic_tracking=$data1->details->tracking_history;
}
if($api_id == 7){
$bluex_tracking = [];
$api_settings = mysqli_fetch_assoc(mysqli_query($con, "SELECT *
FROM third_party_apis WHERE id ='" . 7 . "' "));
$user_name=$api_settings['user_name'];
$password=$api_settings['password'];
$ch = curl_init();
curl_setopt($ch,
CURLOPT_URL,"https://bigazure.com/api/json_v3/tracking/get_tracking.php");
curl_setopt($ch, CURLOPT_USERPWD, $user_name . ":" . $password);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
json_encode(['consignment_no'=>$tracking_number]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response);
if($data->status == "1"){
$bluex_tracking = isset($data->response) ? $data-
>response : [];
}
}
if($api_id == 8){
$daewoo_tracking = [];
$response =
file_get_contents("https://codapi.daewoo.net.pk/api/booking/quickTrack?
trackingNo=$tracking_number");
$data = json_decode($response);
if(isset($data->Result->Success) && $data->Result->Success ==
true && isset($data->Result->TrackingDetails)){
$daewoo_tracking = $data->Result->TrackingDetails;
}
}
if($api_id == 10){
$mnp_tracking = [];
$api_settings = mysqli_fetch_assoc(mysqli_query($con, "SELECT *
FROM third_party_apis WHERE id ='" . 10 . "' "));
$user_name=$api_settings['user_name'];
$password=$api_settings['password'];
$booking_api_id = $api_settings['booking_api_id'];
$response =
file_get_contents("https://mnpcourier.com/mycodapi/api/Tracking/Consignment_Trackin
g?username=$user_name&password=$password&consignment=$tracking_number");
$data = json_decode($response);
if(!empty($data)){
$responseObj = $data[array_key_first($data)];
$trackingDetails = isset($responseObj->tracking_Details) ?
$responseObj->tracking_Details : [];
$trackingInnerDetailsObj =
$trackingDetails[array_key_first($trackingDetails)];
$mnp_tracking = isset($trackingInnerDetailsObj->Details) ?
$trackingInnerDetailsObj->Details : [];
}
}
if ($api_id == 13) {
$tcs_tracking = [];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>
"https://connect.tcscourier.com/tracking/api/Tracking/GetDynamicTrackDetail?
consignee=$tracking_number",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'accept: */*',
"Authorization: Bearer $authorization"
),
));
$response = curl_exec($curl);
curl_close($curl);
$data = json_decode($response);
if (!empty($data->checkpoints)) {
$tcs_tracking = $data->checkpoints;
}
}
if($api_id == 14){
$postex_tracking=array();
$api_settings = mysqli_fetch_assoc(mysqli_query($con, "SELECT *
FROM third_party_apis WHERE id ='" . 14 . "' "));
$api_key=$api_settings['api_key'];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>
"https://api.postex.pk/services/integration/api/order/v1/track-order/
$tracking_number",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
"token: $api_key"
),
));
$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$data = json_decode($response);
curl_close($curl);
if($booking_api_id == 6){
$quick_tracking = [];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>
'https://thequickservice.online/portal/API/TrackOrder.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"tracking_no": "'.$tracking_number.'"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
),
));
$response = curl_exec($curl);
curl_close($curl);
$data = json_decode($response);
if(!empty($data)){
$quick_tracking = $data;
}
}
$show_status = $singleStatus->Status;
if(isset($fetch1['our_status']) && !
empty($fetch1['our_status'])){
$show_status = $fetch1['our_status'];
}
$timestamp = $singleStatus->Activity_Date . ' ' .
$singleStatus->Activity_Time;
$data = array(
'tracking_no' => $track__No,
'status' => $show_status,
'created' => $timestamp,
);
array_push($track_data, $data);
}
} else if($api_id == 6 && !empty($sonic_tracking)) {
foreach ($sonic_tracking as $key => $singleStatus) {
$leoStatus = mysqli_real_escape_string($con,$singleStatus-
>status);
$query = mysqli_query($con, "SELECT order_status.status as
our_status, third_party_api_status_mapping.api_status from
third_party_api_status_mapping join order_status on order_status.sts_id =
third_party_api_status_mapping.status_id where api_provider_id='6' AND
third_party_api_status_mapping.api_status='" . $leoStatus . "' LIMIT 1") or
die(mysqli_error($con));
$fetch1 = mysqli_fetch_array($query);
$show_status = $singleStatus->status;
if(isset($fetch1['our_status']) && !
empty($fetch1['our_status'])){
$show_status = $fetch1['our_status'];
}
if(!empty($singleStatus->status_reason)){
$show_status = $show_status.' ('.$singleStatus-
>status_reason.')';
}
$timestamp = $singleStatus->date_time;
$data = array(
'tracking_no' => $track__No,
'status' => $show_status,
'created' => $timestamp,
);
array_push($track_data, $data);
}
} else if($api_id == 7 && !empty($bluex_tracking)){
foreach ($bluex_tracking as $key => $singleStatus) {
$leoStatus = mysqli_real_escape_string($con,$singleStatus-
>status_message);
$query = mysqli_query($con, "SELECT order_status.status as
our_status, third_party_api_status_mapping.api_status from
third_party_api_status_mapping join order_status on order_status.sts_id =
third_party_api_status_mapping.status_id where
third_party_api_status_mapping.api_provider_id='7' AND
third_party_api_status_mapping.api_status='" . $leoStatus . "' LIMIT 1") or
die(mysqli_error($con));
$fetch1 = mysqli_fetch_array($query);
$show_status = $singleStatus->status_message;
if(isset($fetch1['our_status']) && !
empty($fetch1['our_status'])){
$show_status = $fetch1['our_status'];
}
$timestamp = date("Y-m-d",strtotime($singleStatus-
>status_date)) . ' ' . date("H:i:s",strtotime($singleStatus->status_time));
$data = array(
'tracking_no' => $track__No,
'status' => $show_status,
'created' => $timestamp,
);
array_push($track_data, $data);
}
} else if($api_id == 8 && !empty($daewoo_tracking)){
foreach ($daewoo_tracking as $key => $singleStatus) {
$leoStatus = mysqli_real_escape_string($con,$singleStatus-
>Status);
$query = mysqli_query($con, "SELECT order_status.status as
our_status, third_party_api_status_mapping.api_status from
third_party_api_status_mapping join order_status on order_status.sts_id =
third_party_api_status_mapping.status_id where
third_party_api_status_mapping.api_provider_id='8' AND
third_party_api_status_mapping.api_status='" . $leoStatus . "' LIMIT 1") or
die(mysqli_error($con));
$fetch1 = mysqli_fetch_array($query);
$show_status = $singleStatus->Status;
if(isset($fetch1['our_status']) && !
empty($fetch1['our_status'])){
$show_status = $fetch1['our_status'];
}
$timestamp = DateTime::createFromFormat('Y-m-d H:i:s',
$singleStatus->Date)->format('Y-m-d H:i:s');
$data = array(
'tracking_no' => $track__No,
'status' => $show_status,
'created' => $timestamp,
);
array_push($track_data, $data);
}
} else if($api_id == 10 && !empty($mnp_tracking)){
foreach ($mnp_tracking as $key => $singleStatus) {
$leoStatus = mysqli_real_escape_string($con,$singleStatus-
>Status);
$query = mysqli_query($con, "SELECT order_status.status as
our_status, third_party_api_status_mapping.api_status from
third_party_api_status_mapping join order_status on order_status.sts_id =
third_party_api_status_mapping.status_id where
third_party_api_status_mapping.booking_api_id='$booking_api_id' AND
third_party_api_status_mapping.api_status='" . $leoStatus . "' LIMIT 1") or
die(mysqli_error($con));
$fetch1 = mysqli_fetch_array($query);
$show_status = $singleStatus->Status;
if(isset($fetch1['our_status']) && !
empty($fetch1['our_status'])){
$show_status = $fetch1['our_status'];
}
$timestamp = Date('Y-m-d H:i:s',strtotime($singleStatus-
>DateTime));
$data = array(
'tracking_no' => $track__No,
'status' => $show_status,
'created' => $timestamp,
);
array_push($track_data, $data);
}
} else if($api_id == 13 && !empty($tcs_tracking)){
foreach ($tcs_tracking as $key => $singleStatus) {
$leoStatus = mysqli_real_escape_string($con,$singleStatus-
>status);
$query = mysqli_query($con, "SELECT order_status.status as
our_status, third_party_api_status_mapping.api_status from
third_party_api_status_mapping join order_status on order_status.sts_id =
third_party_api_status_mapping.status_id where
third_party_api_status_mapping.booking_api_id='7' AND
third_party_api_status_mapping.api_status='" . $leoStatus . "' LIMIT 1") or
die(mysqli_error($con));
$fetch1 = mysqli_fetch_array($query);
$show_status = $singleStatus->status;
if(isset($fetch1['our_status']) && !
empty($fetch1['our_status'])){
$show_status = $fetch1['our_status'];
}
$timestamp = Date('Y-m-d H:i:s',strtotime($singleStatus-
>datetime));
$data = array(
'tracking_no' => $track__No,
'status' => $show_status,
'created' => $timestamp,
);
array_push($track_data, $data);
}
} else if($api_id == 14 && !empty($postex_tracking)){
foreach ($postex_tracking as $key => $singleStatus) {
$leoStatus = mysqli_real_escape_string($con,$singleStatus-
>transactionStatusMessage);
$query = mysqli_query($con, "SELECT order_status.status as
our_status, third_party_api_status_mapping.api_status from
third_party_api_status_mapping join order_status on order_status.sts_id =
third_party_api_status_mapping.status_id where
third_party_api_status_mapping.booking_api_id='8' AND
third_party_api_status_mapping.api_status='" . $leoStatus . "' LIMIT 1") or
die(mysqli_error($con));
$fetch1 = mysqli_fetch_array($query);
$show_status = $singleStatus->transactionStatusMessage;
if(isset($fetch1['our_status']) && !
empty($fetch1['our_status'])){
$show_status = $fetch1['our_status'];
}
$timestamp = Date('Y-m-d H:i:s',strtotime($singleStatus-
>updatedAt));
$data = array(
'tracking_no' => $track__No,
'status' => $show_status,
'created' => $timestamp,
);
array_push($track_data, $data);
}
} else if($booking_api_id == 6 && !empty($quick_tracking)){
foreach ($quick_tracking as $key => $singleStatus) {
$leoStatus = mysqli_real_escape_string($con,$singleStatus-
>status);
$query = mysqli_query($con, "SELECT order_status.status as
our_status, third_party_api_status_mapping.api_status from
third_party_api_status_mapping join order_status on order_status.sts_id =
third_party_api_status_mapping.status_id where
third_party_api_status_mapping.booking_api_id='$booking_api_id' AND
third_party_api_status_mapping.api_status='" . $leoStatus . "' LIMIT 1") or
die(mysqli_error($con));
$fetch1 = mysqli_fetch_array($query);
$show_status = $singleStatus->status;
if(isset($fetch1['our_status']) && !
empty($fetch1['our_status'])){
$show_status = $fetch1['our_status'];
}
$timestamp = Date('Y-m-d H:i:s',strtotime($singleStatus-
>created));
$data = array(
'tracking_no' => $track__No,
'status' => $show_status,
'created' => $timestamp,
);
array_push($track_data, $data);
}
} else {
$order_logs_sql = "SELECT * FROM order_logs WHERE order_no
IN('$track__No') order by order_no ";
$order_logs_query = mysqli_query($con, $order_logs_sql);
while ($row = mysqli_fetch_array($order_logs_query)) {
$data = array(
'tracking_no' => $row['order_no'],
'status' => $row['order_status'],
'created' => $row['created_on']
);
array_push($track_data, $data);
}
}
}
}
if (!empty($track_data)) {
echo json_encode($track_data);
exit();
}