Skip to content

Releases: phpcfdi/sat-ws-descarga-masiva

Versión 0.5.4

17 Apr 22:21
4f95e0d
Compare
Choose a tag to compare

Se corrige un bug donde en algunas ocasiones falla al procesar la respuesta de una descarga de paquetes.

El método DOMDocument::loadXML() con LibXML >= 1.11.0 trunca a 10,000,000 bytes el contenido de un nodo de tipo texto. Esto lleva a que el contenido de un paquete se trunque y el archivo ZIP descargado se encuentre truncado y, por lo tanto, corrupto. Se ha corregido usando la opción LIBXML_PARSEHUGE.

Al usar LIBXML_PARSEHUGE se está quitando una protección natural que impide una denegación de servicio. Sin embargo, podemos considerar segura esta acción dado que solo ocurre en el contexto de respuestas recibidas del servicio de descarga masiva del SAT.

Se actualiza el archivo de licencia a 2024.

Mantenimiento 2024-04-17

  • Se mejoran las pruebas del rasgo ComplementoTrait.
  • Se actualizaron los flujos de trabajo:
    • Se agregó PHP 8.3 a la matriz de pruebas.
    • Los trabajos ahora corren en PHP 8.3.
    • Se actualizan las acciones de GitHub a la versión 4.
    • Se cambia la variable build/tests/matrix/php-versions a singular.
  • Se actualizaron las herramientas de desarrollo.

Versión 0.5.3

07 Jun 19:27
0da4ddd
Compare
Choose a tag to compare
  • Se verifica la compatibilidad con PHP 8.2.
  • Se eliminan las llaves en la interpolación de variables (deprecado en PHP 8.2).
  • Se actualiza el año de la licencia.
  • Se modifican las pruebas para futura compatibilidad con PHPUnit 10.
  • Se corrige la exclusión de archivos en sonar-project.properties.
  • Se corrige el archivo CONTRIBUTING.md usando el ancla correcta del proyecto.
  • Se corrige la insignia de construcción badge-build.
  • En los flujos de trabajo
    • Se agrega PHP 8.2 a la matriz de pruebas.
    • Se ejecutan los trabajos en PHP 8.2.
    • Se sustituye la directiva de GitHub ::set-output por $GITHUB_OUTPUT.
  • Se actualizan las herramientas de desarrollo.

Versión 0.5.2

30 Sep 22:31
f13f333
Compare
Choose a tag to compare

Gracias a la solicitud de cambios en luisiturrios1/python-cfdiclient#42 por @alan196, hemos podido verificar que la documentación del servicio con respecto a la consulta por UUID está incorrecta.

  • El campo no se llama UUID, se llama Folio.
  • El campo RfcSolicitante no se debe omitir.
  • El campo TipoSolicitud no se debe omitir.
  • Los demás campos no deben existir.

Por lo tanto, se han hecho las correcciones necesarias para hacer la consulta por UUID.

Versión 0.5.1

28 Sep 17:46
b1ae79c
Compare
Choose a tag to compare

Se corrigen XML mal formados

Se hace una revisión del constructor de mensages firmados XML (FielRequestBuilder) y se corrigen aquellos lugares donde es posible inyectar caracteres no escapados XML.

El caso más normal es cuando el RFC solicitante contiene un ámpersand &, sin embargo se corrigió:

  • Verificación: @IdSolicitud y @RfcSolicitante.
  • Descarga: @IdPaquete y @RfcSolicitante.
  • General: X509IssuerName.

Gracias comunidad por reportar el problema en el canal de discord.

Versión 0.5.0

24 Sep 18:35
a834f4c
Compare
Choose a tag to compare

Esta actualización contiene cambios significativos en la forma de usar la librería, específicamente en la creación de objetos de consulta QueryParameters.
Lea las notas para Actualizar de 0.4.x a 0.5.x, y la documentación principal en el README.md.

A partir de septiembre 2022 el SAT incluye un archivo de nombre <UUID>_tercero.txt.
Este archivo contiene la información de terceros y se vincula con la información de Metadata por el UUID.

