¿Sabeís como puedo modificar este código que en principio me funciona para las facturas emitidas?
Quiero dos cosas:
1. Capturar el SOAP Request que envío y el Soap Response que recibo
2. Poder seleccionar un certificado de los disponibles. Ya que somos un grupo de empresas.
He utilizado el código VB.NET que comentaba el compañero poniendo el fichero xml en la carpeta y ya no me genera ningún error, pero no recibo respuesta. ¿Existe alguna forma de ver el mensaje SOAP de respuesta?
Dim store As Security.Cryptography.X509Certificates.X509Store = New Security.Cryptography.X509Certificates.X509Store(StoreName.My, StoreLocation.CurrentUser)
store.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)
Dim CertificadoCorrecto As New System.Security.Cryptography.X509Certificates.X509Certificate2
' search store
' Dim col As New X509Certificate2Collection
'col = store.Certificates.Find(X509FindType.FindByIssuerName, "FNMT", True)
Dim ListCert As String = ""
For Each x In store.Certificates
MsgBox(x.Subject)
Next
Respuesta2RichTextBox.Text = ListCert
CertificadoCorrecto = store.Certificates(0) '(5)
' Objeto que almacenara la respuesta de la funcion del Web Service
Dim resp As New ServiceReference1.RespuestaLRFEmitidasType
' Ws
Dim Ws As New ServiceReference1.siiSOAPClient
Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
Ws.ClientCredentials.UseIdentityConfiguration = True
' Asignamos el certificado:
Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
' ----------------------------------------------------------------------------------------
' ----------------------------------------------------------------------------------------
Dim _SuministroLRFacturasEmitidas As New SuministroLRFacturasEmitidas
'--------------------------------------------------------------------------
Try
Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd")
' A FileStream is needed to read the XML document.
Dim filename As String = "facturaEmitidaMODEL.XML"
Using reader As New FileStream(filename, FileMode.Open)
_SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas)
End Using
' SI QUEREMOS SOBREESCRIBIR EL XML ANTES DE ENVIAR:
' SOBREESCRIBIMOS DATS FORM ANTES SEND:
_SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = Trim(TextBoxRazonSocialEmisor.Text)
_SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = Trim(TextBoxNIFEmisor.Text)
'(...)
'// se hace la llamada a la funcion suministrada por el WS
resp = Ws.SuministroLRFacturasEmitidas(_SuministroLRFacturasEmitidas)
Catch ex As Exception
MsgBox(ex.Message)
' Respuesta2RichTextBox = ex.Message
Finally
'Me.Cursor = Cursors.Default
'Threading.Thread.Sleep(5000)
'ProgressBar1.Style = ProgressBarStyle.Continuous
''ProgressBar1.Value = ProgressBar1.Maximum
End Try
|