Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Factura Electronica México (https://www.clubdelphi.com/foros/showthread.php?t=66807)

Neftali [Germán.Estévez] 22-07-2010 11:15:50

Cita:

Empezado por dado (Mensaje 371154)
Nota para este honorable foro de Club Delphi. Se que puede ser mal visto el tratar de desviar este hilo a otro lado. Pero creo que esta pregunta ya no cae dentro de "como programo en Delphi esto o aquello......".

Como podran ver en la respuesta que ofrezco "alla" es mas bien un tramite administrativo que debemos hacer con la Secretaria de Hacienda.

En absoluto Dado.
Lo que no está permitido es hacer publicidad, o en todo caso sería desviar la conversación a otro lugar (tal vez eso sería poco ético) y hay quien a veces lo ha hecho con "mala intención"; Pero el hecho de añadir un link a cualquier hilo (de otro foro o de otra página web), no tiene que ser (y de hecho no lo es) ningun problema.
No hay ninguna norma que marque exclusividad, al contrario, compartir enlaces, links, páginas,... en un hilo, lo enriquecen más.

Un saludo.

alpha123 22-07-2010 19:10:51

Como obtienen los datos del archivo .cer ?
 
Hola a todos, de casualidad alguien esta utilizando otro metodo para obtener del certificado los datos (NoCertificado, Vigencia Incial y Final, archivo PEM, etc) que no sea el bat que llama al OpenSSL (no se, tal vez con componentes como LockBox o algun otro)... Por un lado, no me gusta que al correr el bat que ejecuta los comandos del OpenSSL, Windows me pregunta que si estoy deacuerdo en ejecutar este archivo, le de al boton de Aceptar, pues como que se ve mal. Por otro lado, el dejar ahi el archivo PEM que presenta en plano tu certificado no me parece seguro. Como ven?

vieckthor.fox 31-07-2010 11:07:54

Hola Felipe! En que formato está el archivo?
 
Cita:

Empezado por felipep (Mensaje 361264)
Yo guardé el post de uamero para futura referencia

Se los anexo en dydtelcomDOTcom/foroDOTzip

Ya lo bajé, pero NO lo pude leer.

Gracias de antemano por el aporte!

vieckthor.fox 31-07-2010 22:09:07

El Documento que nos facilita "felipep" se puede leer con Word o similar...
 
... y la info de interés está a partir de las "páginas" 490-510.

Espero y a alguien le sea de utilidad.

Salu2!

P.D. Es el código borrado por "uamero".

Eso de "uamero" será por lo de las "uamas"? ; )

LordRiper 06-08-2010 21:25:40

Cita:

Empezado por dado (Mensaje 369244)
Oscar ::::

Si, de hecho la idea principal de mi ValidaCFD es que pueda ser usado por todo el publico PARA RECIBIR FACTURAS, exactamente lo que tu estas haciendo.

Para validar el sello.....es un proceso largo pero sencillo (especialmente sencillo cuando sabes como hacerlo je je je).

Te doy "la punta de la madeja", te toca desentrañar todo el desarrollo.

1. Tomas la cadena "Certificado" de tu XML, la DIVIDES en lineas de 64 caracteres cada una, despues le agregas el encabezado -----BEGIN CERTIFICATE----- y el pie -----END CERTIFICATE----- (el numero de guiones y la frase debe ser EXACTA)

2. Grabas ese certificado en un archivo, digamos "certificado.PEM" (no voy a explicar muchos detalles, pero donde veas negrillas es porque hay informacion que debes estudiar si quieres saber que esta pasando)

3. Toma la cadena "Sello" de tu XML, la DIVIDES en lineas de 64 caracteres y la grabas en archivo con nombre digamos "sello.txt"

4. Generas la cadena original (esta te la tienes que aventar "a mano", es decir, no esta en el XML) y la grabas en un archivo, digamos "cadena.txt" IMPORTANTE no se te olvide grabarla codificada con UTF8 (ver UTF8ENCODE de Delphi)

5. Ejecutas lo siguiente :

openssl x509 -in "cert.PEM" -pubkey -noout >pubkey.txt
(para obtener la llave publica)

openssl enc -base64 -d -in "sello.txt" >sellobin.txt
(para pasar el sello de base64 a binario)

openssl dgst -md5 -verify "pubkey.txt" -signature "sellobin.txt" "cadoriginal.txt" >resultado.txt
(aqui esta toda la magia, en el archivo "resultado.txt" tienes......el resultado)

