phpcfdi / csf-scraper
根据其RFC和CIFID获取法人或自然人的当前税务数据
v0.1.7
2024-01-10 17:18 UTC
Requires
- php: >=8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.4
- phpcfdi/rfc: ^1.1
- symfony/css-selector: >=6.0
- symfony/dom-crawler: >=6.0
- symfony/process: >=6.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
根据其RFC和CIFID获取法人或自然人的当前税务数据。
🇺🇸 该项目的文档用西班牙语编写,因为这是目标受众的自然语言。
🇲🇽 该项目的文档用西班牙语编写,因为这是用户的主要语言。
安装
使用 composer
composer require phpcfdi/csf-scraper
此库需要使用实现 GuzzleHttp\ClientInterface;
的客户端,你可以在此处获取更多关于此库的信息:guzzle.
使用示例
<?php declare(strict_types=1); use GuzzleHttp\Client; use PhpCfdi\CsfScraper\Scraper; use PhpCfdi\Rfc\Rfc; require 'vendor/autoload.php'; $scraper = Scraper::create(); $rfc = Rfc::parse('YOUR_RFC'); $person = $scraper->obtainFromRfcAndCif(rfc: $rfc, idCIF: 'ID_CIF'); // También puedes obtener los datos de la persona directamente del archivo local PDF // (Ten en cuenta que esta funcionalidad requiere de tener instalado poppler-utils en tu servidor). $person = $scraper->obtainFromPdfPath('LOCAl_PDF_FILE_PATH'); // puedes acceder a los datos de la persona (moral o física) usando los métodos incluidos: if($rfc->isFisica()) { echo $person->getNombre(); } if($rfc->isMoral()) { echo $person->getRazonSocial(); } // o puedes obtener el array de datos usando echo print_r($person->toArray(), true);
法人示例输出 json_encode($person)
{ "rfc": "DIM8701081LA", "id_cif": "12345678", "razon_social": "Mi razón social", "regimen_de_capital": "SA DE CV", "fecha_constitucion": { "date": "2019-02-21 22:50:46.000000", "timezone_type": 3, "timezone": "UTC" }, "fecha_inicio_operaciones": { "date": "2019-02-21 22:50:46.000000", "timezone_type": 3, "timezone": "UTC" }, "situacion_contribuyente": "ACTIVO", "fecha_ultimo_cambio_situacion": { "date": "2019-02-21 22:50:46.000000", "timezone_type": 3, "timezone": "UTC" }, "entidad_federativa": "CIUDAD DE MEXICO", "municipio_delegacion": "CUAUHTEMOC", "colonia": "CUAUHTEMOC", "tipo_vialidad": "Tipo vialidad", "nombre_vialidad": "PASEO DE LA REFORMA", "numero_exterior": "143", "numero_interior": "Piso 69", "codigo_postal": "72055", "correo_electronico": "example@example.com", "al": "CIUDAD DE MEXICO 2", "regimenes": [ { "regimen": "Régimen General de Ley Personas Morales", "regimen_id": "601", "fecha_alta": { "date": "2019-02-21 22:50:46.000000", "timezone_type": 3, "timezone": "UTC" } } ], "extra_data": [] }
自然人示例输出 json_encode($person)
{ "rfc": "COSC8001137NA", "id_cif": "1904014102123", "curp": "CURP", "nombre": "JUAN", "apellido_paterno": "PEREZ", "apellido_materno": "RODRIGUEZ", "fecha_nacimiento": { "date": "1973-05-01 22:53:25.000000", "timezone_type": 3, "timezone": "UTC" }, "fecha_inicio_operaciones": { "date": "2004-11-03 22:53:25.000000", "timezone_type": 3, "timezone": "UTC" }, "situacion_contribuyente": "ACTIVO", "fecha_ultimo_cambio_situacion": { "date": "2004-11-03 22:53:25.000000", "timezone_type": 3, "timezone": "UTC" }, "entidad_federativa": "CIUDAD DE MEXICO", "municipio_delegacion": "IZTAPALAPA", "colonia": "MI COLONIA", "tipo_vialidad": "CALLE", "nombre_vialidad": "BENITO JUAREZ", "numero_exterior": "183", "numero_interior": "", "codigo_postal": "72000", "correo_electronico": "", "al": "CIUDAD DE MEXICO 3", "regimenes": [ { "regimen": "Régimen de Incorporación Fiscal", "regimen_id": "621", "fecha_alta": { "date": "2014-01-01 22:53:25.000000", "timezone_type": 3, "timezone": "UTC" } } ], "extra_data": [] }
支持
您可以在GitHub上创建一个工单以获取支持。
此外,此库属于 PhpCfdi 社区,因此您可以使用相同的沟通渠道从社区成员那里获得帮助。
兼容性
此库将保持与最新激活支持的 PHP 版本 至少兼容。
我们还使用 语义版本2.0.0,因此您可以放心地使用此库,而不用担心破坏您的应用程序。
贡献
欢迎贡献。请阅读 CONTRIBUTING 获取更多详细信息,并请记住检查待办事项 TODO 和变更日志 CHANGELOG 文件。
版权和许可证
phpcfdi/csf-scraper
库的版权归 PhpCfdi 所有,并按 MIT 许可证(MIT)许可使用。有关更多信息,请参阅 LICENSE。