phpcfdi / sat-estado-cfdi-http-psr
Requires
- php: >=7.3
- ext-dom: *
- phpcfdi/sat-estado-cfdi: ^1.0.2
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- ext-curl: *
- phpcfdi/cfdi-expresiones: ^3.0
- phpunit/phpunit: ^9.5
- sunrise/http-factory: ^1.0
- sunrise/http-message: ^1.0
- symfony/http-client: ^5.2
Suggests
- phpcfdi/cfdi-expresiones: Genera expresiones de CFDI 3.3, CFDI 3.2 y RET 1.0
README
项目存档
该项目已存档,以支持phpcfdi/sat-estado-cfdi
版本2。该项目的功能已集成到phpcfdi/sat-estado-cfdi
中,因此从2024-03-06起不再维护。如果您实现了phpcfdi/sat-estado-cfdi
和phpcfdi/sat-estado-cfdi-http-psr
的版本1,则可以按照https://github.com/phpcfdi/sat-estado-cfdi/blob/main/docs/UPGRADE_v1_v2.md中的更新指南更新您的代码。
使用HTTP(PSR-17和PSR-18)在SAT的webservice中查询CFDI的状态
🇺🇸 本项目的文档使用西班牙语,因为这是目标受众的自然语言。
🇲🇽 本项目的文档使用西班牙语,因为这是主要用户群体的语言。
该库包含用于通过HTTP消费SAT的CFDI查询服务对象。
该库提供了一个名为HttpConsumerClient
的对象,该对象用于\PhpCfdi\SatEstadoCfdi\Consumer
库中的phpcfdi/sat-estado-cfdi
。
为了联系服务,不需要ext-soap
,而是使用PHP-FIG标准PSR-18: HTTP Client和PSR-17: HTTP Factories。这样,您可以使用最适合您的HTTP客户端。
它依赖的标准有
- PSR-18: HTTP Client: HTTP客户端接口(执行POST调用的那个)。https://www.php-fig.org/psr/psr-18/
- PSR-17: HTTP Factories: HTTP请求和响应工厂接口(PSR-7)。https://www.php-fig.org/psr/psr-17/
该库不包含标准的实现,但它们已经在应用程序范围之外存在。
我建议您尝试Sunrise库sunrise/http-client-curl
和sunrise/http-message
。
或者您可以在Packagist上查看您喜欢的库
- PSR-18: https://packagist.org.cn/providers/psr/http-client-implementation
- PSR-17: https://packagist.org.cn/providers/psr/http-factory-implementation
- PSR-7: https://packagist.org.cn/providers/psr/http-message-implementation
安装
使用 composer
composer require phpcfdi/sat-estado-cfdi-http-psr
基本使用示例
<?php declare(strict_types=1); use PhpCfdi\SatEstadoCfdi\Consumer; use PhpCfdi\SatEstadoCfdi\HttpPsr\HttpConsumerClient; use PhpCfdi\SatEstadoCfdi\HttpPsr\HttpConsumerFactoryInterface; // suponiendo que tienes un objeto factory que tu formaste /** @var HttpConsumerFactoryInterface $factory */ // construimos el cliente $client = new HttpConsumerClient($factory); // creamos el consumidor con nuestro cliente $consumer = new Consumer($client); // consumimos el webservice! $response = $consumer->execute('...expression'); // usamos el resultado if ($response->cancellable()->isNotCancellable()) { echo 'CFDI no es cancelable'; }
集成
您可以查看以下资源,以将phpcfdi/sat-estado-cfdi-http-psr
集成到您的项目中。
- Guzzle集成 使用 guzzlehttp/guzzle 的实现。
- 通用集成 实现您选择的 PSR-17 和 PSR-18,例如使用 Sunrise。
兼容性
此库将保持与至少最新 PHP 支持版本 的兼容性。
我们还使用 语义化版本 2.0.0,因此您可以使用此库而无需担心破坏您的应用程序。
贡献
欢迎贡献。请阅读 CONTRIBUTING 获取更多详细信息,并记得检查待办事项列表 TODO 以及变更日志文件 CHANGELOG。
版权和许可证
phpcfdi/sat-estado-cfdi-http-psr
库的版权归 © PhpCfdi 所有,并使用 MIT 许可证 (MIT) 授权使用。有关更多信息,请参阅 LICENSE。