Factura Electrónica – ¿Cómo generar un CFDI con PHP y OpenSLL?

CFDI

El sistema de Administración Tributaria en México sigue trabajando por mejorar la seguridad y las opciones de facturación electronica para sus contribuyentes, lo que esta ocasionando que a partir del 2011 la forma de hacerlo haya cambiado sustancialmente.

A continuación te muestro los cambios más importantes al respecto.

¿Cómo generar la cadena Original y el Sello Digital?

Anteriormente utilizabamos el comando con las instrucciones que puse aqui e iniciaba así:

openssl dgst -md5

A partir del 2011 el cambio debe ser este:

openssl dgst -sha1

Para la generación del sello digital también antes utilizabamos el archivo cadena_original_2.0.xslt ahora debemos usar la versión 3.0, misma que podremos descargar de esta liga.

Cualquier duda en los comentarios, consultando todos mis temas que tengo de factura electrónica



Escrito por

Ing. En computación y WebDeveloper de profesión. Empresario y blogger de vocación, Libre y diferente por convicción. + de mi en xataka.com.mx y solucionesim.net/blog

6 pensamientos en “Factura Electrónica – ¿Cómo generar un CFDI con PHP y OpenSLL?

  1. Hola Carlos, he desarrollado un poco en PHP con MySQL actualmente tengo mi propio emisor de CFDi en PHP con OpenSSL quiero ver si te unes a un proyecto para generar un PAC y competir con buzon e y Tralix todas esas empresas contactame a mi mail por cualquier cosa

    ¿Te gusta este comentario? Thumb up 0 Thumb down 0

  2. Hola muy buenas tardes Carlos, pase a visitar tu pagina y me parecio de lo mas interesante. Estoy de construyendo una aplicacion en Java para validar los CFDI .. sabes tu si existe un WEBservice del sat para esto?

    ¿Te gusta este comentario? Thumb up 0 Thumb down 0

  3. Que tal Carlos, Encuentro la informacion en tu sitio bastante util, estoy desarrollando un pequeño sistema para facturas electronicas en PHP, pero creo que me he estancado:
    uso los comandos asi:

    $cadena = utf8_encode($cadenaOrg);//pasar cadena original a utf8
    $cadena=sha1($cadena);//pasarle el sha1
    $fp = fopen (“mmmdffi”,”w+”);//guardar a archivo mmmdffi
    fwrite($fp,$cadena);
    fclose($fp);
    //estos son los comandos que vi en tu pagina
    $hola1=shell_exec(‘”‘.$rutaSSL.'” dgst sign afo891004nh1_1012201704s.key.pem mmmdffi -out fxxxorg’);
    $hola2=shell_exec(‘”‘.$rutaSSL.'” enc -in fxxxorg -base64 -A -out xaHkjs’);
    //el sello queda guardado en el archivo xaHkjs
    $fh = fopen(“xaHkjs”, “rb”);
    $data = fread($fh, 4096);
    return $data;//regresar el contenido del archivo

    Asi lo tengo, la cosa es que el xml me dice que esta correcto pero el sello es invalido, y comparando las cadenas originales estan igual en la factura y el sitio del validador, podras orientarme en este predicamento?

    de antemano Gracias!!

    ¿Te gusta este comentario? Thumb up 0 Thumb down 0

    • se me olvido añadir, que me dieron de el sat una llave (.key)y un certificado (.pem), yo converti la llave a .key.pem con unos comandos de openssl, no se si esto haya estado bien, si me puedes dirigir desde este punto te lo agradecere

      ¿Te gusta este comentario? Thumb up 0 Thumb down 0

  4. Pingback: Validadores Oficiales del SAT para factura electronica - Negocios Web | CarlosNuel

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>