weareantenna / vat
一个用于在Teamleader CRM中处理增值税号的库
1.3.0
2022-06-09 11:47 UTC
Requires
- php: ^7.2|^8.0
- ext-soap: *
- dragonbe/vies: ^2.1
Requires (Dev)
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2024-09-09 16:36:51 UTC
README
这个库可以帮助您以受控的方式处理增值税号。它首先使用DragonBe/vies包来验证欧盟增值税号的格式。之后,您可以使用VIES验证器来验证该号码是否已签发。
安装
此包需要PHP 7.1或更高版本。
composer require weareantenna/vat
使用
<?php use Antenna\Vat\VatNumber; use Antenna\Vat\ViesValidator\SoapViesValidator; $vatNumber = new VatNumber('BE0123 456 749'); $validator = new SoapViesValidator(); echo $vatNumber->toString(); // BE0123 456 749 echo $vatNumber->toNormalizedString(); // BE0123456749 if ($vatNumber->isFormatValid()) { try { $isRegistered = $validator->isValid($vatNumber); } catch (RuntimeException $e) { // something went wrong when trying to validate against VIES } }
您应该将应用程序中的VIES服务不可用的支持构建进去。无论是VIES本身还是VIES使用的底层服务,有时都可能出现不可用的情况。您可以选择信任用户或实现某种重试方法。
格式化
VatNumber
类保留了输入的增值税号的格式。当您想保存用户输入的确切内容或处理旧数据时,这很有用。
提供了一个用于标准化数字的方法,该方法将整个增值税号转换为大写,并删除所有非字母数字字符。
如果您想进一步格式化增值税号,可以实现一个Antenna\Formatter\Formatter
接口。
本包包含一个TeamleaderFormatter
。此格式化器将增值税号格式化得与Teamleader CRM内部处理的方式完全一致。
<?php use Antenna\Vat\VatNumber; use Antenna\Vat\Formatter\TeamleaderFormatter; $formatter = new TeamleaderFormatter(); echo $formatter->format(new VatNumber('BE0123456749')); // BE 0123.456.749 echo $formatter->format(new VatNumber('NL001632553B28')); // NL 0016.32.553.B28
这可以帮助您通过它们的API找到公司,因为增值税号需要按照它们的格式进行格式化。