PDA

Ver la Versión Completa : Firma en factura electrónica facturaE


Galahad
01-05-2016, 20:48:59
Hola, buenas tardes.
Tengo implementado en un programa la factura electrónica en formato xml (facturaE). Me faltan dos cosas, una poder firmar dicho formato con el certificado oficial de la AEAT , y dos utilizar algún web service para automatizar los envíos directamente a la AEAT.
En cuanto. A la firma, ahora mismo se firman con una aplicación propia de la AEAT, la información que encuentro para automatizar la firma habla de soluciones muy antiguas q ya no están vigentes creo, como un activex (aefact.dll).
Tampoco he encontrado información en la página de la AEAT sobre alguno de estos dos temas.
Sé que hay unos componentes específicos, los secureblacbox , pero de momento no se está pensando en adquirirlos.
¿ Alguien tiene información de cómo implementarlo en delphi ahora mismo ?.
Gracias anticipadas.

newtron
02-05-2016, 09:19:45
Hola.

Que yo sepa no hay componentes gratuitos para Delphi que firmen archivos, yo en particular lo que he hecho ha sido hacer una llamada a un programita hecho en java, no es la forma más elegante pero funciona. Aquí (http://www.clubdelphi.com/foros/showthread.php?t=56079&page=4&highlight=firma+electronica) tienes el post, espero que te sirva.

Saludos

Neftali [Germán.Estévez]
02-05-2016, 15:08:47
Para Delphi ya hemos comentado otras veces sobre los Secure BlackBox (https://www.eldos.com/SecureBlackbox/download-release.php) para todas estas cuestiones, pero no son gratuitos.

x_aguilarf
03-05-2016, 19:10:40
Hola,

en mi caso utilicé las librerías hechas en Java que recomiendan los del ministerio. Te paso las mismas con una clase de Java y Delphi que sirven para acceder a ellas.


xmlFile := 'C:\Dirección\Del\Fichero.XML';
idCert := 'ID_DEL_CERTIFICADO_INSTALADO_EN_WINDOWS_A_UTILIZAR';

with TFirmaXML.Create(xmlFile, idCert) do
try
if not Success then
RaiseException;
finally
Free;
end;


Puedes recibir los certificados instalados mediante:


p := TProcess.Create('java.exe', ['-jar', 'FacturaXML.jar', '"list"'], IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
csvListadoCerts := p.Output;
p.Free;


Enlace (https://mega.nz/#!Xd4RWJ6Q!zKnmVqHXIkg069IbhvHhV4L-Wl_3vYkLteHT2gJ0sD8)

Espero haberte ayudado,
Saludos

Galahad
09-05-2016, 10:49:04
Muchas Gracias.
¿ me puedes pasar dichas librerias ?.
Ya intentaré yo crear la interfaz de la case de java en delphi.

Un saludo y gracias de nuevo

Hola,

en mi caso utilicé las librerías hechas en Java que recomiendan los del ministerio. Te paso las mismas con una clase de Java y Delphi que sirven para acceder a ellas.

Código Delphi [-] (http://www.clubdelphi.com/foros/#)xmlFile := 'C:\Dirección\Del\Fichero.XML'; idCert := 'ID_DEL_CERTIFICADO_INSTALADO_EN_WINDOWS_A_UTILIZAR'; with TFirmaXML.Create(xmlFile, idCert) do try if not Success then RaiseException; finally Free; end;


Puedes recibir los certificados instalados mediante:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)p := TProcess.Create('java.exe', ['-jar', 'FacturaXML.jar', '"list"'], IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)); csvListadoCerts := p.Output; p.Free;


Enlace (https://mega.nz/#!Xd4RWJ6Q!zKnmVqHXIkg069IbhvHhV4L-Wl_3vYkLteHT2gJ0sD8)

Espero haberte ayudado,
Saludos

Galahad
09-05-2016, 11:15:48
Disculpa, no habia visto el enlace.
Ya tengo la clase, voy a pelearme con esto.
Muchísimas gracias...

Muchas Gracias.
¿ me puedes pasar dichas librerias ?.
Ya intentaré yo crear la interfaz de la case de java en delphi.

Un saludo y gracias de nuevo

anam.soria
02-06-2016, 12:07:37
Muchísimas gracias por tu aportación, me ha servido de gran ayuda para el tema de la firma en Delphi, pero al validar la factura firmada en http://sedeaplicaciones2.minetur.gob.es/FacturaE/
me da error de política de firma, yo uso la sintaxis de Facturae 3.2.1

E:\Documentos\Error_PoliticaDeFirma.jpg

Os ha pasado a alguien? A qué puede ser debido?

Gracias por anticipado

anam.soria
02-06-2016, 12:31:12
Seré un poco más explícita, el validador de facturaE (http://sedeaplicaciones2.minetur.gob.es/FacturaE/) me da los siguientes errores:
En Tipo de Validación dice: Rol no se ajusta a uno de los definidos en la política.
y en el Desglose de validación de la firma. en Política, dice: política inválida: Política de firma FacturaE v3.1

NO sé qué puedo haber hecho mal, selecciono mi certificado de la FNMT, y tomo como id del certificado, la última parte de la cadena Tprocess.output

iMia
19-06-2016, 00:45:14
Esas librerías son obsoletas y lo que es peor, están descontinuadas.
No cumplen la política de firma estricta 3,1
Ahora mismo sólo se puede firmar con años externas (@firma de la aeat) o con librerías tipo secureblackbox