Programación Específica > Diseño de Algoritmos

[Utilidad] Facturacion electronica Mexico

(1/3) > >>

edugza:
Hola Francisco esta excelente tu aportación lo único es que no se como obtienes el MD5 tengo una factura electrónica con todo y certificado y lo introduzco en el validador y me da el mismo MD5 que me da el openssl lo que si cambié fue que la cadena original en lugar de grabarla como UTF8 la puse como ANSI la cadena que estoy validando es:
||2.0|FAXA|051661|2006-11-20T08:50:48|2951|2006|ingreso|EL PAGO DE ESTA FACTURA (CONTRAPRESTACION) SE EFECTUARA EN UNA SOLA EXHIBICION SI POR ALGUNA RAZON NO FUERA ASI EMITIREMOS LOS COMPROBANTES DE LAS PARCIALIDADES RESPECTIVAS|43824.69|0|50398.39|FJC780315E91|FABRICA DE JABON LA CORONA S.A. DE C.V.|CARLOS B. ZETINA|80|INDUSTRIAL XALOSTOC|ECATEPEC DE MORELOS|ECATEPEC|MEXICO|MEXICO|55348|CARLOS B.ZETINA NO.80|XALOSTOC EDO. DE MEXICO|XALOSTOC EDO. DE MEXICO|EDO. DE MEXICO|MEXICO|55348|NWM9709244W4|NUEVA WAL-MART DE MEXICO SRL DE CV|NEXTENGO|78|STA. CRUZ ACAYUCAN|AZCAPOTZALCO|AZCAPOTZALCO|DISTRITO FEDERAL|MEXICO|2770|22|TEPEYAC 25P 400 G C/ENV|110.97|2441.34|11|ZOTE AZUL 25P 400 G.|110.97|1220.67|22|ZOTE BCO. 25P 400 G|110.97|2441.34|7|ZOTE BCO. 50P 200 G|110.97|776.79|44|ZOTE ROSA 25P 400 G|110.97|4882.68|6|ZOTE ROSA 50P 200 G|110.97|665.82|12|ROMA 4P 5 KGS|218.34|2620.08|24|ROMA 10P 2 KGS|219.74|5273.64|120|ROMA 10P 1 KG|111.29|13354.20|12|FOCA 10P 2 KGS|233.87|2806.38|10|BLANCA NIEVES 10P 2 KGS|201.47|2014.65|40|BLANCA NIEVES 10P 1 KG|102.15|4086.00|5|BRILOZA 10P 1 KG|102.15|510.75|6|FOCA 12B 1LT|121.73|730.35|IVA|15.00|6573.70|6573.70||

lo grabo en un archivo con el notepad como tipo ANSI
le aplico el OPENSSL

openssl dgst -MD5 ansi.txt
MD5(ANSi.txt)= 907327b350082d1d40e0f3787db973e8

este MD5 es el mismo que se obtiene en la siguiente liga:

wwww.lacorona.com.mx/fortiz/sat/xsl.php

Podrías explicarme como obtuviste tu MD5.

Saludos y nuevamente felicidades por tu excelente artículo.

F_Tanori:
Bueno es posible que algun caracter no imprimible este en tu archivo o la marca de final de archivo (EOF) he agregado una herramienta para quitar ese caracter he intentado utilizar solo linea de comando por eso he agregado mas aplicaciones de msdos las cuales no son mias en el archivo bat esta la direccion web de los respectivos autores yo solo las he juntado.

El Md5 que estaba ahi yo lo genere en PHP y era el mismo que me mostraba el validador.

Saludos

F_Tanori:
Olvidaba el formato de la cadena original debe estar en utf8 asi lo marca el procedimiento ademas no debe de contener saltos de linea ni espacio entre \"pipes\" porque logicamente eso alterara el hash

Saludos

aldhio:
Ola amigo en serio gracias por el aporte me sirvo bastante...pero sabes cual es el comando para generar el sello digital con openssl....mira tengo este..pero no me sale igual...
$digital_sign_command = \'C:\\OpenSSL-Win32\\bin\\openssl.exe dgst -md5 -sign C:/SAT/keys_space/SpaceAduanas1.pem -out C:/FoxServ/www/examples/space_facturacion/sellos/md5.txt C:/FoxServ/www/examples/space_facturacion/sellos/cadena_original.txt | C:\\OpenSSL-Win32\\bin\\openssl.exe enc -base64 -in C:/FoxServ/www/examples/space_facturacion/sellos/md5.txt -out C:/FoxServ/www/examples/space_facturacion/sellos/sello_base64.txt\';

yo lo hago en php

F_Tanori:
el Zip contine:
*  una version de  OpenSSL
*  un certificado (.CER) digital de prueba proporcionado por el SAT
*   una clave privada (.KEY) tambien proporcionada por SAT
*   contraseña de la clave privada en .TXT
*   una cadena original de ejemplo en UTF8  .TXT
*   el hash de la cadena en Md5 .TXT
*   una imagen con el procedimiento que describe el SAT
*   un archivo de s c r i p t de windows .CMD que genera el sello digital usando OpenSSL
*   un Sello valido y un acceso al validador en linea del SAT (utilizando el mismo certificado que incluye el zip)


Si el procedimiento es correcto segun lo describe SAT esto no deberia dar problemas sin embargo el sello generado por OpenSSL no es valido (segun el validador) pero he realizado pruebas con otro software en todos obtengo el sello que me da OpenSSL y si se le aplica verificacion da como correcto asi que estoy dudando de que el validador sea correcto o el proceso descrito por SAT no lo es y estan olvidando pasos!.

El otro metodo que he utilizado es PBCrypto en power builder 10 con las librerias

 Bouncy Castle (Java)

Saludos

[16 Jul 2010]==============================

He agregado algunas otras herramientas que pueden ser de utilidad ya que se esta usando la linea de comando

* aplicacion para remover la marca EOF del archivo
* aplicacion para generar el hash MD5
* aplicacion para quitar el nombre del archivo que le coloca MD5.exe o el propio OpenSSL dgst -md5









Autor: Francisco Tanori / Foros

http://www.ingenieria-soporte.com

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa