|
Delphi: Cómo firmar digitalmente una factura - facturación telemática mediante Delphi
Este manual explica paso a paso como crear una aplicación con Delphi para firmar digitalmente una factura (o fichero) utilizando la dll "AEATFACT.dll" que AEAT pone a disposición de los desarrolladores de software. También explica como comprobar la validez de un documento firmado digitalmente.
FIRMAR DIGITALMENTE UNA FACTURA - FACTURACIÓN TELEMÁTICA - UTILIZAR EL CERTIFICADO DIGITAL PARA FIRMAR DOCUMENTOS MEDIANTE DELPHI Este artículo explica y muestra un ejemplo sobre cómo firmar digitalmente documentos telemáticos (facturas) utilizando Delphi como lenguaje de programación. INTRODUCCIÓN La AEAT (Agencia Tributaria) ha puesto a disposición de los desarrolladores de software una librería (dll) para incluirla en los lenguajes de programación y utilizar los métodos de que dispone. Permite firmar un documento digital (pdf, jpg, xml, ...) y permite verificar que la validez de la firma. Con estos dos métodos es suficiente para firmar y comprobar la validez de un documento firmado. Un documento firmado digitalmente (y validado correctamente) tendrá la misma validez legal que otro impreso y firmado manualmente. Para más información sobre temas legales se puede consultar Comercio electrónico, Ley de Servicios de la Sociedad de la Información y de Comercio Electrónico (LSSI) ó Facturación telemática. Para la firma de los documentos teleméticos, el emisor (el que firma el documento) debe disponer de un certificado de usuario de una de las Autoridades de Certificación válidas para facturación telemática. Las Autoridades de Certificación para los certificados reconocidas por la AEAT se pueden consultar en: Especificaciones técnicas O.M. HAC/1181/2003, Entidades certificadores autorizadas ó Certificados válidos para la facturación telemática. El certificado suele ser el mismo que se utiliza para la presentación telemática de las declaraciones en la AEAT, ya que no existen certificados especiales para facturación telemática. Normalmente suele ser el Clase 2 CA de la FNMT. DESCARGA E INSTALACIÓN DEL COMPONENTE DE LA AEAT EN DELPHI En primer lugar descargaremos la dll de http://www.aeat.es/descarga/aeatfact.cab, también podemos descargar un fichero pdf con la explicación de los dos métodos ("VERIFICA" y "FIRMA"), los posibles códigos de error, el registro, uso del componente en arquitectura vía web, etc. Una vez descargado el fichero aeatfact.cab lo descomprimiremos y obtendremos el fichero AEATFACT.dll. Para que sea accesible desde Delphi hemos de registrarlo, para ello podemos utilizar AjpdSoft Registro de OCX/DLL: Selecionamos el fichero AEATFACT.dll: Y pulsamos en "Registrar": Para registrarlo manualmente, el comando es: regsvr32 RutaFicheroAEATFACT.dll
EL PROGRAMA EN DELPHI Una vez registrado podremos utilizarlo desde Delphi, para ello abrirmos Delphi, menú "File" - "New" - "Application" y en el formulario de la aplicación añadimos un TEdit para el fichero a firmar, otro para el DNI y otro para el fichero de firma resultante. Añadiremos también un TButton para seleccionar el fichero a firmar, otro para la verificación de la firma y otro más para firmar el fichero: El código para el botón "Seleccionar fichero" será:
procedure TformMenuPrincipal.bSeleccionarClick(Sender: TObject); El código para el botón "Verificar" será: procedure TformMenuPrincipal.bVerificarClick(Sender: TObject); var El código para el botón "Firmar" será: procedure TformMenuPrincipal.bFirmarClick(Sender: TObject); El programa resultante tendrá este aspecto:
LA COMPROBACIÓN Para probarlo seleccionaremos un fichero a firmar e introduciremos el DNI del certificado que tengamos instalado en el PC (o el certificado alojado en la tarjeta Smart Card Reader). Si utilizamos un Smart Card Reader (lector de tarjetas) nos pedirá la contraseña de la misma con una ventana como esta:
Tras introducir la contraseña de la tarjeta (si se utiliza un Smart Card Reader), si el proceso se ha realiado correctamente, nos aparecerá un mensaje como este: Para validar un fichero firmado, lo seleccionaremos y pulsaremos en "Validar". Si la firma es correcta nos aparecerá un mensaje como este (recordamos que es preciso tener conexión a Internet para realizar la validación):
Nota: más información y preguntas frecuentes sobre la facturación telemática en: Preguntas y respuestas sobre facturación telemática Anuncios
Enviado el Domingo, 25 septiembre a las 13:22:27 por ajpdsoft
|
|