Página 2 de 6
Re: Como validar "a mano" un sello digital
Publicado: Mar Sep 21, 2010 11:36 am
por ramonzea
para que puedas extraer la cadena original del XML solo tienes que anexar la segunda linea en en este:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="cadenaoriginal_2_0-1.xslt"?>
<Comprobante xmlns="
http://www.sat.gob.mx/cfd/2"
luego lo visualizas en IE y te aparece la cadena original.
El archivo cadenaoriginal_2_0-1.xsl lo puedes bajar de la pagina del SAT.
Lo que no he podido hacer es cachar esa cadena en un archivo para usarla para determinado proceso.
Saludos.
Re: Como validar "a mano" un sello digital
Publicado: Mar Sep 21, 2010 2:37 pm
por lordcold
Saludos.
Gracias por tu respuesta, ya logré el "Verification Ok".
Mi problema estaba en mi archivo con la cadena original, no lo estaba generando en utf-8.
Mil gracias.
Re: Como validar "a mano" un sello digital
Publicado: Sab Oct 09, 2010 3:27 pm
por en_gamboa
Hola a todos, estoy tratando de validar la cadena con digestion md5, tome un ejemplo que aparece arriba pero al hacer la digestion sale diferente el resultado, tome esta cadena de la pagina del sat:
||2.0|ABCD|2|03-05-2010T14:11:36|49|2008|INGRESO|UNA SOLA EXHIBICIÓN|2000.00|00.00|2320.00|PAMC660606ER9|CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS|PRUEBA SEIS|6|6|PUEBLA CENTRO|PUEBLA|PUEBLA|PUEBLA||MÉXICO|72000|CAUR390312S87|ROSA MARÍA CÁLDERON URIEGAS|TOPOCHICO|52|JARDINES DEL VALLE|NUEVO LEÓN|MEXICO|95465|1.00|SERVICIO|01|ASESORIA FISCAL Y ADMINISTRATIVA|2000.00|IVA|16.00|320.00||
utf-8
||2.0|ABCD|2|03-05-2010T14:11:36|49|2008|INGRESO|UNA SOLA EXHIBICIÓN|2000.00|00.00|2320.00|PAMC660606ER9|CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS|PRUEBA SEIS|6|6|PUEBLA CENTRO|PUEBLA|PUEBLA|PUEBLA||MÉXICO|72000|CAUR390312S87|ROSA MARÃA CÃLDERON URIEGAS|TOPOCHICO|52|JARDINES DEL VALLE|NUEVO LEÓN|MEXICO|95465|1.00|SERVICIO|01|ASESORIA FISCAL Y ADMINISTRATIVA|2000.00|IVA|16.00|320.00||
digestion md5
C:\Sistema\configcfd\OpenSSL dgst -md5 utf8.txt >md5.txt =
MD5(utf8.txt)= 0bf83f8e26c6406d0ba4ead67348d5d6
cuando la digestion que deberia dar es:
03abe73de4ca428816de4af6f6f737a7
Espero que alguien tenga la respuesta, Gracias.
Re: Como validar "a mano" un sello digital
Publicado: Dom Oct 10, 2010 6:11 pm
por mauricio
Hola...
El paso a UTF-8 no debería cambiarte los caracteres acentuados. ¿Como lo estas haciendo?...
En mi equipo, para la primer cadena original que muestras:
Código: Seleccionar todo
||2.0|ABCD|2|03-05-2010T14:11:36|49|2008|INGRESO|UNA SOLA EXHIBICIÓN|2000.00|00.00|2320.00|PAMC660606ER9|CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS|PRUEBA SEIS|6|6|PUEBLA CENTRO|PUEBLA|PUEBLA|PUEBLA||MÉXICO|72000|CAUR390312S87|ROSA MARÍA CÁLDERON URIEGAS|TOPOCHICO|52|JARDINES DEL VALLE|NUEVO LEÓN|MEXICO|95465|1.00|SERVICIO|01|ASESORIA FISCAL Y ADMINISTRATIVA|2000.00|IVA|16.00|320.00||
El MD5 que me resulta es:
Para poder ayudarte, hay que probar con los mismos datos, publique un artículo paso a paso con datos de prueba, archivos necesarios y resultados esperados aquí:
http://www.universolibre.org/node/13
Verifica si obtienes los mismos datos...
Saludos
Re: Como validar "a mano" un sello digital
Publicado: Mar Oct 12, 2010 4:43 pm
por condor0086
El cambiar a UTF8 sí cambia los caracteres acentuados en una cadena. Para imprimir la cadena original en pantalla o en papel hay que convertirla a ASCII o similar, pero al almacenarla debe almacenarse como UTF8 y para obtener el digest también hay que hacerlo con la cadena en UTF8.
Saludos.
Re: Como validar "a mano" un sello digital
Publicado: Mar Oct 12, 2010 6:30 pm
por mauricio
Hola...
Prueba en Python:
Código: Seleccionar todo
>>> cadena = 'áéíóúñÁÉÍÓÚÑ'
>>> print cadena
áéíóúñÁÉÍÓÚÑ
>>> u = unicode( cadena, "utf-8" )
>>> print u
áéíóúñÁÉÍÓÚÑ
>>>
Saludos
Re: Como validar "a mano" un sello digital
Publicado: Mié Oct 13, 2010 8:19 am
por Dado
mauricio escribió:Hola...
Prueba en Python:
Código: Seleccionar todo
>>> cadena = 'áéíóúñÁÉÍÓÚÑ'
>>> print cadena
áéíóúñÁÉÍÓÚÑ
>>> u = unicode( cadena, "utf-8" )
>>> print u
áéíóúñÁÉÍÓÚÑ
>>>
Saludos
No conozco python pero algo esta mal en ese codigo, el UTF8 si deberia cambiar a caracteres raros las letras acentuadas.
Hay un convertidor en linea, puedes
checarlo aqui y verificar que las letras y numeros no los convierte, pero las acentuadas y las eñes si.
Re: Como validar "a mano" un sello digital
Publicado: Mié Oct 13, 2010 8:36 am
por Dado
Sabes cual es el "problema" con el UTF8 y las aplicaciones?
La cosa esta en que muchas aplicaciones y rutinas de programacion son "compatibles con UTF8" y detectan automaticamente esos caracteres y HACEN LA CONVERSION de forma transparente, aveces tan silenciosamente que ni nos damos cuenta de lo que pasa "tras bambalinas".
Mira, aqui esta un ejemplo clarisimo, genere un archivo XML con caracteres UTF8 "raros" y si lo abro en el internet explorer o en el notepad aparece muy "bonito" :

