/** * Send request to VAT validation service and return validation result * * @param string $countryCode * @param string $vatNumber * @param string $requesterCountryCode * @param string $requesterVatNumber * * @return Varien_Object */ public function checkVatNumber($countryCode, $vatNumber, $requesterCountryCode = '', $requesterVatNumber = '') { // Default response $gatewayResponse = new Varien_Object(array('is_valid' => false, 'request_date' => '', 'request_identifier' => '', 'request_success' => false)); if (!extension_loaded('soap')) { Mage::logException(Mage::exception('Mage_Core', Mage::helper('core')->__('PHP SOAP extension is required.'))); return $gatewayResponse; } if (!$this->canCheckVatNumber($countryCode, $vatNumber, $requesterCountryCode, $requesterVatNumber)) { return $gatewayResponse; } try { $soapClient = $this->_createVatNumberValidationSoapClient(); $requestParams = array(); $requestParams['countryCode'] = $countryCode; $requestParams['vatNumber'] = str_replace(array(' ', '-'), array('', ''), $vatNumber); $requestParams['requesterCountryCode'] = $requesterCountryCode; $requestParams['requesterVatNumber'] = str_replace(array(' ', '-'), array('', ''), $requesterVatNumber); // Send request to service $result = $soapClient->checkVatApprox($requestParams); $gatewayResponse->setIsValid((bool) $result->valid); $gatewayResponse->setRequestDate((string) $result->requestDate); $gatewayResponse->setRequestIdentifier((string) $result->requestIdentifier); $gatewayResponse->setRequestSuccess(true); } catch (Exception $exception) { $gatewayResponse->setIsValid(false); $gatewayResponse->setRequestDate(''); $gatewayResponse->setRequestIdentifier(''); } return $gatewayResponse; }