Consulta el estado de un CFDI en el webservice del SAT usando HTTP (PSR-17 y PSR-18)
🇺🇸 The documentation of this project is in spanish as this is the natural language for intented audience.
🇲🇽 La documentación del proyecto está en español porque ese es el lenguaje principal de los usuarios.
Esta librería contiene objetos para consumir el Servicio de Consulta de CFDI del SAT usando HTTP.
Esta librería provee un objeto HttpConsumerClient
que se usa en \PhpCfdi\SatEstadoCfdi\Consumer
de la librería phpcfdi/sat-estado-cfdi
.
Para contactar al servicio no requiere ext-soap
en su lugar usa los estándares de PHP-FIG
PSR-18: HTTP Client y PSR-17: HTTP Factories.
De esta forma, tu puedes usar el cliente HTTP que mejor te convenga.
Los estándares de los que depende son:
- PSR-18: HTTP Client: Interfaces para clientes HTTP (el que hace la llamada POST). https://www.php-fig.org/psr/psr-18/
- PSR-17: HTTP Factories: Interfaces de fábricas de HTTP Request y Response (para PSR-7). https://www.php-fig.org/psr/psr-17/
Esta librería no contiene las implementaciones de los estándares, pero ya existen fuera del ámbito de la aplicación.
Te recomiendo probar las librerías de Sunrise
sunrise/http-client-curl
,
sunrise/http-factory
y
sunrise/http-message
.
O puedes ver en Packagist los que te agraden:
- PSR-18: https://packagist.org/providers/psr/http-client-implementation
- PSR-17: https://packagist.org/providers/psr/http-factory-implementation
- PSR-7: https://packagist.org/providers/psr/http-message-implementation
Usa composer
composer require phpcfdi/sat-estado-cfdi-http-psr
<?php
// suponiendo que tienes un objeto factory que tu formaste
/** @var \PhpCfdi\SatEstadoCfdi\HttpPsr\HttpConsumerFactoryInterface $factory */
// construimos el cliente
$client = new \PhpCfdi\SatEstadoCfdi\HttpPsr\HttpConsumerClient($factory);
// creamos el consumidor con nuestro cliente
$consumer = new \PhpCfdi\SatEstadoCfdi\Consumer($client);
// consumimos el webservice!
$response = $consumer->execute('...expression');
// usamos el resultado
if ($response->cancellable()->isNotCancellable()) {
echo 'CFDI no es cancelable';
}
En el archivo de documentación Integración hay notas de cómo puedes inteagrar y usar esta librería en tu sistema usando la implementación de los PSR-17 y PSR-18 que decidas.
Esta librería se mantendrá compatible con al menos la versión con soporte activo de PHP más reciente.
También utilizamos Versionado Semántico 2.0.0 por lo que puedes usar esta librería sin temor a romper tu aplicación.
Las contribuciones con bienvenidas. Por favor lee CONTRIBUTING para más detalles y recuerda revisar el archivo de tareas pendientes TODO y el CHANGELOG.
The phpcfdi/sat-estado-cfdi library is copyright © Carlos C Soto and licensed for use under the MIT License (MIT). Please see LICENSE for more information.