- xSin título.jpg (71.74 KiB) Visto 24320 veces
PERO CHECA cuando lo abro con un visor HEXADECIMAL, que me muestra exactamente como esta grabado en disco :

- Sin título.jpg (98.75 KiB) Visto 24320 veces
Como puedes ver, en disco esta grabado "rarisimo", es decir, en formato UTF8, si puedes notar ademas, cada letra acentuada se lleva dos bytes, por ejemplo la é se graba como #c3 #a9
Anexo el archivo para que hagas tus propias pruebas, pero recuerda, si quieres ver "las tripas" de la conversion UTF8 debes usar un editor hexadecimal o un editor de disco o cualquier cosa que NO HAGA la conversion automatica.
Re: Como validar "a mano" un sello digital
Publicado: Mié Oct 13, 2010 9:11 am
por mauricio
Hola...
Si lo se, se que UTF-8 son meros bytes, de eso no hay discusión, el problema con el compañero, es que
creo que lo esta haciendo mal. Precisamente porqué se que la muchos de los sistemas que usamos en español hacen uso correcto de UTF-8, "deberíamos ver bien su cadena, pero en fin, que cada quien haga sus validaciones... y sus deducciones...
Código: Seleccionar todo
>>> u'áéíóúÁÉÍÓÚÑñ'
u'\xe1\xe9\xed\xf3\xfa\xc1\xc9\xcd\xd3\xda\xd1\xf1'
>>> unicode('áéíóúÁÉÍÓÚÑñ','utf-8')
u'\xe1\xe9\xed\xf3\xfa\xc1\xc9\xcd\xd3\xda\xd1\xf1'
Saludos
Re: Como validar "a mano" un sello digital
Publicado: Mié Oct 13, 2010 9:32 pm
por en_gamboa
Hola mauricio me sirvio muy bien los datos que publicaste en tu articulo
http://www.universolibre.org/node/13
incluso ya hise pruebas con mis propias facturas y tube exito con el verificador del sat, es una manera totalmente diferente a como yo lo hacia, pero mas simple y ahora si funciono sin problemas, muchas gracias.