의견에 언급 된 바와 같이 VIES에는 API가 있습니다. 그리고 저는 여러분이 요청한 것과 똑같은 이유로 주로 구현했습니다. 그리고 그것의 'PHP. 여기 요 : 코드에서
은 "XXX"
class VatValidator {
const validVatId = 'valid';
const invalidVatId = 'invalid';
/**
*
* The european commission (ec) provides a validation database for VAT Id's, which can be accessed via WSDL.
* We check the given VAT against that Database.
*
* Actually that is more reliable than any captcha !!!
*
* * only companies have one
* * the code can not be "brute forced"
* * simple mass requests can be cut off easily
*
* @param String $requestedVatId entire VAT Id including country code
* @param string $company optional Company Name
* @param string $city optional company city
* @return Multiple false on error, String self::validVatId or String self::invalidVatId according to state.
*/
public static function validateVATID($requestedVatId, $company=null, $city=null)
{
$ret = false;
$ecUrl = "http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl";
$vatid = str_replace(array(' ', '.', '-', ',', ', '), '', trim($requestedVatId));
$cc = substr($vatid, 0, 2);
$vn = substr($vatid, 2);
$client = new SoapClient($ecUrl);
if($client)
{
$params = array('countryCode' => $cc,
'vatNumber' => $vn,
);
/*
* simple request only since we do not get any further information anyway.
*
* with $r = $client->checkVatApprox($params);
* we could:
*
'requesterCountryCode' => 'XXX',
'requesterVatNumber' => 'XXX' // Own ID!!
if (!empty($company))
$params['traderName'] = $company;
if (!empty($city))
$params['traderCity'] = $city;
$params["traderCompanyType"] = 1;
$params["traderStreet"] = 'xyz';
$params["traderPostcode"] = '1234';
*/
try
{
//$r = $client->checkVatApprox($params);
$r = $client->checkVat($params);
if($r->valid == true)
{
logMessage(Constants::$debug, 'valid: ' . $vatid);
$ret = self::validVatId;
}
else
{
logMessage(Constants::$debug, 'invalid: ' . $vatid);
$ret = self::invalidVatId;
}
// This foreach shows every single line of the returned information
// foreach($r as $k=>$prop)
// {
// logMessage(Constants::$debug, $k.': '.$prop);
// }
//logMessage(Constants::$debug, print_r($r, true));
} catch(SoapFault $e) {
logMessage(Constants::$debug, 'Error, see message: '.$e->faultstring);
$ret = $e->faultstring;
}
}
else
{
logMessage(Constants::$debug, 'cannot connect to ' . $ecUrl);
$ret = 'CONNECTERROR';
}
return $ret;
}
}
는, 자신의 VAT ID를 할 그냥 자신의 ID에 넣어 비트 frauding을 방지하기 위해 수 ...
* 부가가치세 세금으로 * , 당신은 부가 가치세 *를 의미합니다, 맞습니까? VAT 세금은 어느 법에 따라 계산되어야합니까? – Oswald
세계 어느 지역에서 작업하고 싶습니까? 귀하의 "부가가치세"에는 미국 판매 세가 포함됩니까? 모든 국가의 부가가치세 레지스트리에서 사용할 수있는 솔루션을 찾을 수 있을지 의심 스럽습니다. –
안녕하세요. 감사합니다. 다음은 프로젝트 파일에서 직접 발췌 한 것입니다. "유럽에서 사용되는 영어 단어는 VAT입니다. VAT의 네덜란드어 번역은 BTW 입니다. 호주와 뉴질랜드에서는 VAT GST라고 부릅니다. . 약어에 대한 구체적인 내용은 확실하지 않지만 여기에 일반적인 형식의 부가가치세 세금 번호가 나와 있습니다.이 번호는 용도에 대한 질문에 대답해야합니다. "NL174904241B0" – Orangeman555