seisigmasrl / dgii-rnc-validator
一个简单的包,用于检查多米尼加共和国官方税务机构(Dirección General de Impuestos Internos,DGII)的给定RNC。
Requires
- php: >=8.1
- ext-soap: *
Requires (Dev)
- laravel/pint: ^1.4.1
- pestphp/pest: ^1.22.4
- spatie/ray: ^1.36
README
一个简单的包,用于检查多米尼加共和国官方税务机构(Dirección General de Impuestos Internos,DGII)的给定RNC,以及一些其他选项。
安装
您可以通过composer安装此包
composer require seisigmasrl/dgii-rnc-validator
用法
此包旨在为您提供一种简单的方法来检查和验证给定的RNC是否有效,以及它当前的税务状态。大多数现有解决方案都是基于解析由多米尼加共和国官方税务机构(Dirección General de Impuestos Internos,DGII)提供的包含所有现有RNC的月度共享文件。
这种方法对于提高性能非常出色,但它对于需要实时、可靠信息的服务来说并不理想。因此,当前包提供了一个简单的API来
- 验证RNC
- 验证给定的RNC是否有效。
但如何实现?在某个地方😅,有一个“真实”的公开非文档化的端点,税务机构使用它来验证与DGII的信息。此端点提供了一些选项,但我们只为本包的范围使用RNC验证。
以下是本包提供的函数列表
检查
验证给定的RNC是否有效,如果有效则返回纳税人的详细信息,否则返回false。
如何使用它
require Seisigma\DgiiRncValidator\DgiiRncValidator; ... // 132620951 is a valid RNC $validatedRnc = DgiiRncValidator::check("132620951"); var_dump($validatedRnc); // array(4) { // ["rnc"]=> string(9) "132620951" // ["name"]=> string(29) "KOI CORPORATION BY SAIKOV SRL" // ["commercial_name"]=> string(25) "KOI CORPORATION BY SAIKOV" // ["status"]=> string(6) "Active" // } // 123456789 is an invalid RNC $validatedRnc = DgiiRncValidator::check("123456789"); var_dump($validatedRnc); // bool(false)
validateRNC
验证给定的字符串是否是有效的RNC。
如何使用它
require Seisigma\DgiiRncValidator\DgiiRncValidator; ... // 132620951 is a valid RNC $validatedRnc = DgiiRncValidator::validateRNC("132620951"); var_dump($validatedRnc); // bool(true) // 123456789 is an invalid RNC $validatedRnc = DgiiRncValidator::validateRNC("123456789"); var_dump($validatedRnc); // bool(false)
rncType
验证给定的字符串是否是有效的RNC。
如何使用它
require Seisigma\DgiiRncValidator\DgiiRncValidator; ... // 132620951 is a valid RNC $rncType = DgiiRncValidator::rncType("132620951"); var_dump($rncType); // enum(Types::RNC) // 123456789 is an invalid RNC $rncType = DgiiRncValidator::rncType("04800009577"); var_dump($rncType); // enum(Types::CEDULA)
类型枚举包含两个函数
toString
: 从返回的枚举中返回字符串值。例如
var_dump(Types::RNC->toString()) // string(RNC)
toCode
: 从返回的枚举中返回DGII类型代码值。例如
var_dump(Types::RNC->toCode()) // string(01)
辅助函数
如果您需要一些额外的工具,以下是一些实用函数的列表
getNumbers
此函数从提供的任何字符串中返回所有数字。
如何使用它
require Seisigma\DgiiRncValidator\helpers\Utils; ... $results = Utils::getNumbers("abc123456"); var_dump($results); // string(6) "123456" $results = Utils::getNumbers("asdfasdfs"); var_dump($results); // bool(false)
luhnAlgorithmValidation
此函数验证给定的数字序列是否具有有效的键(校验和)。
如何使用它
require Seisigma\DgiiRncValidator\helpers\Utils; ... $result = Utils::luhnAlgorithmValidation("79927398713"); var_dump($result); // bool(true) $result = Utils::luhnAlgorithmValidation("79927398715"); var_dump($result); // bool(false)
validateDominicanCitizenId
此函数验证给定的数字序列是否是有效的多米尼加公民身份证。
如何使用它
require Seisigma\DgiiRncValidator\helpers\Utils; ... $result = Utils::validateDominicanCitizenId("04800009575"); var_dump($result); // bool(true) $result = Utils::validateDominicanCitizenId("04800009577"); var_dump($result); // bool(false)
测试
composer test
变更日志
请参阅CHANGELOG以了解最近的变化信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全漏洞
请查阅我们的安全策略以了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。