Example #1
0
 /**
  * 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;
 }