(Cierra #47)

Cambios incompatibles

$ roave-backward-compatibility-check --from v0.4.7
[BC] REMOVED: Method PhpCfdi\SatWsDescargaMasiva\Services\Query\QueryParameters#__construct() was removed
[BC] CHANGED: Method __construct() of class PhpCfdi\SatWsDescargaMasiva\Services\Query\QueryParameters visibility reduced from public to private
[BC] CHANGED: The number of required arguments for PhpCfdi\SatWsDescargaMasiva\Services\Query\QueryParameters#__construct() increased from 4 to 9
[BC] CHANGED: The parameter $rfcMatch of PhpCfdi\SatWsDescargaMasiva\Services\Query\QueryParameters#__construct() changed from string to a non-contravariant PhpCfdi\SatWsDescargaMasiva\Shared\DocumentType
[BC] CHANGED: The return type of PhpCfdi\SatWsDescargaMasiva\Services\Query\QueryParameters#getRfcMatch() changed from string to the non-covariant PhpCfdi\SatWsDescargaMasiva\Shared\RfcMatch
[BC] CHANGED: The number of required arguments for PhpCfdi\SatWsDescargaMasiva\Shared\ServiceEndpoints#__construct() increased from 4 to 5
[BC] REMOVED: Constant PhpCfdi\SatWsDescargaMasiva\RequestBuilder\FielRequestBuilder\FielRequestBuilder::USE_SIGNER was removed
[BC] CHANGED: The parameter $created of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\FielRequestBuilder\FielRequestBuilder#authorization() changed from string to a non-contravariant PhpCfdi\SatWsDescargaMasiva\Shared\DateTime
[BC] CHANGED: The parameter $expires of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\FielRequestBuilder\FielRequestBuilder#authorization() changed from string to a non-contravariant PhpCfdi\SatWsDescargaMasiva\Shared\DateTime
[BC] CHANGED: The parameter $start of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\FielRequestBuilder\FielRequestBuilder#query() changed from string to a non-contravariant PhpCfdi\SatWsDescargaMasiva\Services\Query\QueryParameters
[BC] REMOVED: Class PhpCfdi\SatWsDescargaMasiva\RequestBuilder\Exceptions\RfcIssuerAndReceiverAreEmptyException has been deleted
[BC] REMOVED: Class PhpCfdi\SatWsDescargaMasiva\RequestBuilder\Exceptions\PeriodEndInvalidDateFormatException has been deleted
[BC] REMOVED: Class PhpCfdi\SatWsDescargaMasiva\RequestBuilder\Exceptions\RfcIsNotIssuerOrReceiverException has been deleted
[BC] REMOVED: Class PhpCfdi\SatWsDescargaMasiva\RequestBuilder\Exceptions\PeriodStartInvalidDateFormatException has been deleted
[BC] REMOVED: Class PhpCfdi\SatWsDescargaMasiva\RequestBuilder\Exceptions\RequestTypeInvalidException has been deleted
[BC] REMOVED: Class PhpCfdi\SatWsDescargaMasiva\RequestBuilder\Exceptions\PeriodStartGreaterThanEndException has been deleted
[BC] REMOVED: Constant PhpCfdi\SatWsDescargaMasiva\RequestBuilder\RequestBuilderInterface::USE_SIGNER was removed
[BC] CHANGED: The parameter $created of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\RequestBuilderInterface#authorization() changed from string to a non-contravariant PhpCfdi\SatWsDescargaMasiva\Shared\DateTime
[BC] CHANGED: The parameter $expires of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\RequestBuilderInterface#authorization() changed from string to a non-contravariant PhpCfdi\SatWsDescargaMasiva\Shared\DateTime
[BC] CHANGED: The parameter $created of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\RequestBuilderInterface#authorization() changed from string to PhpCfdi\SatWsDescargaMasiva\Shared\DateTime
[BC] CHANGED: The parameter $expires of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\RequestBuilderInterface#authorization() changed from string to PhpCfdi\SatWsDescargaMasiva\Shared\DateTime
[BC] CHANGED: The parameter $start of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\RequestBuilderInterface#query() changed from string to a non-contravariant PhpCfdi\SatWsDescargaMasiva\Services\Query\QueryParameters
[BC] CHANGED: The parameter $start of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\RequestBuilderInterface#query() changed from string to PhpCfdi\SatWsDescargaMasiva\Services\Query\QueryParameters
[BC] CHANGED: Parameter 0 of PhpCfdi\SatWsDescargaMasiva\RequestBuilder\RequestBuilderInterface#query() changed name from start to queryParameters
24 backwards-incompatible changes detected

Versión 0.4.7

10 Aug 20:41
6230e98
Compare
Choose a tag to compare

No se estaba haciendo la codificación correcta de RfcReceptor, que provocaba un fallo cuando se solicitaba
una consulta donde el RFC recibido tuviera un ampersand &. Gracias @AfroMonkey por el descubrimiento.

Version 0.4.6

04 Apr 03:56
38746ca
Compare
Choose a tag to compare

Se corrige que el uso de la propiedad DOMElement::localName cuando podría ser null.

Version 0.4.5

22 Mar 18:21
98bbae2
Compare
Choose a tag to compare

Se compatibilizó la colocación de una consulta con el servicio de solicitud de descargas masivas para CFDI de Retenciones e Información de Pagos, anteriormente, al solicitar XML el valor del atributo TipoSolicitud debía ser CFDI y ahora debe ser Retencion.

Este cambio altera la API pública, pero no se considera un cambio que rompa la compatibilidad porque el cambio ocurrió sobre la clase QueryTranslator marcada como @internal.

Version 0.4.4

13 Mar 02:10
2ddc7c0
Compare
Choose a tag to compare

Se actualizó el servicio de solicitud de descargas masivas (consulta) a la versión 1.2 del SAT.
Esta actualización por el momento solo está sobre CFDI regulares, no sobre Retenciones e información de pagos.
En este último el servicio se encuentra caído.

Al parecer la actualización no se ha completado en el SAT, y ha estado inestable desde 2022-03-14.
Sin embargo, con esta actualización se compatibliza el servicio con el funcionamiento esperado.

Cambios en la solicitud

Se elimina el atributo RfcReceptor y se agrega el elemento RfcReceptores/RfcReceptor para especificar el RFC del receptor en la consulta.

CodEstatus 5006

Se agrega a la documentación de CodEstatus (clase StatusCode) el código 5006 - Error interno en el proceso que se supone sustituye al código 404 - Error no Controlado para el servicio de consulta.

Correcciones

Se agrega el método mágico MetadataItem::__isset(string $name): bool que no estaba contemplado.

Entorno de desarrollo

  • En las pruebas de integración, se hacen dos pruebas de solicitud consulta, una para emitidos y otra para recibidos.
  • Se actualizan los archivos de muestra en las comprobaciones unitarias.
  • Se agrega como dependencia la extensión de PHP mbstring.
  • Se refactoriza la clase interna Helpers::nospaces() para insertar un Line feed (LF) después de la especificación de XML.
  • En las pruebas de integración, se agrega el método ConsumeServiceTestCase::createWebClient() que devuelve un objeto GuzzleHttp\Client configurado correctamente con timeouts.
  • Se actualizan las herramientas del entorno de desarrollo.
  • CI: Se usan las rutas establecidas en el archivo de configuración de phpcs.

Ver issue #47 y pull request #48

Version 0.4.3

19 Feb 07:17
Compare
Choose a tag to compare
  • Se elimina método innecesario FielRequestBuilder::nospaces() y se usa en su lugar el método Helper::nospaces().
  • Se actualizaron las herramientas de desarrollo y se utiliza phive para administrarlas.
  • Se actualizaron los archivos de configuración de php-cs-fixer acorde a la última versión.
  • Se solventaron los issues de tipos encontrados por phpstan.
  • Se migró el proceso de integración continua de Travis CI a GitHub Workflows. Gracias Travis CI.
  • Se actualizó el archivo de licencia del proyecto. Feliz 2022.
  • Se cambia la rama principal de master a main.
  • Add SonarCloud integration.
  • Se elimina Scrutinizer CI. Gracias Scrutinizer.