entonces esa es la unica manera de obtener la leyenda de "El Sello es Valido"?? no hay ninguna otra opcion??

segun lo que aparece en: http://www.lacorona.com.mx/fortiz/sa...p#verificacion lo unico que tendriamos que hacer es volver a sellar la cadena original con el certificado incluido en la misma factura ¿no?

dado 07-08-2010 00:50:44

Cita:

Empezado por LordRiper (Mensaje 372854)
entonces esa es la unica manera de obtener la leyenda de "El Sello es Valido"?? no hay ninguna otra opcion??

segun lo que aparece en: http://www.lacorona.com.mx/fortiz/sa...p#verificacion lo unico que tendriamos que hacer es volver a sellar la cadena original con el certificado incluido en la misma factura ¿no?

Como en tooodo lo de programacion, siempre vas a encontrar varias formas de hacer lo mismo, en este caso, de verificar.

En mi caso solo conozco la que menciono, por eso no habia contestado tu mensaje, PERO, creo que mi estimado Fernando Ortiz (de la corona) esta vez si se equivoco en los terminos.

Es IMPOSIBLE* volver a firmar la factura para ver si esta bien, el dice :

Cita:

Ahora volvemos a 'firmar' pero con la llave publica y verificamos que el sello obtenido coincida con el enviado.
[web@web sat]$ xsltproc cadena_original.xsl fact.xml | openssl dgst -md5 -verify 00001000000000823747.cer.pem -signature sello
Verified OK
él dijo......

openssl dgst -md5 -verify 00002020.cer.pem -signature sello

yo "dije".......

openssl dgst -md5 -verify "pubkey.txt" -signature "sellobin.txt" "cadoriginal.txt" >resultado.txt

Como puedes ver es lo mismo, solo que mas revuelto.

*IMPOSIBLE....bueno, no imposible, pero para volver a firmar un CFD necesitas que te proporcionen la (secreta) llave privada, y no creo que NADIE quiera darte su llave privada para "volver a firmar" y validar el CFD.

Lo que dice Fernando Ortiz de La Corona, no esta bien "dicho", no puedes volver a firmar el CFD con la llave publica, es simple logica, si eso fuera posible entonces cualquiera podria sellar una factura y hacerla pasar por buena.

AzidRain 07-08-2010 02:22:14

Solo para aportar un poco más al hilo ya que a todo interesado en el tema le va servir coloco los siguientes links:

El SAT ya tiene disponibles herramientas para validar los CFDs, tanto en línea como como aplicación de escritorio

Este es uno
Y este otro

También desarrollo una aplicación web para emitir CFDs y está disponible de manera gratuita aquí, inclusive se puede acceder a una aplicación de prueba.

No recuerdo si ya apareció en el hilo, pero uno de los requisitos del SAT para el contribuyente es que "lleve su contabilidad mediante un sistema de software" y que el registro contable se haga de manera "simultánea" en dichos sistema aunque más adelante especifica que se puede realizar dicho registro hasta 24 horas después de elaborado el CFD.

Aquí hay un blog que habla del tema tanto por el lado del software (aunque sin llegar a detalles de programación) como del lado fiscal.

Czar Itoh 11-08-2010 03:11:49

Cita:

Empezado por alpha123 (Mensaje 371216)
Hola a todos, de casualidad alguien esta utilizando otro metodo para obtener del certificado los datos (NoCertificado, Vigencia Incial y Final, archivo PEM, etc) que no sea el bat que llama al OpenSSL (no se, tal vez con componentes como LockBox o algun otro)... Por un lado, no me gusta que al correr el bat que ejecuta los comandos del OpenSSL, Windows me pregunta que si estoy deacuerdo en ejecutar este archivo, le de al boton de Aceptar, pues como que se ve mal. Por otro lado, el dejar ahi el archivo PEM que presenta en plano tu certificado no me parece seguro. Como ven?

Existen unas herramientas hechas por ELDOS.com en particular Secure Black Box VCL Edition que no son otra cosa mas que las funciones del OpenSSL llevadas a una libreria en éste caso para Delphi. De esta manera te evitas estar llamando un .bat

En cuanto a que windows te esté preguntando cada vez que ejecutas el bat, supongo que quizas estas utilizando WVista o W7, de ser así, es cuestión de derechos que tiene la misma cuenta, aun y cuando 'aparentemente es un usuario administrador'.

Respecto a lo que comentas de dejar ahi el PEM, en efecto, es un riesgo de seguridad. Podrias generar el archivo PEM cada vez que emitieras una factura, y pedirle al usuario la contraseña por cada vez que se emita un CFD, esto con las consecuencias de tiempo que ya te puedes imaginar, amen de lo tedioso que puede llegar a ser para tu usuario.

nejamube 11-08-2010 05:15:11

TE recomiendo este http://www.cryptosys.net/rijndael.html
 
Cita:

Empezado por Czar Itoh (Mensaje 373144)
Existen unas herramientas hechas por ELDOS.com en particular Secure Black Box VCL Edition que no son otra cosa mas que las funciones del OpenSSL llevadas a una libreria en éste caso para Delphi. De esta manera te evitas estar llamando un .bat

En cuanto a que windows te esté preguntando cada vez que ejecutas el bat, supongo que quizas estas utilizando WVista o W7, de ser así, es cuestión de derechos que tiene la misma cuenta, aun y cuando 'aparentemente es un usuario administrador'.

Respecto a lo que comentas de dejar ahi el PEM, en efecto, es un riesgo de seguridad. Podrias generar el archivo PEM cada vez que emitieras una factura, y pedirle al usuario la contraseña por cada vez que se emita un CFD, esto con las consecuencias de tiempo que ya te puedes imaginar, amen de lo tedioso que puede llegar a ser para tu usuario.

Hola, te recomiendo esta DLL, en cuestion de minutos estas facturando.

http://www.cryptosys.net/pki/satmexico.html

Czar Itoh 11-08-2010 16:40:21

cryptosys
 
Es cierto, también las evaluamos en su momento si mal no recuerdo es un grupo de Australianos quienes la desarrollarons ...jaja irónico no!

Son muy fáciles de usar y estan 100% enfocadas a las funciones que el SAT solicita, es un desarrollo a la medida. El unico inconveniente que le vimos es que es una 'caja negra' uno como programador pierde el control, cosa que no sucede con otras herramientas en las que uno tiene el 'control' de lo que se hace, pero de ahi en más, son excelentes las de cryptosys.

IcebergDelphi 12-08-2010 02:34:38

Sobre Crytosys
 
Cita:

Empezado por nejamube (Mensaje 373147)
Hola, te recomiendo esta DLL, en cuestion de minutos estas facturando.

http://www.cryptosys.net/pki/satmexico.html


Hola Nejamube, he estado leyendo todo el lio de la Factura electronica y baje un codigo en Lazarus desde Delphiaccess , estoy en estos momentos pasandolo a Delphi, pero me intereso mucho lo de Cryptosys,que segun leo esta enfocado al SAT pero aun no logro comprender,me imajino que esta es una Dll, entonces mi pregunta es si yo uso esta dll, practicamente viene todo para hacer lo de la factura electronica sin meter tanto codigo? saludos y gracias.
:confused:

nejamube 12-08-2010 04:55:22

Asi es
 
Cita:

Empezado por IcebergDelphi (Mensaje 373266)
Hola Nejamube, he estado leyendo todo el lio de la Factura electronica y baje un codigo en Lazarus desde Delphiaccess , estoy en estos momentos pasandolo a Delphi, pero me intereso mucho lo de Cryptosys,que segun leo esta enfocado al SAT pero aun no logro comprender,me imajino que esta es una Dll, entonces mi pregunta es si yo uso esta dll, practicamente viene todo para hacer lo de la factura electronica sin meter tanto codigo? saludos y gracias.
:confused:


Efectivamente, con esta DLL no tendrias que escribir todos los procedimientos para la factura electronica, solo mandas llamar las funciones. Lo que tendrias que hacer seria adecuar tu software para la factura electronica, el informe mensual al SAT, reporte de folios utilizados y cancelados, entre otras cosas.

nuk3zito 13-08-2010 16:37:04

Cita:

Empezado por IcebergDelphi (Mensaje 373266)
Hola Nejamube, he estado leyendo todo el lio de la Factura electronica y baje un codigo en Lazarus desde Delphiaccess , estoy en estos momentos pasandolo a Delphi, pero me intereso mucho lo de Cryptosys,que segun leo esta enfocado al SAT pero aun no logro comprender,me imajino que esta es una Dll, entonces mi pregunta es si yo uso esta dll, practicamente viene todo para hacer lo de la factura electronica sin meter tanto codigo? saludos y gracias.
:confused:

Si llegas a utilizar cryptosys, lo más "difícil" que te tocaría por hacer es formar los XML's correctamente.
Yo uso esa librería, y el esquema de licenciamiento que utilizan es muy accesible, pues puedes distribuir esa dll entre los usuarios finales de tu aplicación sin necesidad de pagar licenciamiento extra. Además si el sat hace cambios menores, al pagar el licenciamiento tienes derecho a bajar actualizaciones de las librerías.
Al momento que te escribo, llevamos 10,000 cfd's generados con absolutamente cero problemas.
Y sobre el código... si le debes meter un poquito de código... pero ya no se compara para nada con hacer todas las rutinas a mano, pues te lo digo por experiencia, ya que cuando estuve haciendo todo "a mano" (sin usar OpenSSL) me encontré con broncas al momento de leer el certificado.

Saludos y suerte.

IcebergDelphi 13-08-2010 17:40:49

Cita:

Empezado por nejamube (Mensaje 373271)
Efectivamente, con esta DLL no tendrias que escribir todos los procedimientos para la factura electronica, solo mandas llamar las funciones. Lo que tendrias que hacer seria adecuar tu software para la factura electronica, el informe mensual al SAT, reporte de folios utilizados y cancelados, entre otras cosas.


Gracias Nejamube, ya heche andar con el Cryptosys lo necesario para lo de las CFD,saludos.

IcebergDelphi 13-08-2010 17:42:49

Cita:

Empezado por nuk3zito (Mensaje 373470)
Si llegas a utilizar cryptosys, lo más "difícil" que te tocaría por hacer es formar los XML's correctamente.
Yo uso esa librería, y el esquema de licenciamiento que utilizan es muy accesible, pues puedes distribuir esa dll entre los usuarios finales de tu aplicación sin necesidad de pagar licenciamiento extra. Además si el sat hace cambios menores, al pagar el licenciamiento tienes derecho a bajar actualizaciones de las librerías.
Al momento que te escribo, llevamos 10,000 cfd's generados con absolutamente cero problemas.
Y sobre el código... si le debes meter un poquito de código... pero ya no se compara para nada con hacer todas las rutinas a mano, pues te lo digo por experiencia, ya que cuando estuve haciendo todo "a mano" (sin usar OpenSSL) me encontré con broncas al momento de leer el certificado.

Saludos y suerte.

Hola nuk3zito, baje el Cryptosys y ya estoy generando los XML, cosa muy sencilla y ya leo las cadenas ,Cerfiticados, genero sellos, etc. esta de Pelos, saludos.

dado 17-08-2010 00:20:35

Pero....el Cryptosys cuesta una lana!!

Son 169.00 dolares de base mas 120.00 dolares por las rutinas FirmaSAT, en total y al tipo de cambio son como $3,700.00 pesos

Con el OpenSSL te cuesta 0.00 (cero pesos), pero bueno, cada quien.

nuk3zito 17-08-2010 00:55:18

Cita:

Empezado por dado (Mensaje 373690)
Pero....el Cryptosys cuesta una lana!!

Son 169.00 dolares de base mas 120.00 dolares por las rutinas FirmaSAT, en total y al tipo de cambio son como $3,700.00 pesos

Con el OpenSSL te cuesta 0.00 (cero pesos), pero bueno, cada quien.

Bueno, en total son 159 dlls incluyendo FirmaSAT. No se de donde obtuviste ese otro precio.

Ps es que si es de cada quien.

Mira, en tu caso que has estado comercializando con tu desarrollo, pues si ya hiciste algo con OpenSSL, solo les adviertes a tus clientes que utilizas OpenSSL y asunto arreglado... te lo pagan y listo.

En el caso de otras empresas, si a un programador le pagan $3,500.00 a la semana y resulta que el hacer las rutinas te va a llevar un tiempo de 10 días a dos semanas, entonces resulta mejor comprar FirmaSAT, pues sale más barato, y el soporte ya lo tienes. Y si fuera tan necesario tener el código fuente de los algoritmos de encriptación, pues continuas con tu desarrollo "a ratos" pues ya no urge. Como quiera, la empresa se ahorra un billete.

Pero pues, ahí si que es de cada quien... ¿o a poco no es mejor para tí que alguien decida no hacerlo y comprate a ti la solución?
Ahora que si tu ofreces exactamente lo mismo que cryptosys pero más barato, pues claro que es de considerarse lo que tu ofreces, pero de hecho cryptosys es un desarrollo muy completo. Cada quien hace su luchita.

P.D. Lo raro es que ese es un proyecto de otro país, pero pues toman como base los mismos algoritmos para la facturación electrónica en general.

dado 17-08-2010 01:59:35

Cita:

Empezado por nuk3zito (Mensaje 373695)
Bueno, en total son 159 dlls incluyendo FirmaSAT. No se de donde obtuviste ese otro precio.

Los precios los obtuve de esta pagina . Importante notar que el "FirmaSAT" de $120 es un "ADD ON" y que se requiere que previamente compren el Cryptosys PKI de $169.00 dolares

Cita:

Mira, en tu caso que has estado comercializando con tu desarrollo, pues si ya hiciste algo con OpenSSL, solo les adviertes a tus clientes que utilizas OpenSSL y asunto arreglado... te lo pagan y listo.
El comentario lo hice porque he comprado otras librerias (Alpha Skins, Topaz, SCI, etc) y cualquiera de ellas me ha costado menos de 60 dolares, por eso se me hace caro el Crypto. Solo queria "prevenir" a los lectores que hay opciones gratuitas. En ningun momento hice el comentario de que por $200.00 pesos pueden conseguir la adaptacion del OpenSSL a los CFD.

Cita:

En el caso de otras empresas, si a un programador le pagan $3,500.00 a la semana y resulta que el hacer las rutinas te va a llevar un tiempo de 10 días a dos semanas, entonces resulta mejor comprar FirmaSAT, pues sale más barato, y el soporte ya lo tienes. Y si fuera tan necesario tener el código fuente de los algoritmos de encriptación, pues continuas con tu desarrollo "a ratos" pues ya no urge. Como quiera, la empresa se ahorra un billete.

Pero pues, ahí si que es de cada quien... ¿o a poco no es mejor para tí que alguien decida no hacerlo y comprate a ti la solución?
Ahora que si tu ofreces exactamente lo mismo que cryptosys pero más barato, pues claro que es de considerarse lo que tu ofreces, pero de hecho cryptosys es un desarrollo muy completo. Cada quien hace su luchita.

P.D. Lo raro es que ese es un proyecto de otro país, pero pues toman como base los mismos algoritmos para la facturación electrónica en general.
TOTALMENTE de acuerdo! por supuesto, para eso estan las "librerias de terceros" para adaptarlas a tus necesidades especificas.

Insisto, solo queria comentar de esta tercera opcion ya que comentaron de Eldos.com y de Criptosys, crei conveniente comentar de OpenSSL y que la ventaja era que es gratuita.

nuk3zito 17-08-2010 02:04:11

Cita:

Empezado por dado (Mensaje 373702)
TOTALMENTE de acuerdo! por supuesto, para eso estan las "librerias de terceros" para adaptarlas a tus necesidades especificas.

Insisto, solo queria comentar de esta tercera opcion ya que comentaron de Eldos.com y de Criptosys, crei conveniente comentar de OpenSSL y que la ventaja era que es gratuita.

De acuerdo ambos.

Para serte sincero, aún pretendo retomar la programación de los algoritmos, pues no pienso dejar que la lectura del certificado me gane la batalla (solo eso me faltó :( )

A ver si raza en el foro se anima y lo hacemos todo nativo para no estar dependiendo de terceros.

adrianstr 19-08-2010 17:11:55

El programa del sat "Microsat" tiene algunas cosas buenas pero tambien tiene desventajas como la lentitud con la que se ejecuta, por cada factura que se emita hay que estar buscando el archivo .key y el .cer, lo cual para el cliente me imagino que seria tedioso, otra cosa es, cuando estamos haciendo una factura al agregar un nuevo concepto a la misma hay que seleccionar el producto desde un combo pero que pasa si en el negocio se maneja mas de 500 productos ya se imaginaran lo tedioso de ir buscando producto por producto. Nuestro trabajo como programadores es mejorar o hacer mejores soluciones, mas rapidas, eficientes y seguras y sobre todo que al usuario final le resulte mas comodo usar por que al fin y al cabo los que usan nuestros sistemas no son informaticos, y a mi la verdad si fuese un usuario normal (me refiero a no ser informatico) me traumaria con el uso del MicroSaT, como han de saber todo lo que hace el Sat es una pura Cochinada, nomas digo :D


La franja horaria es GMT +2. Ahora son las 13:39:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi