dannyvankooten/vat.php
2.0.9
2023-11-02 09:24 UTC
Requires
- php: >=7.3
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
Suggests
- ext-soap: Needed to support VIES VAT number validation
- ibericode/vat-bundle: Symfony bundle for integrating this package
README
这是一个简单的PHP库,可以帮助您处理欧洲的增值税规则。
- 使用ibericode/vat-rates获取任何欧盟成员国的增值税率。
- 验证增值税号(格式和/或存在性)
- 验证ISO-3316 alpha-2国家代码
- 确定一个国家是否是欧盟成员国
- 定位IP地址
安装
需要PHP版本8.2或更高版本,并安装CURL和JSON扩展。
对于增值税号存在性检查,还需要PHP SOAP扩展。
要获取最新稳定版本,请使用Composer安装该软件包。
composer require ibericode/vat
用法
此库公开了4个主要类用于交互:Rates
、Countries
、Validator
和Geolocator
。
获取增值税率。
此软件包依赖于vat rates的社区维护仓库。我们邀请您切换对该仓库的通知,并在增值税率在您的国家宣布后贡献更改。
$rates = new Ibericode\Vat\Rates('/path-for-storing-cache-file.txt'); $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 Ibericode\Vat\Validator(); $validator->validateVatNumberFormat('NL203458239B01'); // true (checks format) $validator->validateVatNumber('NL203458239B01'); // false (checks format + existence)
验证IP地址
$validator = new Ibericode\Vat\Validator(); $validator->validateIpAddress('256.256.256.256'); // false $validator->validateIpAddress('8.8.8.8'); // true
验证ISO-3166-1-alpha2国家代码
$validator = new Ibericode\Vat\Validator(); $validator->validateCountryCode('DE'); // true $validator->validateCountryCode('ZZ'); // false
处理ISO-3166-1-alpha2国家代码
$countries = new Ibericode\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.org或ip2country.info(自2022年12月起已弃用)的简单地理位置服务。
$geolocator = new Ibericode\Vat\Geolocator(); $geolocator->locateIpAddress('8.8.8.8'); // US
显式使用ip2c.org。
$geolocator = new Ibericode\Vat\Geolocator('ip2c.org'); $geolocator->locateIpAddress('8.8.8.8'); // US
Symfony支持
如果您需要在Symfony环境中使用此软件包,请查看ibericode/vat-bundle。
许可
ibericode/vat受MIT许可证的许可。