feimx/csd

Este paquete te permite encriptar, validar y convertir archivos .cer y .key en .pem para la facturacion electronica en méxico

v1.0 2018-04-16 21:25 UTC

This package is auto-updated.

Last update: 2024-05-20 04:04:21 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