$response = $client ->track($request); if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR'){ if($response->HighestSeverity != 'SUCCESS'){ echo '<table border="1">'; echo '<tr><th>Track Reply</th><th> </th></tr>'; trackDetails($response->Notifications, ''); echo '</table>'; }else{ if ($response->CompletedTrackDetails->HighestSeverity != 'SUCCESS'){ echo '<table border="1">'; echo '<tr><th>Shipment Level Tracking Details</th><th> </th></tr>'; trackDetails($response->CompletedTrackDetails, ''); echo '</table>'; }else{ echo '<table border="1">'; echo '<tr><th>Package Level Tracking Details</th><th> </th></tr>'; trackDetails($response->CompletedTrackDetails->TrackDetails, ''); echo '</table>'; } } printSuccess($client, $response); }else{ printError($client, $response); } writeToLog($client); // Write to log file } catch (SoapFault $exception) { printFault($exception, $client); } ?>
try { if(setEndpoint('changeEndpoint')) { $newLocation = $client->__setLocation(setEndpoint('endpoint')); } $response = $client ->getRates($request); if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR') { $rateReply = $response -> RateReplyDetails; echo '<table border="1">'; echo '<tr><th>Rate Details</th><th> </th></tr>'; trackDetails($rateReply, ''); echo '</table>'; printSuccess($client, $response); } else { printError($client, $response); } writeToLog($client); // Write to log file } catch (SoapFault $exception) { printFault($exception, $client); }
function trackDetails($details, $spacer) { foreach ($details as $key => $value) { if (is_array($value) || is_object($value)) { $newSpacer = $spacer . ' '; echo '<tr><td>' . $spacer . $key . '</td><td> </td></tr>'; trackDetails($value, $newSpacer); } elseif (empty($value)) { echo '<tr><td>' . $spacer . $key . '</td><td> </td></tr>'; } else { echo '<tr><td>' . $spacer . $key . '</td><td>' . $value . '</td></tr>'; } } }
$request['WebAuthenticationDetail'] = array('UserCredential' => array('Key' => getProperty('key'), 'Password' => getProperty('password'))); $request['ClientDetail'] = array('AccountNumber' => getProperty('shipaccount'), 'MeterNumber' => getProperty('meter')); $request['TransactionDetail'] = array('CustomerTransactionId' => '*** Track Request using PHP ***'); $request['Version'] = array('ServiceId' => 'trck', 'Major' => '10', 'Intermediate' => '0', 'Minor' => '0'); $request['SelectionDetails'] = array('PackageIdentifier' => array('Type' => 'TRACKING_NUMBER_OR_DOORTAG', 'Value' => $trackNum)); $request['ProcessingOptions'] = 'INCLUDE_DETAILED_SCANS'; try { if (setEndpoint('changeEndpoint')) { $newLocation = $client->__setLocation(setEndpoint('endpoint')); } $response = $client->track($request); if ($response->HighestSeverity != 'FAILURE' && $response->HighestSeverity != 'ERROR') { if ($response->HighestSeverity != 'SUCCESS') { echo '<table border="1">'; echo '<tr><th>Track Reply</th><th> </th></tr>'; trackDetails($response->Notifications, ''); echo '</table>'; } else { if ($response->CompletedTrackDetails->HighestSeverity != 'SUCCESS') { echo "completedTrackDetails != SUCCESS"; } else { $responseString = $client->__getLastResponse(); $responseString = preg_replace('/<\\/?SOAP-ENV:Body>/', '', $responseString); $xml = simplexml_load_string($responseString); $json = json_encode($xml); $standard = json_decode($json, true); $htmlString = '<p>Tracking Number: ' . $trackNum . '</p>'; //The following lines left in place for debugging errors -- uncomment to print response array and investigate //echo '<pre>'; //print_r($standard); //echo '</pre>';