![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Facturae
Cita:
De momento estamos conectando con autofirma, el programa es c#. Lo que si hacemos es conectar directamente con el autofirma desde el programa. En su momento por el 2016 no encontramos la manera de hacerlo y lo que dices había que instalar cosas externas. Volveremos a mirar si hay otra manera ya que vamos a sacar programa nuevo. |
|
#2
|
|||
|
|||
|
Cita:
Qué quieres decir con lo de "estamos conectando con Autofirma"?Nosotros generamos el XML de la FacturaE y es el cliente el que abre Autofirma y selecciona el xml correspondiente ... ¿Vosotros hacéis la llamada a Autofirma por línea de comandos con parámetros? ¿Cómo lo hacéis? ![]() Cita:
![]() Si encontráis alguna forma de hacerlo actualmente, ya decís, pq nosotros no hemos sido capaces de encontrar nada ... Muchas gracias! ![]() |
|
#3
|
|||
|
|||
|
Nosotros hacemos la siguiente llamada por línea de comandos:
Cita:
Para que funcione, yo copio, desde la carpeta de instalación de Aufirma, lo siguiente: AutofirmaCommandLine.exe y las carpetas: certutil, y jre y las añado en la carpeta de instalación de mi aplicación. |
|
#4
|
|||
|
|||
|
Autofirma
Yo lo que hice en su momento fue descargarme el proyecto de autofirma lo toque por alguna cosilla ("No me acuerdo ") y a mis clientes les paso el .jar de autofirma personalizado a una carpeta y luego desde mi programa le paso los parámetros y lo firma.
Me ahorraba el tema por si no tenían instalado el autofirma y se lo pasaba yo. Antes la gente no sabia ni que era un certificado. El proyecto https://github.com/ctt-gob-es/clienteafirma |
|
#5
|
|||
|
|||
|
Cita:
Esto no lo sabía yo puede ser nuestra solución ...Muchas gracias @Noe277 |
|
#6
|
|||
|
|||
|
Cita:
![]() |
|
#7
|
|||
|
|||
|
¿os referís a tener un xml en una ruta y a partir de él generar el xsig?
|
|
#8
|
|||
|
|||
|
Cita:
...Nos gustaría hacerlo "desde dentro" de nuestro SW (vb.net) sin tener que usar Autofirma, ni aplicaciones externas ...¿Tienes la solución mágica @Jarogo08? ![]() |
|
#9
|
|||
|
|||
|
Librerias
Cita:
Este proyecto no es de Facturae directamente, pero es una biblioteca en C# que permite crear firmas XAdES (BES, EPES, etc.) y puede usarse para firmar un XML Facturae si configuras bien los parámetros de política. 2) FirmaXadesNetCore en NuGet (versión .NET Standard) Una adaptación de FirmaXadesNet compatible con .NET Standard / .NET 6 / .NET 7 / .NET 8, lo que facilita usarlo en proyectos modernos. |
|
#10
|
|||
|
|||
|
Cita:
Sí, nosotros lo hacemos! Déjame montarte un ejemplo y lo pongo aquí. A ver si me da tiempo hoy! |
|
#11
|
|||
|
|||
|
Cita:
![]() ![]() ![]() |
|
#12
|
|||
|
|||
|
Aplicación de Windows Forms, un formulario con un botón (está en VB. NET)
Código:
Imports java.security
Imports java.io
Imports java.util
Imports java.security.cert
Imports javax.xml.parsers
Imports es.mityc.javasign.pkstore
Imports es.mityc.javasign.pkstore.keystore
Imports es.mityc.javasign.trust
Imports es.mityc.javasign.xml.xades.policy
Imports es.mityc.firmaJava.libreria.xades
Imports es.mityc.javasign.xml.refs
Imports es.mityc.firmaJava.libreria.utilidades
Imports org.w3c.dom
Imports sviudes.blogspot.com
Imports System.Xml
Public Class Form1
Private Sub btnFirmarXML_Click(sender As Object, e As EventArgs) Handles btnFirmarXML.Click
Dim ArchivoXML As String = "C:\Prueba\Factura.xml"
Dim ArchivoXMLFirmado As String = "C:\Prueba\Factura.xsig"
Dim ArchivoCertificado As String = "C:\Prueba\Certificado.pfx"
Dim PasswordCertificado As String = "PasswordCertificado"
Dim ClavePrivada As PrivateKey = Nothing
Dim Proveedor As Provider = Nothing
Dim Certificado As java.security.cert.X509Certificate = CargaCertificado(ArchivoCertificado, PasswordCertificado, ClavePrivada, Proveedor)
' Si hay certificado
If Certificado IsNot Nothing Then
' Política de firma
TrustFactory.instance = es.mityc.javasign.trust.TrustExtendFactory.newInstance()
TrustFactory.truster = es.mityc.javasign.trust.MyPropsTruster.getInstance()
PoliciesManager.POLICY_SIGN = New es.mityc.javasign.xml.xades.policy.facturae.Facturae31Manager()
PoliciesManager.POLICY_VALIDATION = New es.mityc.javasign.xml.xades.policy.facturae.Facturae31Manager()
' Crear datos a firmar
Dim dataToSign As DataToSign = New DataToSign()
dataToSign.setXadesFormat(EnumFormatoFirma.XAdES_BES) ' XadES-PES
dataToSign.setEsquema(XAdESSchemas.XAdES_132)
dataToSign.setPolicyKey("facturae31")
dataToSign.setAddPolicy(True)
dataToSign.setXMLEncoding("UTF-8")
dataToSign.setEnveloped(True)
dataToSign.addObject(New ObjectToSign(New AllXMLToSign(), "facturae31", Nothing, "text/xml", Nothing))
dataToSign.setDocument(CargaXML(ArchivoXML))
' Firmar
Dim res() As Object = New FirmaXML().signFile(Certificado, dataToSign, ClavePrivada, Proveedor)
' Guardamos la firma en un fichero
UtilidadTratarNodo.saveDocumentToOutputStream(res(0), New FileOutputStream(ArchivoXMLFirmado), True)
MsgBox("Fichero " & ArchivoXMLFirmado & " generado correctamente", MsgBoxStyle.OkOnly, "btnFirmarXML_Click")
Else
MsgBox("No es posible acceder al certificado", MsgBoxStyle.OkOnly, "btnFirmarXML_Click")
End If
End Sub
Public Shared Function CargaXML(ByVal Ruta As String) As Document
Dim dbf As DocumentBuilderFactory = DocumentBuilderFactory.newInstance()
dbf.setNamespaceAware(True)
Return dbf.newDocumentBuilder().parse(New BufferedInputStream(New FileInputStream(Ruta)))
End Function
Public Shared Function CargaCertificado(ByVal Ruta As String, ByVal Clave As String, ByRef ClavePrivada As PrivateKey, ByRef Proveedor As Provider) As X509Certificate
Dim Certificado As X509Certificate = Nothing
Proveedor = Nothing
ClavePrivada = Nothing
' Carga certificado de fichero PFX
Dim ks As KeyStore = KeyStore.getInstance("PKCS12")
ks.load(New BufferedInputStream(New FileInputStream(Ruta)), Clave.ToCharArray())
Dim storeManager As IPKStoreManager = New KSStore(ks, New PassStoreKS(Clave))
Dim certificates As List = storeManager.getSignCertificates()
' Si encontramos el certificado
If certificates.size() = 1 Then
Certificado = certificates.get(0)
' Obtención de la clave privada asociada al certificado
ClavePrivada = storeManager.getPrivateKey(Certificado)
' Obtención del proveedor encargado de las labores criptográficas
Proveedor = storeManager.getProvider(Certificado)
End If
Return Certificado
End Function
End Class
commons-logging-1.1.dll facturaE_additional.dll IKVM.OpenJDK.Core.dll IKVM.OpenJDK.Security.dll IKVM.OpenJDK.Text.dll IKVM.OpenJDK.Util.dll IKVM.OpenJDK.XML.API.dll IKVM.OpenJDK.XML.Parse.dll IKVM.Runtime.dll MITyCLibAPI-1.0.4.dll MITyCLibCert-1.0.4.dll MITyCLibPolicy-1.0.4.dll MITyCLibTrust-1.0.4.dll MITyCLibTSA-1.0.4.dll MITyCLibXADES-1.0.4.dll xmlsec-1.4.2-ADSI-1.0.dll No me preguntéis de donde se sacan porque las busqué hace unos 10 años y no tengo ni pajolera de donde las conseguí ![]() No sé si tengo posibilidad de subir un rar con esta aplicación de ejemplo, así ya tendríais también las librerías Última edición por Jarogo08 fecha: 13-03-2026 a las 12:39:03. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Que pasa con FacturaE y la factura electrónica a raiz de Verifactu | richidemola | General/Noticias | 3 | 20-09-2025 19:01:39 |
| Firma en factura electrónica facturaE | Galahad | Varios | 8 | 19-06-2016 00:45:14 |
| libreria Delphi para factura electronica Facturae | argobot | ¿Quieres trabajar? (es el lugar para publicar una oferta de trabajo) | 0 | 11-04-2016 11:06:14 |
| Validar firma de factura electrónica (formato Facturae) | maro | Varios | 79 | 22-09-2015 09:45:17 |
| Factura electrónica "Facturae" | newtron | Varios | 3 | 16-01-2015 18:43:45 |
|