laraben/vat

处理欧盟增值税的PHP库

维护者

详情

github.com/laraben/vat

源码

安装: 47

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 1

分支: 61

2.0.7 2021-06-30 15:59 UTC

This package is auto-updated.

Last update: 2024-09-13 12:21:49 UTC


README

这是一个简单的PHP库,可以帮助你处理欧洲的增值税规则。

  • 使用 Ibericode/vat-rates 获取任何欧盟成员国的增值税税率。
  • 验证增值税号码(格式和/或存在性
  • 验证ISO-3316 alpha-2国家代码
  • 确定一个国家是否属于欧盟
  • 地理定位IP地址

安装

需要PHP版本7.1或更高,并安装CURL和JSON扩展。

对于增值税号码存在性检查,还需要PHP SOAP扩展。

要获取最新稳定版本,请使用 Composer 安装包

composer require laraben/vat

用法

此库公开了4个主要类以进行交互:RatesCountriesValidatorGeolocator

检索增值税税率。

$rates = new Laraben\Vat\Rates('/path-for-storing-cache-file.txt');
$rates->getRatesForCountry('NL'); // array with different rates
$rates->getRateForCountry('NL'); // 21
$rates->getRateForCountry('NL', 'standard'); // 21
$rates->getRateForCountry('NL', 'reduced'); // 9
$rates->getRateForCountryOnDate('NL', new \Datetime('2010-01-01'), 'standard'); // 19

这将从 Ibericode/vat-rates 获取税率,并存储本地副本,该副本会定期刷新(默认每12小时刷新一次)。

验证

验证增值税号码

$validator = new Laraben\Vat\Validator();
$validator->validateVatNumberFormat('NL203458239B01'); // true (checks format)
$validator->validateVatNumber('NL203458239B01'); // false (checks format + existence)

验证IP地址

$validator = new Laraben\Vat\Validator();
$validator->validateIpAddress('256.256.256.256'); // false
$validator->validateIpAddress('8.8.8.8'); // true

验证ISO-3166-1-alpha2国家代码

$validator = new Laraben\Vat\Validator();
$validator->validateCountryCode('DE'); // true
$validator->validateCountryCode('ZZ'); // false

处理ISO-3166-1-alpha2国家代码

$countries = new Laraben\Vat\Countries();

// access country name using array access
echo $countries['NL']; // Netherlands

// loop over countries
foreach ($countries as $code => $name) {
    // ...
}

// check if country is in EU
$countries->isCountryCodeInEU('NL'); // true
$countries->isCountryCodeInEU('US'); // false

地理定位

此库包含一个简单的地理定位服务,使用 ip2c.orgip2country.info

$geolocator = new Laraben\Vat\Geolocator();
$geolocator->locateIpAddress('8.8.8.8'); // US

要显式使用 ip2country.info。

$geolocator = new Laraben\Vat\Geolocator('ip2country.info');
$geolocator->locateIpAddress('8.8.8.8'); // US

或,要显式使用 ip2c.org。

$geolocator = new Laraben\Vat\Geolocator('ip2c.org');
$geolocator->locateIpAddress('8.8.8.8'); // US

Symfony支持

如果你需要在Symfony环境中使用此包,请查看 Ibericode/vat-bundle

许可证

Laraben/vat 在 MIT许可证 下授权。