** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - XML a la Agencia Tributaria
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoXML a la Agencia Tributaria

 Responder Responder Página  12>
Autor
Mensaje
rafaservi Ver desplegable
Habitual
Habitual


Unido: 18/Noviembre/2010
Localización: España
Estado: Sin conexión
Puntos: 139
Enlace directo a este mensaje Tema: XML a la Agencia Tributaria
    Enviado: 13/Agosto/2019 a las 15:48
Estimados Srs.
Estoy en una aplicación por la que intento mandar información en XML a la Agencia Tributaria (Hidrocarburos).
He visto algunos videos que aconsejáis, he visto como hacer ficheros XML y la información de la Agencia indica el formato de estos ficheros. Creo que esto no es problema.

El problema está en la comunicación con la Agencia, en la forma de hacerlo.

Debo, según unos datos que introduzca el usuario, enviar un fichero en el formato XML para que ésta me conteste, si todo es correcto, con otro archivo que contiene un Código CRE necesario para repartir el combustible.
He visto un vídeo donde se muestra como comunicarse con un Servicio WEB mediante Soap, recibiendo información según los filtros que mandaba. Todo correcto. Pero he intentado hacer esto con la Agencia (ya que prácticamente es lo que se hace, mandar y recibir una constestación) pero da problemas.
Por lo pronto, el navegador (Mozilla) precisa de un Certificado Digital necesario para saber quien opera.

He usado este código, como en el del vídeo, cambiando lo que creo que pudiera ser distinto pero no hay resultados...


    Dim cUrl, cEnv, cRes As String
   
    Dim xmlhtp As New MSXML2.XMLHTTP60
    Dim xmldoc As New MSXML2.DOMDocument60
   
       
           cEnv = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"
    cEnv = cEnv & "                  xmlns:ie2=""https://www3.agenciatributaria.gob.es/static_files/common/internet/dep/aduanas/es/aeat/adia/avit/ws/Ie215V1Ent.xsd"
    cEnv = cEnv & "                  xmlns:cab=""https://www3.agenciatributaria.gob.es/static_files/common/internet/dep/aduanas/es/aeat/adia/avit/ws/cab.xsd"">"

    cEnv = cEnv & "     <soapenv:Header/>"      'No tiene elemento Cabecera, es opcional

    cEnv = cEnv & "     <soapenv:Body>"         'Define el elemento Cuerpo, que es obligatorio
    cEnv = cEnv & "         <ie2:Ie215Id=" & "01" & " NifDeclarante=" & Me.CifDeclarante & " NombreDeclarante=" & Me.NombreDeclarante & ">"

    cEnv = cEnv & "             <ie2:Cabecera>"
    cEnv = cEnv & "                 <cab:EmisorMensaje>" & Me.Cif & "</cab:EmisorMensaje>"
    cEnv = cEnv & "                 <cab:NombreEmisor>" & Me.Nombre & "</cab:NombreEmisor>"
    cEnv = cEnv & "                 <cab:ReceptorMensaje>SIANE.ES</cab:ReceptorMensaje>"
    cEnv = cEnv & "                 <cab:FechaPreparacion>" & Now() & "</cab:FechaPreparacion>"
    cEnv = cEnv & "                 <cab:HoraPreparacion>" & Now() & "</cab:HoraPreparacion>"
    cEnv = cEnv & "                 <cab:IdentificadorMensaje>" & "01" & "</cab:IdentificadorMensaje>"
    cEnv = cEnv & "             </ie2:Cabecera>"

    cEnv = cEnv & "         </ie2:Ie215>"

    cEnv = cEnv & "     </soapenv:Body>"

    cEnv = cEnv & "</soapenv:Envelope>"


    cUrl = "https://www7.aeat.es/wlpl/ADIA-AVIT/ws/Ie215V1SOAP"     'Dirección del Servicio
   
    Set xmlhtp = New MSXML2.XMLHTTP60  'Nombramos el objeto
    With xmlhtp
        .Open "POST", cUrl, False  
        .setRequestHeader "Content-Type", "text/xml;charset=UTF-8"
        .setRequestHeader "SOAPAction", ""
        .setRequestHeader "Content-Length", length
        .send cEnv      'Enviamos el Sobre

        Set xmldoc = New MSXML2.DOMDocument60   'Declaramos el documento a recibir
        xmldoc.loadXML .responseText            'Lo declaramos con el espacio entre XML y .response
   
        Debug.Print xmldoc.Text     'Visualizar la variable en Inmediato
        Me.NúmeroTexto = xmldoc.Text
    End With
   
    Set xmldoc = Nothing
    Set xmlhtp = Nothing

Alguien podría echarme una mano??

Gracias.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 13/Agosto/2019 a las 19:21
Hombre, as'i a ojo te faltan algunas comillas o te sobran

