Download the PHP package platinum-place/php-dgii-xml-signer without Composer

On this page you can find all versions of the php package platinum-place/php-dgii-xml-signer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-dgii-xml-signer

PHP DGII XML Signer 🇩🇴

Latest Version on Packagist Total Downloads


Características


Créditos y Base Técnica

Este proyecto se basa directamente en las especificaciones del Instructivo sobre Facturación Electrónica: Firmado de e-CF publicado por la DGII.

Para la implementación técnica, utilizamos como base la librería selective/xmldsig. Esta librería es la recomendada (e ilustrada) por la DGII en sus manuales para desarrolladores PHP. Sin embargo, para lograr una validación exitosa en los servidores oficiales, es necesario realizar ajustes manuales que no están detallados de forma explícita en la documentación general.


Aclaraciones Importantes

Aunque la documentación de la DGII proporciona ejemplos, existen detalles críticos en la implementación de la librería base que deben ajustarse para que el XML sea aceptado.

Caso 1: Modificaciones en XmlSigner.php

Según el instructivo de la DGII, es imperativo modificar la clase XmlSigner.php de la librería selective/xmldsig para forzar una canonicalización sin comentarios.

  1. Ajuste de Canonicalización General: En la clase XmlSigner, se debe asegurar que el método C14N se llame con los parámetros correctos para excluir comentarios:

  2. Ajuste en SignedInfo (Línea 179 aprox.): Para la firma del bloque SignedInfo, se requiere una normalización aún más estricta:

Nota: Este paquete ya incluye estas correcciones aplicadas de forma nativa en su clase XmlSigner, por lo que no necesitas modificar nada en tu carpeta vendor.

Caso 2: Compatibilidad con OpenSSL (Error RC2-40-CBC)

La documentación menciona que la librería fue probada en PHP versiones 8.1.12 y 8.1.13, si utilizas el paquete en una version mas reciente, como 8.4 o 8.5, la validación falla debido a que el cifrado RC2-40-CBC utilizado en los archivos .p12 cambió en las versiones más recientes de OpenSSL, que normalmente vienen con PHP 8.2 en adelante.

Habilitar cifrado "legacy"

  1. Edita el archivo openssl.cnf con el siguiente comando:

  2. Busca la sección [default_sect] y cámbiarla a:

  3. Luego, busca la sección [legacy_sect] y cámbiarla a:

  4. Por último, busca la sección [provider_sect] y cámbiarla a:

  5. Finalmente, guardar los cambios, salir del archivo y reiniciar el entorno.

Instalación


Uso rápido


Desarrollo y Contribución

Este proyecto está abierto a contribuciones para mantenerse al día con los estándares de la DGII.


Soporte y Consultoría

Si necesitas asistencia técnica con la implementación de este paquete o tienes dudas generales sobre el ecosistema de Facturación Electrónica en la República Dominicana, puedes contactarme directamente.

Ofrezco servicios de consultoría especializada para empresas que buscan certificar sus sistemas ante la DGII.

Recursos Adicionales


⚖️ Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.


All versions of php-dgii-xml-signer with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
ext-dom Version *
ext-openssl Version *
selective/xmldsig Version ^3.1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package platinum-place/php-dgii-xml-signer contains the following files

Loading the files please wait ...