在情況下,它是幫助你或其他人,這裏是一些PHP代碼,你可以使用基於自己的IP地址來計算歐盟成員國的增值稅率,讓訪客
顯然,使用風險自負。增值稅稅率在發佈時是正確的,但可能會在未來發生變化。在爭議的情況下,立法需要兩個證據來證明正確的國家。你可以使用下面的代碼作爲一個證據,但你可能需要另一塊。
function getIPAddress()
{
$ret = "";
if (isset($_SERVER['HTTP_CLIENT_IP']))
$ret = $_SERVER['HTTP_CLIENT_IP'];
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ret = $_SERVER['HTTP_X_FORWARDED_FOR'];
else
$ret = $_SERVER['REMOTE_ADDR'];
return $ret;
}
function getVatRateFromIpCountryCode()
{
// Work out IP address and country code
$remote_addr = getIPAddress();
$xml = simplexml_load_file("http://www.geoplugin.net/xml.gp?ip=".$remote_addr); // don't do more than 120 lookups in a minute or you'll get blacklisted for an hour
$countryCode = $xml->geoplugin_countryCode;
//$countryCode = "LU"; // test force contryCode
// see http://ec.europa.eu/taxation_customs/resources/documents/taxation/vat/how_vat_works/rates/vat_rates_en.pdf for current EU VAT rates
$vat_percentage = 0;
switch ($countryCode)
{
case "EU": $vat_percentage = 20; break; // unknown EU country
case "BE": $vat_percentage = 21; break; // Belgium
case "BG": $vat_percentage = 20; break; // Bulgaria
case "CZ": $vat_percentage = 21; break; // Czech Republic
case "DK": $vat_percentage = 25; break; // Denmark
case "DE": $vat_percentage = 19; break; // Germany
case "EE": $vat_percentage = 20; break; // Estonia
case "EL":
case "GR": $vat_percentage = 23; break; // Greece
case "ES": $vat_percentage = 21; break; // Spain
case "FR": $vat_percentage = 20; break; // France
case "HR": $vat_percentage = 25; break; // Croatia
case "IE": $vat_percentage = 23; break; // Ireland
case "IT": $vat_percentage = 22; break; // Italy
case "CY": $vat_percentage = 19; break; // Cyprus
case "LV": $vat_percentage = 21; break; // Latvia
case "LT": $vat_percentage = 21; break; // Lithuania
case "LU": $vat_percentage = 15; break; // Luxembourg
case "HU": $vat_percentage = 27; break; // Hungary
case "MT": $vat_percentage = 18; break; // Malta
case "NL": $vat_percentage = 21; break; // Netherlands
case "AT": $vat_percentage = 20; break; // Austria
case "PL": $vat_percentage = 23; break; // Poland
case "PT": $vat_percentage = 23; break; // Portugal
case "RO": $vat_percentage = 24; break; // Romania
case "SI": $vat_percentage = 22; break; // Solvenia
case "SK": $vat_percentage = 20; break; // Slovakia
case "FI": $vat_percentage = 24; break; // Finland
case "SE": $vat_percentage = 25; break; // Sweden
case "UK":
case "GB": $vat_percentage = 20; break; // United Kingdom
default: break;
}
//echo "countryCode = '$countryCode', vat_percentage = $vat_percentage<BR>"; // debugging
return $vat_percentage/100;
}
看看Taxamo。我幫助我遵守新法律。 – 2015-01-06 12:44:19
感謝您的提示。我已經實施了我自己的解決方案,總結了每季度提交的所有國家。 我發現的所有支付處理器對於我的少量銷售和小額支付都太貴。 – Hyndrix 2015-01-06 17:00:33