Una implementación de los requisitos, procesos y estándares de la investigación electrónica de Arabia Saudita Zatca en PHP.
Si planea usar el módulo EGS incorporado para generar claves y CSR. El módulo EGS en el paquete depende de que OpenSSL esté instalado en el sistema en el que se ejecuta. Se está utilizando para generar un par de claves ECDSA utilizando la curva secp256k1 . también para generar y firmar una CSR.
Todas las demás partes del paquete funcionarán bien sin OpenSSL . (es decir, admite react-nativo y otros marcos)
Todos los futuros principales necesarios para incorporar un nuevo EGS. Crear, firmar e informar una factura de impuestos simplificada actualmente es compatible.
composer update o composer install para instalar dependencias.php -S localhost:8000Ver ejemplo completo en la fase-1.php y fase-2.php.
// New Invoice and EGS Unit
$ egs = new ZATCA EGS ( $ egsUnit );
$ egs -> production = false ;
// New Keys & CSR for the EGS
list ( $ privateKey , $ csr ) = $ egs -> generateNewKeysAndCSR ( ' solution_name ' );
// Issue a new compliance cert for the EGS
list ( $ requestId , $ binarySecurityToken , $ secret ) = $ egs -> issueComplianceCertificate ( ' 123345 ' , $ csr );
// Sign invoice
list ( $ signedInvoiceString , $ invoiceHash , $ qr ) = $ egs -> signInvoice ( $ invoice , $ egsUnit , $ binarySecurityToken , $ privateKey );
// Check invoice compliance
echo ( $ egs -> checkInvoiceCompliance ( $ signedInvoiceString , $ invoiceHash , $ binarySecurityToken , $ secret ));
echo PHP_EOL ; zatca-qr está influenciado por zatca-xml-php que no está afiliado, asociado, autorizado, respaldado por o de alguna manera oficialmente conectado con Zatca (Zakat, Autoridad de Tax y Aduanas), o cualquiera de sus subsidiarias o sus afiliados. El sitio web oficial de Zatca se puede encontrar en https://zatca.gov.sa.
Todas las contribuciones son apreciadas.
No planeo apoyar Tax Invoices (no las simplificadas). Si alguien quiere abordar esa parte.