public function getAramexOrderDetails($waybill_ref_number) { $params = array('ClientInfo' => array('AccountCountryCode' => 'IN', 'AccountEntity' => 'DEL', 'AccountNumber' => '50614093', 'AccountPin' => '115216', 'UserName' => '*****@*****.**', 'Password' => 'swan#1234', 'Version' => 'v1.0'), 'Shipments' => array($waybill_ref_number)); $wsdlPath = 'shipments-tracking-api-wsdl.wsdl'; $soapClient = new SoapClient($wsdlPath); // $soapClient = new SoapClient($wsdlPath, array('proxy_host' => "10.112.62.78", // 'proxy_port' => 8080, // 'proxy_login' => "*****@*****.**", // 'proxy_password' => "")); //calling the method and printing results try { $auth_call = $soapClient->TrackShipments($params); $ordDtlsArr = $auth_call->TrackingResults->KeyValueOfstringArrayOfTrackingResultmFAkxlpY->Value->TrackingResult; $ordDtlsFinal = $ordDtlsArr[0]; end($ordDtlsArr); // move the internal pointer to the end of the array $key = key($ordDtlsArr); $ordDtlsStart = $ordDtlsArr[$key]; $ordDtls['WaybillNo'] = $ordDtlsFinal->WaybillNumber; $ordDtls['PickUpDate_Formatted'] = date("m/d/Y", strtotime($ordDtlsStart->UpdateDateTime)); $ordDtls['Status'] = $ordDtlsFinal->UpdateDescription; $ordDtls['StatusDate_Formatted'] = date("m/d/Y", strtotime($ordDtlsFinal->UpdateDateTime)); $ordDtls['StatusTime_Formatted'] = date("H:i:s", strtotime($ordDtlsFinal->UpdateDateTime)); return $ordDtls; } catch (SoapFault $fault) { $string = 'faultcode:' . $fault->faultcode . '<br>' . 'faultstring:' . $fault->faultstring . '<br>' . 'faultactor:' . $fault->faultactor . '<br>' . 'detail:' . $fault->detail . '<br>' . 'faultname:' . $fault->faultname . '<br>' . 'headerfault:' . $fault->headerfault; Mage::log('Exception of armaex api: ' . $string); } }
protected function _parseXmlTrackingResponse($trackingvalue) { $resultArr = array(); if (!$this->_result) { $this->_result = Mage::getModel('shipping/tracking_result'); } $defaults = $this->getDefaults(); //$url = 'http://localhost:8080/soap_test/wsdl/Tracking.wsdl'; //if (!$url) { $url = $this->_defaultGatewayUrl; //} $clientAramex = new SoapClient($url); $aramexParams = $this->_getAuthDetails(); $aramexParams['Transaction'] = array('Reference1' => '001'); $aramexParams['Shipments'] = array($trackingvalue); $_resAramex = $clientAramex->TrackShipments($aramexParams); if (is_object($_resAramex) && !$_resAramex->HasErrors) { $tracking = Mage::getModel('shipping/tracking_result_status'); $tracking->setCarrier('aramex'); $tracking->setCarrierTitle($this->getConfigData('title')); $tracking->setTracking($trackingvalue); if (!empty($_resAramex->TrackingResults->KeyValueOfstringArrayOfTrackingResultmFAkxlpY->Value->TrackingResult)) { $tracking->setTrackSummary($this->getTrackingInfoTable($_resAramex->TrackingResults->KeyValueOfstringArrayOfTrackingResultmFAkxlpY->Value->TrackingResult)); } else { $tracking->setTrackSummary('Unable to retrieve quotes, please check if the Tracking Number is valid or contact your administrator.'); } $this->_result->append($tracking); } else { $errorMessage = ''; foreach ($_resAramex->Notifications as $notification) { $errorMessage .= '<b>' . $notification->Code . '</b>' . $notification->Message; } $error = Mage::getModel('shipping/tracking_result_error'); $error->setCarrier('aramex'); $error->setCarrierTitle($this->getConfigData('title')); $error->setTracking($trackingvalue); $error->setErrorMessage($errorMessage); $this->_result->append($error); } }