1
« en: Miércoles 4 de Agosto de 2010, 01:52 »
Amigo plussmx<br><br>
te comparto el código PHP para la generación del sello digital:
<?php
/* Definimos donde esta el key en formato PEM */
$key=\'aaa010101aaa_CSD_01.key.pem\';
/* Introducimos la cadena original provista por el SAT */
$cadenaoriginal=\'||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||\';
/* Transformamos la cadena a UTF8 */
$cadena = utf8_encode($cadenaoriginal) ;
/* Hacemos un echo para ver la cadena en UTF8 (no es necesario pero es para ir paso por paso) */
echo \'<h5>UTF8</h5>\'.$cadena;
/* Hacemos un echo para ver la cadena en MD5 aquí obtenemos el mismo resultado que el SAT */
$cadena=md5($cadena);
echo \'<h5>MD5</h2>\'.$cadena;
/* Aquí lo que hacemos es escribir un txt (md5.txt) con la digestión MD5 para usarlo en el sellado */
$fp = fopen (\"md5.txt\" \"w+\");
fwrite($fp $cadena);
fclose($fp);
/* Aquí sellamos con el MD5 con el key para obtener el sello y guardarlo en sello.txt */
$hola1=shell_exec(\'\"C:\\Archivos de programa\\GnuWin32\\bin\\openssl.exe\" dgst -out C:\\wamp\\www\\en-trega\\fiscal-soft\\Firma.binario -sign C:\\wamp\\www\\en-trega\\fiscal-soft\\aaa010101aaa_CSD_01.key.pem C:\\wamp\\www\\en-trega\\fiscal-soft\\md5.txt\');
$hola2=shell_exec(\'\"C:\\Archivos de programa\\GnuWin32\\bin\\openssl.exe\" enc -in C:\\wamp\\www\\en-trega\\fiscal-soft\\Firma.binario -a -A -out C:\\wamp\\www\\en-trega\\fiscal-soft\\Firma.base64\');
/* Aquí mostramos el sello que en teoría debería ser el correcto */
echo \"<h5>Seal</h5>\";
//$hello=readfile(\"sello.txt\");
$hello=readfile(\"Firma.base64\");
echo \"<br>\".$hola1.\" \".$hola2.\" \".$hello.\"<br>\";
?>
Saludos!!