feimx / csd
Este paquete te permite encriptar, validar y convertir archivos .cer y .key en .pem para la facturacion electronica en méxico
Requires
- php: >=5.3.0
- nesbot/carbon: ~1.14
Requires (Dev)
- phpspec/phpspec: ~2.0
This package is auto-updated.
Last update: 2024-10-20 04:53:05 UTC
README
Este paquete te permite encriptar, validar y convertir archivos .cer y .key en .pem para la facturacion electronica en méxico.
Introducción
Csd provee un mecanismo para convertir tus archivos .cer y .key a .pem, los necesarios para poder facturar electronicamente en méxico.
Asi mismo te permite encriptar tus llaves (.key) a .der pasando la contraseña que necesites.
require 'vendor/autoload.php'; use JorgeAndrade\Csd; use JorgeAndrade\Exceptions\CsdException; $cer = getcwd() . "/csds/aad990814bp7_1210261233s.cer"; $key = getcwd() . "/csds/aad990814bp7_1210261233s.key"; $rfc = "AAD990814BP7"; $pass = "12345678a"; $validar = new Csd($cer, $key, $rfc, $pass, $path = getcwd() . "/csds/"); try { $validar->convertCerToPem(); $validar->convertKeyToPem(); } catch (CsdException $e) { var_dump($e->getMessage()); }
Instalación
Simplemente instala el paquete con composer:
composer require jorgeandrade/csd
Una vez composer termine de instalar el paquete simplemente importa el paquete y crea una nueva instancia pasando los parametros correspondientes:
require 'vendor/autoload.php'; use JorgeAndrade\Csd; use JorgeAndrade\Exceptions\CsdException; $cer = getcwd() . "/csds/aad990814bp7_1210261233s.cer"; $key = getcwd() . "/csds/aad990814bp7_1210261233s.key"; $rfc = "AAD990814BP7"; $pass = "12345678a"; //contraseña de la llave privada $path = getcwd() . "/csds/"; //este parametro es opcional, por defecto usa **getcwd() . "/csds/"** $validar = new Csd($cer, $key, $rfc, $pass, $path);
Uso
Convertir, encryptar, validar y obtener es extremadamente facil. Si algo sale mal las funciones arrojaran una exception de tipo JorgeAndrade\Exceptions\CsdException.
Convirtiendo CER en PEM
$validar->convertCerToPem();
Convirtiendo KEY en PEM
$validar->convertKeyToPem();
Validar vigencia del csd
Si todo sale bien retornara un array con la fecha inicial y la final de validez del certificado, cada uno extiende de la clase DateTime.
$periodo = $validar->verifyValidityPeriod(); var_dump($periodo); /** array(2) { ["fecha_inicial"]=> object(DateTime)#4 (3) { ["date"]=> string(26) "2012-10-26 19:22:43.000000" ["timezone_type"]=> int(2) ["timezone"]=> string(3) "GMT" } ["fecha_final"]=> object(DateTime)#5 (3) { ["date"]=> string(26) "2016-10-26 19:22:43.000000" ["timezone_type"]=> int(2) ["timezone"]=> string(3) "GMT" } } **/
Encriptar KEY.PEM en DER
Para poder encryptar, primero necesitas convertir de key en pem
$validar->convertKeyToPem(); $validar->encryptPemInToDer($pass);
Verificar que es un CSD valido
$check = $validar->verifyValidCsd(); //(bool)
Obtener numero de certificado
$no_certificado = $validar->getNoCertificado();
Licencia
Csd programa de codigo abierto bajo la licencia MIT license