FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Te pongo el código que utilizo. Básicamente lo que hace es tomar un archivo xml y lo envía. Debes por favor cumplimentar previamente los campos de dicho archivo pues en caso contrario te dará errores de validación.
Código:
' ---------------------------------------------------------------------------------------- Dim store As Security.Cryptography.X509Certificates.X509Store = New Security.Cryptography.X509Certificates.X509Store("My") store.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly) Dim CertificadoCorrecto As New System.Security.Cryptography.X509Certificates.X509Certificate2 For Each x In store.Certificates ListCert = ListCert & vbNewLine Next 'RichTextBox1.Text = ListCert CertificadoCorrecto = store.Certificates(CInt(TextBoxNumeroOrdenCertificado.Text)) '(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 Con esto, se toma la factura del archivo (fíjate que solamente tiene el nodo '<SuministroLRFacturasEmitidas>' y nada del encabezado SOAP para que no dé error al aplicar el Deserialize) y nos la convierte en un objeto serializado donde podemos acceder a los campos de la clase antes de enviar si lo deseamos; en caso contrario se envía y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc. |
#2
|
|||
|
|||
Cita:
Hola bartag. Muchas gracias por tu rapida respuesta y tu aparte de codigo. Me habia encallado en ese tema y se supone que mañana debo hacer pruebas reales. Me ha clarificado bastante tu codigo despues de analizarlo con detenimiento, y sobre todo tu frase “y la propia llamada se encarga de insertar las cabeceras, los namespaces, etc.”. Finalmente he conseguido enviar y recibir respuesta de AEAT, aunque en la respuesta no recibo el esperado XML sino el siguiente texto:-pongo solo la parte inicial- Código:
El tipo de contenido text/html del mensaje de respuesta no coincide con el tipo de contenido del enlace (text/xml; charset=utf-8). Si usa un codificador personalizado, asegúrese de que el método IsContentTypeSupported se implemente correctamente. Los primeros 1024 bytes de la respuesta fueron: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" No se si tu tambien has pasado por ese punto. Salu2 |
#3
|
|||
|
|||
Cita:
Ahora no estoy en casa. Esta noche te paso el archivo por si pudiera venir de ahí el error. |
#4
|
|||
|
|||
Subo el archivo App.config.
Saludos |
#5
|
|||
|
|||
Como siempre “Muchas gracias” bartag por tu aporte y rápida respuesta.
Voy a mirarela en detalle y entenderla, pues veo que tut tienes tres <binding> diferentes. Ya veo que uno de ellos, el siiBinding2, en realidad es un elemento sin contenido, que se ha quedado ahí, y probablemente tambien el siiBinding que es el que se crea inicialmente. Ya habia buscado posibles soluciones y lo que tu pones coincide con alguna de las soluciones que halle, , que es crear el <customBinding> <binding name="siiBinding"> <textMessageEncoding messageVersion="Soap11" /> <httpsTransport /> </binding> </customBinding> Para definirle el protocolo Soap11. Hos se supone que ya iba a tener el certificado y hacer pruebas reales, pero no lo tendre hasta el miercoles. Ya te diré como va Salu2 |
#6
|
|||
|
|||
SII Pruebas
Me presento soy Carlos y soy contable, siguiendo las 13 paginas de este foro he incluido los ejemplos y no tengo una respuesta válida por parte de AEAT. por último he copiado intergramente el ejemplo abajo indicado y recibo la Respuesta del servidor tambien fallida, ver abajo incluida.
¿podéis ayudarme a facilitarme un ejemplo que os haya funcionado, para ver posteriormente las consultas a los libros. 8.1.1.1.Ejemplo mensaje XML de alta, en la pagina 132 de 180 del SII – Suministro Inmediato de Información Autor : AEAT Fecha: 27/01/2017 Versión: 0.5 Gracias anticipadas por vuestra comprensión y colaboración. Última edición por Neftali [Germán.Estévez] fecha: 07-03-2017 a las 14:02:40. Razón: Corregida imagen. Codificación incorrecta |
#7
|
|||
|
|||
Cita:
Pruébalo y publica la respuesta que recibes. Saludos, |
#8
|
|||
|
|||
Por favor, podrías mandar un zip el proyecto? Es que soy más de PHP que de VB.NET y no sé que clases importar y demás para el certificado. Gracias.
|
#9
|
|||
|
|||
Cita:
Estoy intentando usar tu código pero tengo un problema cuando hago el Deserialize sobre el XML modelo que has adjuntado. Me da un error "There is an error in XML document (2, 2)", ¿sabes a qué puede ser debido? Gracias. |
#10
|
|||
|
|||
Eliminado por BUG en OPENTEXT
Tras actualizar a la nueva versión de WebService, me ha empezado a devolver este error al tratar de enviar cualquier tipo de factura:
{"El cliente encontró el tipo de contenido de respuesta 'text/html', pero se esperaba 'text/xml'.\r\nError de la solicitud con el mensaje de error:Proceso de conexión con la Sede Electrónica de la Agencia Tributaria en curso.<!-- Menu de UTILIDADES PREVIEW -->\r\n\t</div>\r\n</body>\r\n<!-- Eliminado por BUG en OPENTEXT render:trackDependencies/-->\r\n</html>\r\n\r\n--."} A alguien le ha pasado eso también? Esta mañana me dejaba enviar sin problemas. |
#11
|
|||
|
|||
Ahora la Agencia está muy lenta y no responde peticiones al WebService.
A ver si es por eso. En lugar de procesar petición devuelve una respuesta diciendo que anda lenta. Suele ser normal los días 20 por temas de presentación de 340. No quiero ni imaginarme cuando entre en producción el SII. Lo gracioso es que en lugar de devolver un código de error por saturación y punto devuelve una bonita web animada de 56 KB. Es una buena oportunidad para añadir tolerancia a errores extraños al programa que gestiona el SII. Última edición por Nasca fecha: 20-03-2017 a las 21:03:02. |
#12
|
|||
|
|||
El webservice no ha funcionado en casi toda la tarde
Cita:
Si eso pasa cuando esté en producción, el lío que se montaría sería responsabilidad de ellos, no nuestro. Nuestro software puede tener bugs, eso seguro, pero si falla el webservice nosotros tranquilos. |
#13
|
|||
|
|||
Cita:
Por si alguien tiene curiosidad por ver la respuesta en el navegador. Queda muy resultón con la barra animada, pero bastante inútil como respuesta para una petición SOAP. |
#14
|
|||
|
|||
Tienes razón la web de consultas está igual. Devuelven el mismo mensaje.
Puede ser que haya tenido ataque o sobrecarga y hayan optado simplemente por desactivar los servicios no fundamentales. Y de ahí que aún sea algo menos específico para un WebService. |
#15
|
|||
|
|||
Cita:
Gracias. |
#16
|
|||
|
|||
A mi la nueva versión me da error en esta sección del código:
Public Shared Widening Operator CType(v As SuministroLRFacturasEmitidas) As SuministroLRFacturasEmitidas Throw New NotImplementedException() End Operator Tras comentar este código y probar me da el mismo error que dice el compañero: Cita:
|
#17
|
|||
|
|||
Hola a todos:
¿Hay alguna manera de eliminar todas las facturas enviadas al portal de pruebas? De tanto enviar hay un jaleo importante y me gustaría "empezar desde cero". Gracias! |
#18
|
|||
|
|||
Cita:
De todos modos, sería de gran utilidad hacer borrón y cuenta nueva. Si alguien lo sabe que tenga la amabilidad de publicarlo. Saludos, |
#19
|
|||
|
|||
Cita:
La baja es una opción. Al enviar las anulaciones están disponibles un tiempo y luego desaparecen. Entiendo que en producción no será así, por lo que parece que es la forma que han previsto de ir limpiando cosas en pruebas. |
#20
|
|||
|
|||
Cita:
No obstante, comprueba por favor que el "App.config" está debidamente cumplimentado como comentaba y que el certificado carga correctamente. También que el archivo xml que intentas subir es el que puse, ya que si por ejemplo le estás intentando meter uno con namespaces, te va a dar el error que indicas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco | keys | Internet | 4183 | Hace 1 Semana 15:10:42 |
AEAT envio de datos vía Webservice problemas con WSDL | CelsoO | Internet | 11 | 09-10-2019 20:03:41 |
webService Soap de la Administración Digital Española notific@ | apicito | Internet | 3 | 31-01-2017 11:25:28 |
Error en Webservice funcion envio de sms | webmasterplc | Delphi para la web | 5 | 25-07-2013 20:10:29 |
Problemas con envío de XML a un WebService | davidvamo | Internet | 1 | 13-02-2007 15:49:20 |
|