Ejemplo 
cEnv = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"""

Esto enviaria 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"


Ahora bien, si quieres enviar 
<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/

En ese caso te sobran 
Env = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"


Y por ultimo, pero no estoy seguro, creo que te faltan los saltos de linea

Un saludo.

Luis
El Búho es un pajarraco
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 13/Agosto/2019 a las 19:41
¿Revisaste la documentación estas seguro que el web service es SOAP?

Edito: y me contesto: Revisado si es SOAP, y de hecho el ejemplo esta muy explicito:
https://www3.agenciatributaria.gob.es/static_files/common/internet/dep/aduanas/es/aeat/adia/avit/ws/Ie215.pdf
Y la hoja del lenguaje de definición del web service: https://www3.agenciatributaria.gob.es/static_files/common/internet/dep/aduanas/es/aeat/adia/avit/ws/Ie215V1.wsdl 

Saludos.


Editado por emiliove - 13/Agosto/2019 a las 21:17
Arriba
rafaservi Ver desplegable
Habitual
Habitual


Unido: 18/Noviembre/2010
Localización: España
Estado: Sin conexión
Puntos: 139
Enlace directo a este mensaje Enviado: 14/Agosto/2019 a las 00:25
Gracias Ibauluz. Lo revisaré y miraré los saltos de línea.

Respecto a Emiliove... Gracias también ...
Lo que indica la documentación que aporta la Agencia es:

5.2.Estándares utilizados

El uso de servicios Web constituye la base de las buenas prácticas para desplegar servicios que posibiliten la interacción máquina-máquina, es decir, la automatización integral de un proceso en el que interviene varios sistemas de información (el del ciudadano/empresa y el de la Agencia Tributaria). Se pretende utilizar los estándares de facto para el desarrollo de servicios web.La estructura de los mensajes será descrita sobre la base de la creación de esquemas XML utilizando para ello la recomendaciónW3C de 28-Octubre de 2004 en http://www.w3.org/TR/xmlschema-0 y referenciada por el namespace http://www.w3.org/2001/XMLSchema Con relación a SOAP se utilizará SOAP V1.1 disponible como NOTA W3C de 08-Mayo-2000 en : http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ y referenciado por el namespace http://schemas.xmlsoap.org/soap/envelope/ En SOAP-1.1 existen dos estilos para implementar servicio, modo “rpc” y modo “document”, en línea con las recomendaciones actuales se utilizará siempre el modo “document” (style=”document”) sin ningún tipo de codificación (use=”literal”). Es decir el mensaje de entrada y salida estará descrito íntegramente por su respectivo esquema XML.En la descripción de los servicios utilizaremos WSDL 1.1 disponible como NOTA W3C de 14-Marzo-2001 en: http://www.w3.org/TR/2001/NOTE-wsdl-20010315 y referenciado por el namespace http://schemas.xmlsoap.org/wsdl/.

5.3.Medio de envío

Entorno: Internet.

Protocolo: HTTPS.

Mensajes: Web Service con SOAP 1.1 modo Document.

Certificado: Las aplicaciones que envían información a los servicios web deberán autenticarse con certificado electrónico de cliente. El uso de los servicios requiere tener instalado un certificado electrónico reconocido admitido por la Agencia Tributaria, en el ordenador desde el que se produzca el envío de la información.

Firma: Los XML intercambiados no irán firmados.


Creo que es Web Service Soap.
Respecto al resto del comentario no logro entenderte. Perdona.

Un saludo y gracias de nuevo a todos.

Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 14/Agosto/2019 a las 15:07
Te bajaste el SoapUI e intentaste desde el, como en el ejemplo que supongo viste.

Saludos.
Arriba
rafaservi Ver desplegable
Habitual
Habitual


Unido: 18/Noviembre/2010
Localización: España
Estado: Sin conexión
Puntos: 139
Enlace directo a este mensaje Enviado: 14/Agosto/2019 a las 18:22
Sí, lo descargué y estudié el vídeo.
Hice cambios, adaptaciones, pruebas para ver que tal.
Siempre con el Web Service que se proponía en el vídeo.

He intentado adaptar el Servicio de la Agencia tal y como lo he visto en el vídeo pero no da resultados.
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 14/Agosto/2019 a las 18:44
¿Cuando haces el envió como sabes que es POST y que esos son los caracteres de la cabecera? ¿Qué error te da en la respuesta?

Debes de hacer la prueba del web service todo en el SoapUI, ahí te da la estructura del envió para ese web servicio, y hacer el envió y te da la respuesta y una vez que la respuesta sea 200 ok entonces ya puedes trasladar todo a Access.

Saludos.

Arriba
rafaservi Ver desplegable
Habitual
Habitual


Unido: 18/Noviembre/2010
Localización: España
Estado: Sin conexión
Puntos: 139
Enlace directo a este mensaje Enviado: 14/Agosto/2019 a las 19:22
Realmente no lo sé si es POST.

El error que me da en tiempo de ejecución:
Error en la descarga del recurso solicitado.
EN la línea ...   .send cEnv

Miraré con SoapUI a ver si probando.
Lo que me tiene también desconcertado es lo del Certificado Electrónico.
Que está asociado a un navegador.


Muchas gracias emiliove.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 14/Agosto/2019 a las 19:56
Solo por asegurarme, ¿tienes el certificado digital de la Agencia Tributaria?

Es que a mi si intento conectarme el error que me da es:

Se ha producido un error:

  • 403  

    Error de identificación. No se detecta certificado digital o no se ha seleccionado correctamente.

  • Puede contactar con el servicio de atención al contribuyente indicando el código de error 403.


Un saludo.

Luis

El Búho es un pajarraco
Arriba
rafaservi Ver desplegable
Habitual
Habitual


Unido: 18/Noviembre/2010
Localización: España
Estado: Sin conexión
Puntos: 139
Enlace directo a este mensaje Enviado: 15/Agosto/2019 a las 10:32
Hola Ibauluz.

Sí, lo tengo instalado en Mozilla, en el navegador y, en principio, el acceso al Servicio Web es desde Access, a parte e independiente del navegador.

La Agencia tiene, para este servicio, dos formas de hacerlo por parte del usuario:
* Por su Web, accediendo con el navegador que tenga el Certificado Electrónico. Donde el usuario introduce los campos que se precisen manualmente.
* Por otro lado, por el Web Service. Donde, creo, que tengo controlada la creación del fichero XML, ya que desde la Agencia muestran ejemplos, pero en lo que fallo es en el proceso de envío del fichero. Dónde enviarlo y la forma de hacerlo.

Estoy con SoapUI a ver si averiguo algo más.

Un saludo y muchas gracias.
Arriba
rafaservi Ver desplegable
Habitual
Habitual


Unido: 18/Noviembre/2010
Localización: España
Estado: Sin conexión
Puntos: 139
Enlace directo a este mensaje Enviado: 15/Agosto/2019 a las 12:04
He probado con SoapUI el Servicio Web correspondiente a los Albaranes de Reparto:
https://www1.agenciatributaria.gob.es/wlpl/ADIA-AVIT/ws/Ie215V1SOAP

Me aparece correctamente en el Request 1 del Proyecto la información XML.

Al solicitar el servicio: el Web Service de la Agencia envía otro XML indicando que se ha producido un error:
Error de identificación. No se detecta certificado digital o no se ha seleccionado correctamente.

¿Dónde y cómo se podría indicar dicho Certificado?
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 15/Agosto/2019 a las 15:00
Mira a ver si esto te ayuda


El ultimo punto "Firmar digitalmente un proyecto de macro"


Un saludo.

Luis

PD: Perdon por la ortografia, teclado en idioma ingles
El Búho es un pajarraco
Arriba
rafaservi Ver desplegable
Habitual
Habitual


Unido: 18/Noviembre/2010
Localización: España
Estado: Sin conexión
Puntos: 139
Enlace directo a este mensaje Enviado: 15/Agosto/2019 a las 15:50
Gracias Ibauluz
Arriba
rafaservi Ver desplegable
Habitual
Habitual


Unido: 18/Noviembre/2010
Localización: España
Estado: Sin conexión
Puntos: 139
Enlace directo a este mensaje Enviado: 21/Agosto/2019 a las 12:23
He contactado con la Agencia y me han indicado que para solventar el problema de acceder mediante SoapUI hay que indicar el archivo de Certificado Digital en Preferencias y poner la clave.
Correcto, se accede bien.

El problema está con Access, ¿Cómo indicar al Certificado en Access?
En la Agencia no han sabido indicarme.
He visto y seguido el enlace de Ibauluz pero de esta forma se crea un certificado manual que no es válido para la Agencia y que me da problemas para guardarlo.
Una vez creado este certificado, en Int. Explorer aparecen los dos certificados, el correcto de la Fáb de Moneda y Timbre y el creado manualmente.
Pero no puedo seleccionar en Access el correcto, no lo reconoce a la hora de elegir.

¿Alguien sabría cómo?

Un saludo y muchas gracias.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 21/Agosto/2019 a las 23:51
¿Y como lo haces con SoapUI?

Mira el xml que te genera para enviar, probablemente tengas algo similar a esto, en cuyo caso lo tendrías que agregar a tu XML

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
 <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsasha1" />
  <Reference URI="#MsgBody">
   <Transforms>
    <Transform Algorithm="http://www.w3.org/2001/10/xml-excc14n#" />
   </Transforms>
   <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
   <DigestValue>DH9Z0Y91RCHeZoLoqFb9b4sadQQ=</DigestValue>
  </Reference>
 </SignedInfo>
<SignatureValue>UvK6R+mDjLudqM9ftzifwPRNOKyF03Wne0 (...) (...) </SignatureValue> 


<KeyInfo>
 <X509Data>
  <X509Certificate>MIIDqDCCAxGgAwIBAgIEPH (...) (...)  </X509Certificate>
 </X509Data>
 <KeyValue>
  <RSAKeyValue>
   <Modulus>4hd4FWDTGvHaoiok5xPA6baDkEzDOT7PMBI2(...) (...) </Modulus>
   <Exponent>ABCD</Exponent>
  </RSAKeyValue>
 </KeyValue>
</KeyInfo>
</Signature>


Saludos.

Luis
El Búho es un pajarraco
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable