Ir al contenido


Foto

Probando lazarus con los comprobantes fiscales digitales del sat


  • Por favor identifícate para responder
39 respuestas en este tema

#21 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 06 abril 2010 - 10:44

Que bien amigo axesys

Esto se va poniendo muy interesante (y)

Salud OS
  • 0

#22 felipep

felipep

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 14 abril 2010 - 05:23

Una preguntota que no no me he podido responder, ¿Cómo se podría hacer para desencriptar el mensaje firmado con RSA?

He buscado en estas librerías libeay pero, aunque al parecer están las funciones, no hay información mas que de encriptar...

¿A alguien se le ocurre algo?
  • 0

#23 mesquivelh

mesquivelh

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 21 abril 2010 - 05:11

Estimados:

Estoy estado trabajando con sus indicaciones, todas muy útiles, pero al generar mi cadena original me aparece así:

||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350|5.25|397.25|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|15|52.5||

Como verán las vocales con acento no aparecen como tal, ¿me podrían orientar?, estoy trabajando con Delphi 2007 y los fuentes del último cfd.zip que se publicó.
  • 0

#24 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 21 abril 2010 - 05:24

Creo que tiene que ver con la codificación UTF8 o ISO8859_1 de la Base de Datos.
  • 0

#25 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 21 abril 2010 - 05:49

Como dice enecumene tiene que ver con UTF8, por fortuna Delphi cuenta con una función para esos menesteres y la debes de ejecutar de esta forma.



delphi
  1. var
  2.   CadenaOriginal,CadenaUTF8: widestring;
  3.  
  4.  
  5.   CadenaOriginal := '||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350|5.25|..........';
  6.   CadenaUTF8 := UTF8Encode(CadenaOriginal);



Salud OS

Edito: No vi que esto esta en Lazarus, no tengo idea si también cuenta con esta función :(

  • 0

#26 mesquivelh

mesquivelh

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 22 abril 2010 - 08:15

Gracias egostar, si estoy trabajando con Delphi, estoy adaptando el código de éste foro, quizas por ahí esté el problema.

Probé lo que me indicas, pero el problema persiste.

¿Mas ideas?
  • 0

#27 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderadores
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 22 abril 2010 - 08:58

Hola mesquivelh

Yo tuve un problema similar para presentar la información en pantalla.

De acuerdo con el Anexo 20 el archivo XML que contiene la información del Comprobante Fiscal Digital debe ser codificado en UTF-8.

Sin embargo, los componentes estándar de Delphi (al menos en la versión 7) solamente soportan AnsiString, por lo tanto, cuando deseamos mostrar alguna cadena proveniente del XML en un Memo o con ShowMessage, se deben descodificar las cadenas con las funciones que te indica Egostar. En este caso utiliza UTF8Decode(CadenaOriginal)

Saludos
  • 0

#28 angelo2007

angelo2007

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 mensajes

Escrito 25 abril 2010 - 02:14

hola.. yo ando viendo esto de el CFD
pero del sat no puedo descargar el Cer_Sello.zip :cry:

axesys lo indica como segundo paso
2. Esa cadena original se convierte a un sello digital usando unos archivos .cer, .key y una contraseña que están aquí

¿alguien lo puede compartirl?
:huh:
gracias
  • 0

#29 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 640 mensajes
  • LocationLos Mochis

Escrito 25 abril 2010 - 02:18

Yo siempre descargo en la pagina de sat usando el internet explorer porque con el firefox no me deja tal vez sea eso

También puede que sea porque puse mal el enlace este es el correcto

ftp2.sat.gob.mx/asistencia_servicio_ftp/publicaciones/solcedi/Cer_Sello.zip

No llevaba el http://ftp// del principio


Saludos
  • 0

#30 angelo2007

angelo2007

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 mensajes

Escrito 29 abril 2010 - 09:28

pues que loco.. es cierto. no sirve firefox para el sat. y si lo pude descargar desde IE

gracias axessys, ahora a ver como lo hago con delphi7
  • 0

#31 ifarias

ifarias

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 30 abril 2010 - 11:14

Felicidades por el esfuerzo que están haciendo al tratar de preparase para el 2011, y compartir las experiencias sobre el mismo proceso.

Por mi parte ando un poco desorientado, he leido mucho material y creo que lo único que he conseguido es mas desorientación. Por lo que entiendo lo único que se requiere es gerenar el Sello Digital de la cadena original, usando el certificado .cer proporcionado por el SAT.

La secuencia sería:
  1. Generar la Cadena ||2.0|A|1|2009-08-16T16:30:00|1|....||
  2. Pasar la cadena por una función UTF8 --> Cadena := funUTF8(Cadena);
  3. Generar el RSA con encriptación MD5 --> Sello := RSAconMD5(Cadena, LlavePrivada);
  4. Pasar el Sello por a Base64 Sello := Base64(Sello);

Hasta aquí todo bien. Pero al querer leer el archivo llave .key (o .key.pem), la rutina que sugieren utiliza una función de callback :
function cb(buffer: PChar; blength: integer; verify: integer; data: pointer): integer; cdecl;
y al usarla en la rutina :
result := PEM_read_bio_PrivateKey(keyfile, nil, @cb, self);
marca erroes :
[Error] Unit1.pas(104): Types of actual and formal var parameters must be identical
Alguna Sugerencia??

Gracias de Antemano
Ignacio Farías
ifarias@yahoo.com

  • 0

#32 MOSIS2K2

MOSIS2K2

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 04 mayo 2010 - 08:13

Alguien me puede decir cual es la sintaxis en delphi para los comandos:

openssl pkcs8 -inform DER -in AAA010101AAA_Test.key -out AAA010101AAA.key.pem
openssl x509 -inform DER -in AAA010101AAA_Test.cer -out AAA010101AAA.cer.pem

gracias.
  • 0

#33 ifarias

ifarias

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 05 mayo 2010 - 10:08

MOSIS2K2
Puedes encontrar ejemplos del uso de los comandos en la página siguiente
http://www.mkssoftwa...s/cmd_index.asp
espero y te sirva

Por mi parte estoy usando las indicaciones que nos hace felipep del www.clubdelphi.com donde abordan el mismo tema. http://www.clubdelph...ead.php?t=66807 Factura Electrónica en México

EL sube las rutinas (Sello.pas) con las cuales describe todo lo que se necesita hacer para la digestión, encriptación y generación del Sello.

Solo me queda la duda (al usar esas rutinas) en la cual al generar el Sello, lo genera bien, pero si intento generarlo de nuevo, me genera otro distinto, y si repito el proceso puede regresar uno nuevo o uno ya generado. Desconozco si esto sea válido.

Seguiremos trabajando en encontrar las respuestas.

Por mi parte estoy trabajando en generar el archivo XML para hacer pruebas con el validador del SAT, ahí nos daremos cuenta si vamos por buen camino.

Saludo

  • 0

#34 angelo2007

angelo2007

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 mensajes

Escrito 16 mayo 2010 - 09:52

hora si estoy bien guey.. .no entiendo el formato,

2005-09-02T16:30:00

como se llama?

se que este also asi

año-dia-mes

como el que usa
Crear un puerto serie virtual
Enviado por admin el Sáb, 2010-04-03 22:09

http://delphi.jmrds.com/?q=node/54

como lo implemente en delphi con la T enmedio de el dia y la hora?
  • 0

#35 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 16 mayo 2010 - 10:13

hora si estoy bien guey.. .no entiendo el formato,

2005-09-02T16:30:00

como se llama?

se que este also asi

año-dia-mes

como el que usa
Crear un puerto serie virtual
Enviado por admin el Sáb, 2010-04-03 22:09

http://delphi.jmrds.com/?q=node/54

como lo implemente en delphi con la T enmedio de el dia y la hora?


Que tal Angel, puedes utilizar la función FormatDateTime().



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   ShowMessage(FormatDateTime('yyyy-dd-mm"T"hh:nn:ss',Now));
  4. end;



Salud OS
  • 0

#36 agag4

agag4

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes
  • LocationMéxico

Escrito 07 julio 2010 - 06:46

Muy interezantes, voy a checarlo bien, espero poder hacer algun ejemplo en delphi.... Gracias Daniel....
  • 0

#37 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 640 mensajes
  • LocationLos Mochis

Escrito 08 julio 2010 - 08:07

En este hilo de clubdelphi puedes encontrar más información para hacerlo en delphi


Saludos
  • 0

#38 darioaa

darioaa

    Newbie

  • Miembros
  • Pip
  • 6 mensajes

Escrito 16 noviembre 2010 - 07:40

Para aquellos que aún no conozcan del tema o tengan dudas les dejo un par de recursos que les ayudarán mucho.

En este post encontrarás algunas pláticas informativas  gratuitas sobre el tema
http://facturadigita...ra-electronica/

Aquí está la conferencia que dio el SAT cuando anuncio las reglas para el 2011.
http://facturadigita...rencia-del-sat/

Este es un programa donde se habló por mas de 2 horas sobre del tema
http://facturadigita...-en-radio-unam/

Y finalmente algunos videos en donde se explica a detalle todo lo relacionado con CFD
http://facturadigita...electronica-cfd

Espero te sean ayuda.

  • 0

#39 darioaa

darioaa

    Newbie

  • Miembros
  • Pip
  • 6 mensajes

Escrito 16 noviembre 2010 - 07:41

Quiero comentarte que he liberado una biblioteca de clases que te permite de forma rápida y sencilla generar un CFD y CFDI y lo mejor de todo, es que son totalmente gratuitas.

Si quieres leer mas del tema puedes entrar a

http://electronicdoc...t.wordpress.com

Bye

  • 0

#40 fsolispa

fsolispa

    Newbie

  • Miembros
  • Pip
  • 5 mensajes

Escrito 18 enero 2011 - 10:42

Esta versión incluye varias correcciones, como el que se pueda ejecutar varias veces porque antes no liberaba memoria y marcaba violaciones de acceso. Otra es un cambio para codificar en base64 usando bytes en lugar de cadenas porque sino se me regresaba incompleto el sello. Y uno más cuando se desifra con el algoritmo rsa ahora en lugar de usar arreglos fijos se usan dinamicos ya que si estaban fijos al aumentar los conceptos se regresaba mal el sello.

Tambien incluye para leer y escribir el xml con el sello, el numero y certificado público el cual se puede validar en esta aplicación del sat.


Saludos


Me ayudarias para sacarlo en lazarus para linux?
  • 0




IP.Board spam blocked by CleanTalk.