165 $gatewayResponse =
new DataObject([
167 'request_date' =>
'',
168 'request_identifier' =>
'',
169 'request_success' =>
false,
170 'request_message' =>
__(
'Error during VAT Number verification.'),
173 if (!extension_loaded(
'soap')) {
174 $this->logger->critical(
new LocalizedException(
__(
'PHP SOAP extension is required.')));
175 return $gatewayResponse;
178 if (!$this->
canCheckVatNumber($countryCode, $vatNumber, $requesterCountryCode, $requesterVatNumber)) {
179 return $gatewayResponse;
186 $requestParams[
'countryCode'] = $countryCode;
188 ? str_replace([
' ',
'-', $countryCode], [
'',
'',
''], $vatNumber)
189 : str_replace([
' ',
'-'], [
'',
''], $vatNumber);
190 $requestParams[
'vatNumber'] = $vatNumberSanitized;
191 $requestParams[
'requesterCountryCode'] = $requesterCountryCode;
192 $reqVatNumSanitized = $this->
isCountryInEU($requesterCountryCode)
193 ? str_replace([
' ',
'-', $requesterCountryCode], [
'',
'',
''], $requesterVatNumber)
194 : str_replace([
' ',
'-'], [
'',
''], $requesterVatNumber);
195 $requestParams[
'requesterVatNumber'] = $reqVatNumSanitized;
197 $result = $soapClient->checkVatApprox($requestParams);
199 $gatewayResponse->setIsValid((
bool)
$result->valid);
200 $gatewayResponse->setRequestDate((
string)
$result->requestDate);
201 $gatewayResponse->setRequestIdentifier((
string)
$result->requestIdentifier);
202 $gatewayResponse->setRequestSuccess(
true);
204 if ($gatewayResponse->getIsValid()) {
205 $gatewayResponse->setRequestMessage(
__(
'VAT Number is valid.'));
207 $gatewayResponse->setRequestMessage(
__(
'Please enter a valid VAT number.'));
209 }
catch (\Exception $exception) {
210 $gatewayResponse->setIsValid(
false);
211 $gatewayResponse->setRequestDate(
'');
212 $gatewayResponse->setRequestIdentifier(
'');
215 return $gatewayResponse;
createVatNumberValidationSoapClient($trace=false)
canCheckVatNumber($countryCode, $vatNumber, $requesterCountryCode, $requesterVatNumber)
isCountryInEU($countryCode, $storeId=null)