** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Tus Funciones Favoritas & Aportaciones & Artí­culos
  Mensajes nuevos Mensajes nuevos RSS - Consumir webservices  verificar nif
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Consumir webservices verificar nif

 Responder Responder
Autor
Mensaje
VayaCaló Ver desplegable
Habitual
Habitual


Unido: 16/Septiembre/2008
Localización: España
Estado: Sin conexión
Puntos: 66
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita VayaCaló Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Consumir webservices verificar nif
    Enviado: 27/Abril/2017 a las 11:43
Notas técnicas...

- OpenSSL para transformar el certificado pk12 a pem
- Curl.exe  infraestructura de transporte
- url del webservice de aeat   https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV1SOAP
- SoapUI  para lectura de definiciones wsdl y construccion de estructura xml 

1.- XML de solicitud de verificación de un NIF

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vnif="http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV1Ent.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <vnif:VNifV1Ent>
         <vnif:Nif>???????</vnif:Nif>
         <vnif:Nombre>???????</vnif:Nombre>
      </vnif:VNifV1Ent>
   </soapenv:Body>
</soapenv:Envelope>


2.- Fichero Bat para ejecutar la consulta

curl.exe --connect-timeout 300 -d "@C-Nif.xml" -o "C-Nif.R.xml" -E "Certificado.pem:password" https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV1SOAP


Notas: 

donde... "@C-Nif.xml" es n/fichero de consulta
donde...  "C-Nif.R.xml" es el fichero devuelto por hacienda con la respuesta a la consulta


Lugares de interés sobre este asunto:

http://www.clubdelphi.com/foros/showthread.php?t=91252
https://groups.google.com/forum/?hl=es#!topic/publicesvfoxpro/1x3rqFb75c4


mas información tecnica...

https://velneo.es/foros/files/2017/02/IMPLANTACION-SII.pdf




Editado por VayaCaló - 27/Abril/2017 a las 12:09
Arriba
VayaCaló Ver desplegable
Habitual
Habitual


Unido: 16/Septiembre/2008
Localización: España
Estado: Sin conexión
Puntos: 66
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita VayaCaló Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Mayo/2017 a las 09:44
Saludos a todos.

Os informo que he podido presentar en los webservices del nuevo iva de hacienda un alta de factura emitida y una consulta sobre nif que ha sido admitida sin problemas.

Es decir, siguiendo la metodologia explicada en mi anterior post por ahora y si no cambia el sistema por los "ejpertos" de hacienda  esta es una solución adecuada, por el momento.

Claro esta que sigo estudiando la manera de hacerlo con vba, os mantendre informados.

Atentamente

AngelMiguel









Arriba
VayaCaló Ver desplegable
Habitual
Habitual


Unido: 16/Septiembre/2008
Localización: España
Estado: Sin conexión
Puntos: 66
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita VayaCaló Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Mayo/2017 a las 16:32
Holaaaaaaa.

Explicación más detallada

Notas técnicas...

- OpenSSL para transformar el certificado pk12 a pem     versión :  OpenSSL 1.0.2k 26 Jan 2017

        Fichero .bat para transformar el certificado:

               1.- C:\OpenSSL-Win32\bin\openssl.exe pkcs12 -in ./Micertificado.pfx -out ./Micertificado.pem -clcerts -nokeys 
               2.- C:\OpenSSL-Win32\bin\openssl.exe pkcs12 -in ./MiCertificado.pfx -out ./MiCertificado_key.pem -nocerts -nodes 

- Curl.exe  infraestructura de transporte    versión: curl-7.46.0-win32 

        Fichero .bat para enviar el xml de consulta de Nif:

               C:\curl-7.46.0-win32\bin\curl.exe --connect-timeout 300 -d @EnvioNif.xml -o RespuestaNif.xml --cert ./Micertificado.pem --key ./MiCertificado_key.pem https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV1SOAP  --trace ./RespuestaTrace.txt            

- SoapUI  para lectura de definiciones wsdl y construccion de estructura xml 

- url del webservice de aeat   https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV1SOAP (consultas NIF )

- XML de solicitud de verificación de un NIF

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vnif="http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV1Ent.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <vnif:VNifV1Ent>
         <vnif:Nif>???????</vnif:Nif>
         <vnif:Nombre>???????</vnif:Nombre>
      </vnif:VNifV1Ent>
   </soapenv:Body>
</soapenv:Envelope>

        Fichero .bat para enviar el xml de Envio facturas emitidas:

            C:\curl-7.46.0-win32\bin\curl.exe --connect-timeout 60 -m 60 -s -S -L --cert ./MiCertificado.pem --key ./MiCertificado_key.pem -d "@Emitida.xml" -o "Respuesta-Emitida.xml" https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP --trace ./Emitida-xmlTrace.txt

- XML de entrega de factura emitida

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <siiLR:SuministroLRFacturasEmitidas>
         <sii:Cabecera>
            <sii:IDVersionSii>0.6</sii:IDVersionSii>
            <sii:Titular>
               <sii:NombreRazon>MiEmpresa</sii:NombreRazon>
               <sii:NIF>A9999999</sii:NIF>
            </sii:Titular>
            <sii:TipoComunicacion>A0</sii:TipoComunicacion>
         </sii:Cabecera>
         <siiLR:RegistroLRFacturasEmitidas>
            <sii:PeriodoImpositivo>
               <sii:Ejercicio>2017</sii:Ejercicio>
               <sii:Periodo>01</sii:Periodo>
            </sii:PeriodoImpositivo>
            <siiLR:IDFactura>
               <sii:IDEmisorFactura>
                  <sii:NIF>A9999999</sii:NIF>
               </sii:IDEmisorFactura>
               <sii:NumSerieFacturaEmisor>168/A-4</sii:NumSerieFacturaEmisor>
               <sii:FechaExpedicionFacturaEmisor>28-01-2017</sii:FechaExpedicionFacturaEmisor>
            </siiLR:IDFactura>
            <siiLR:FacturaExpedida>
               <sii:TipoFactura>F1</sii:TipoFactura>
               <sii:FechaOperacion>15-01-2016</sii:FechaOperacion>
               <sii:ClaveRegimenEspecialOTrascendencia>01</sii:ClaveRegimenEspecialOTrascendencia>
               <sii:ImporteTotal>1121</sii:ImporteTotal>
               <sii:DescripcionOperacion>VENTAS DE  MERCADERIAS</sii:DescripcionOperacion>
               <sii:Contraparte>
                  <sii:NombreRazon>LaOtraEmpresa</sii:NombreRazon>
                  <sii:NIF>ElOtroNif</sii:NIF>
               </sii:Contraparte>
               <sii:TipoDesglose>
                  <sii:DesgloseFactura>
                     <sii:Sujeta>
                        <sii:Exenta>
                           <sii:BaseImponible>0</sii:BaseImponible>
                        </sii:Exenta>
                        <sii:NoExenta>
                           <sii:TipoNoExenta>S1</sii:TipoNoExenta>
                           <sii:DesgloseIVA>
                              <sii:DetalleIVA>
                                 <sii:TipoImpositivo>21</sii:TipoImpositivo>
                                 <sii:BaseImponible>1000</sii:BaseImponible>
                                 <sii:CuotaRepercutida>121</sii:CuotaRepercutida>
                                 <sii:TipoRecargoEquivalencia>0</sii:TipoRecargoEquivalencia>
                                 <sii:CuotaRecargoEquivalencia>0</sii:CuotaRecargoEquivalencia>
                              </sii:DetalleIVA>
                           </sii:DesgloseIVA>
                        </sii:NoExenta>
                     </sii:Sujeta>
                  </sii:DesgloseFactura>
               </sii:TipoDesglose>
            </siiLR:FacturaExpedida>
      </siiLR:RegistroLRFacturasEmitidas>
    </siiLR:SuministroLRFacturasEmitidas>
  </soapenv:Body>
</soapenv:Envelope>


Lugares de interés sobre este asunto:

http://www.clubdelphi.com/foros/showthread.php?t=91252
https://groups.google.com/forum/?hl=es#!topic/publicesvfoxpro/1x3rqFb75c4
https://documentacion.cnmc.es/doc/pages/viewpage.action?pageId=3178505

mas información tecnica...

https://velneo.es/foros/files/2017/02/IMPLANTACION-SII.pdf


Mis agradecimientos...

A todos vosotros, a Jordi de Bruma por escuchar mis lamentaciones y darme pistas
Muchisimas gracias. Estoy en deuda con vosotros.

Sigo con el resto de la tares.... si hay novedades os mantendré informados.

Atentamente
Arriba
VayaCaló Ver desplegable
Habitual
Habitual


Unido: 16/Septiembre/2008
Localización: España
Estado: Sin conexión
Puntos: 66
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita VayaCaló Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Mayo/2017 a las 12:53



Como consultar un Nif con XML v6.0 en ms access con un certificado valido almacenado en el navegador


Option Compare Database
Option Explicit

Dim XMLDoc As MSXML2.DOMDocument60

Private Sub Comando0_Click()
    Call CompruebaNif
End Sub

Sub CompruebaNif()

    Me.TxtRespuesta = vbNullString
    Me.TxtEnvio = vbNullString
           
    Dim sMsg As String
    Dim sURL As String
    Dim sEnv As String
    Dim XML_Node As IXMLDOMNode
    Dim objHttp  As Object
    Dim XMLDoc As MSXML2.DOMDocument60
    
    
    sURL = "https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV1SOAP"
    
    sEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
    sEnv = sEnv & "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:vnif=""http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV1Ent.xsd"">"
    sEnv = sEnv & "<soapenv:Header/>"
    sEnv = sEnv & "<soapenv:Body>"
    sEnv = sEnv & "<vnif:VNifV1Ent>"
    sEnv = sEnv & "<vnif:Nif>" & Trim(TxtNif) & "</vnif:Nif>"
    sEnv = sEnv & "<vnif:Nombre>" & Trim(TxtNombre) & "</vnif:Nombre>"
    sEnv = sEnv & "</vnif:VNifV1Ent>"
    sEnv = sEnv & "</soapenv:Body>"
    sEnv = sEnv & "</soapenv:Envelope>"
       
    
    Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
    Set XMLDoc = New MSXML2.DOMDocument60
    
    objHttp.Open "Post", sURL, False
    objHttp.setRequestHeader "Content-Type", "text/xml"
    objHttp.SetOption SXH_OPTION_SELECT_CLIENT_SSL_CERT, "Mi certificado"
    objHttp.send (sEnv)
    
    XMLDoc.async = False
    XMLDoc.Load (objHttp.responseXML)
        
        'Dim HTTPResult As String
        'HTTPResult = objHttp.responseText
        'MsgBox HTTPResult
        
    If XMLDoc.parseError.errorCode = 0 Then
        If XMLDoc.ReadyState = 4 Then
           AddNode XMLDoc.documentElement
        End If
    Else
        MsgBox XMLDoc.parseError.reason & vbCrLf & XMLDoc.parseError.Line & vbCrLf & XMLDoc.parseError.srcText
    End If
    Set XMLDoc = Nothing
    Set objHttp = Nothing
    Set XMLDoc = Nothing
End Sub




Private Sub AddNode(ByRef XML_Node As IXMLDOMNode, Optional ByRef TreeNode As Node)
    
    Dim xNodeList As IXMLDOMNodeList

       
    If XML_Node.nodeTypedValue = "env:ClientCodigo[-1].No identificado" Then
       Me.TxtNombre = "Codigo no identificado"
       Exit Sub
    End If
    
    If Left(XML_Node.nodeTypedValue, 9) = Trim(Me.TxtNif) Then
    End If
    If Right(XML_Node.nodeTypedValue, Len(XML_Node.nodeTypedValue) - 9) <> Trim(Me.TxtNombre) Then
        Me.TxtNombre = Right(XML_Node.nodeTypedValue, Len(XML_Node.nodeTypedValue) - 9)
    End If
    
    Exit Sub
             
End Sub

Arriba
VayaCaló Ver desplegable
Habitual
Habitual


Unido: 16/Septiembre/2008
Localización: España
Estado: Sin conexión
Puntos: 66
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita VayaCaló Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Mayo/2017 a las 11:54
Actualización de Webservices con presentación de factura emitida y consulta Nif integrada.
Sin optimizar... en bruto,  funcional.





Private Sub CmdEnvio_Click()
    Call enviafcturaemitida
End Sub


Private Sub enviafcturaemitida()
    
    Dim sMsg As String
    Dim sURL As String
    Dim sEnv As String
    Dim XML_Node As IXMLDOMNode
    Dim objHttp  As Object
    Dim XMLDoc As MSXML2.DOMDocument60
    
    Me.TxtRespuesta = vbNullString
    
    
    sURL = "https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"

 ''''' Chr(34)=  "

sEnv = vbNullString

sEnv = sEnv & "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>"
sEnv = sEnv & "<soapenv:Envelope xmlns:soapenv=" & Chr(34) & "http://schemas.xmlsoap.org/soap/envelope/" & Chr(34) & " xmlns:siiLR=" & Chr(34) _
                   & "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" & Chr(34) _
                   & " xmlns:sii=" & Chr(34) & "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd" & Chr(34) & ">"

sEnv = sEnv & "<soapenv:Header/>"
sEnv = sEnv & "<soapenv:Body>"
sEnv = sEnv & "<siiLR:SuministroLRFacturasEmitidas>"

sEnv = sEnv & "<sii:Cabecera>"
    sEnv = sEnv & "<sii:IDVersionSii>" & Me.txtVersionSII & "</sii:IDVersionSii>"
    sEnv = sEnv & "<sii:Titular>"
    sEnv = sEnv & "<sii:NombreRazon>" & Me.TxtAñoEmpresa & "</sii:NombreRazon>"
    sEnv = sEnv & "<sii:NIF>" & Me.TxtNifEmpresa & "</sii:NIF>"
    sEnv = sEnv & "</sii:Titular>"
    sEnv = sEnv & "<sii:TipoComunicacion>" & Me.TxtTipoComunicacion & "</sii:TipoComunicacion>"
sEnv = sEnv & "</sii:Cabecera>"

sEnv = sEnv & "<siiLR:RegistroLRFacturasEmitidas>"

sEnv = sEnv & "<sii:PeriodoImpositivo>"
    sEnv = sEnv & "<sii:Ejercicio>" & Me.TxtAñoEmpresa & "</sii:Ejercicio>"
    sEnv = sEnv & "<sii:Periodo>" & Me.TxtMesEmpresa & "</sii:Periodo>"
sEnv = sEnv & "</sii:PeriodoImpositivo>"

sEnv = sEnv & "<siiLR:IDFactura>"
    sEnv = sEnv & "<sii:IDEmisorFactura>"
    sEnv = sEnv & "<sii:NIF>" & Me.TxtNifEmpresa & "</sii:NIF>"
    sEnv = sEnv & "</sii:IDEmisorFactura>"
    sEnv = sEnv & "<sii:NumSerieFacturaEmisor>" & Me.txtNumeroFactura & "</sii:NumSerieFacturaEmisor>"
    sEnv = sEnv & "<sii:FechaExpedicionFacturaEmisor>" & Me.TxtFechaExpedicion & "</sii:FechaExpedicionFacturaEmisor>"
sEnv = sEnv & "</siiLR:IDFactura>"

sEnv = sEnv & "<siiLR:FacturaExpedida>"
    sEnv = sEnv & "<sii:TipoFactura>" & Me.TxtTipoFActura & "</sii:TipoFactura>"
    sEnv = sEnv & "<sii:FechaOperacion>" & Me.txtFechaOperacion & "</sii:FechaOperacion>"
    sEnv = sEnv & "<sii:ClaveRegimenEspecialOTrascendencia>" & Me.txtClaveRegimenEspecial & "</sii:ClaveRegimenEspecialOTrascendencia>"
    sEnv = sEnv & "<sii:ImporteTotal>" & Me.TxtTotalFactura & "</sii:ImporteTotal>"
    sEnv = sEnv & "<sii:DescripcionOperacion>" & Me.txtDescripcionOperacion & "</sii:DescripcionOperacion>"
sEnv = sEnv & "<sii:Contraparte>"
    sEnv = sEnv & "<sii:NombreRazon>" & Trim(Me.txtNombreEmpresaCompradora) & "</sii:NombreRazon>"
    sEnv = sEnv & "<sii:NIF>" & Trim(Me.txtNifEmpresaCompradora) & "</sii:NIF>"
sEnv = sEnv & "</sii:Contraparte>"

sEnv = sEnv & "<sii:TipoDesglose>"
sEnv = sEnv & "<sii:DesgloseFactura>"
sEnv = sEnv & "<sii:Sujeta>"
sEnv = sEnv & "<sii:NoExenta>"
    sEnv = sEnv & "<sii:TipoNoExenta>S1</sii:TipoNoExenta>"
    sEnv = sEnv & "<sii:DesgloseIVA>"
        sEnv = sEnv & "<sii:DetalleIVA>"
        sEnv = sEnv & "<sii:TipoImpositivo>" & Me.TxtTipoIva & "</sii:TipoImpositivo>"
        sEnv = sEnv & "<sii:BaseImponible>" & Me.TxtBaseImponible & "</sii:BaseImponible>"
        sEnv = sEnv & "<sii:CuotaRepercutida>" & Me.TxtCuotaIva & "</sii:CuotaRepercutida>"
        sEnv = sEnv & "<sii:TipoRecargoEquivalencia>0</sii:TipoRecargoEquivalencia>"
        sEnv = sEnv & "<sii:CuotaRecargoEquivalencia>0</sii:CuotaRecargoEquivalencia>"
        sEnv = sEnv & "</sii:DetalleIVA>"
    sEnv = sEnv & "</sii:DesgloseIVA>"
sEnv = sEnv & "</sii:NoExenta>"
sEnv = sEnv & "</sii:Sujeta>"
sEnv = sEnv & "</sii:DesgloseFactura>"
sEnv = sEnv & "</sii:TipoDesglose>"
sEnv = sEnv & "</siiLR:FacturaExpedida>"
                
sEnv = sEnv & "</siiLR:RegistroLRFacturasEmitidas>"
sEnv = sEnv & "</siiLR:SuministroLRFacturasEmitidas>"
sEnv = sEnv & "</soapenv:Body>"
sEnv = sEnv & "</soapenv:Envelope>"

    Me.TxtRespuesta = vbNullString
    Me.TxtRespuesta = sEnv
    'Exit Sub
    
    Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
    Set XMLDoc = New MSXML2.DOMDocument60
    
    objHttp.Open "Post", sURL, False
    objHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
    objHttp.SetOption SXH_OPTION_SELECT_CLIENT_SSL_CERT, "El certificado de mi empresa"
    objHttp.send (sEnv)
    
    'XMLDoc.async = False
    XMLDoc.Load (objHttp.responseXML)

         
         Dim HTTPResult As String
         HTTPResult = objHttp.responseText
         Me.TxtRespuesta = HTTPResult
     
     'Exit Sub
     
    If XMLDoc.parseError.errorCode = 0 Then
        If XMLDoc.ReadyState = 4 Then
           AddNode XMLDoc.documentElement
        End If
    Else
        MsgBox XMLDoc.parseError.reason & vbCrLf & XMLDoc.parseError.Line & vbCrLf & XMLDoc.parseError.srcText
    End If
    
    Set XMLDoc = Nothing
    Set objHttp = Nothing
    Set XMLDoc = Nothing

End Sub


Private Sub AddNode(ByRef XML_Node As IXMLDOMNode, Optional ByRef TreeNode As Node)
    
    Dim xNode As Node
    Dim xNodeList As IXMLDOMNodeList
    Dim i As Long

    If XML_Node.nodeTypedValue = "env:ClientCodigo[-1].No identificado" Then
      
    If XML_Node.nodeTypedValue = "env:ClientCodigo[-1].No identificado" Then
       Me.txtNombreEmpresaCompradora = "Codigo no identificado"
    End If
    
    If Left(XML_Node.nodeTypedValue, 9) = Trim(Me.txtNifEmpresaCompradora) Then
    
    End If
    
    If Right(XML_Node.nodeTypedValue, Len(XML_Node.nodeTypedValue) - 9) <> Trim(Me.txtNombreEmpresaCompradora) Then
        Me.txtNombreEmpresaCompradora = Right(XML_Node.nodeTypedValue, Len(XML_Node.nodeTypedValue) - 9)
    End If
    
    End If
    
    If TreeNode Is Nothing Then
        Set xNode = TreeView1.Nodes.Add
    Else
        Set xNode = TreeView1.Nodes.Add(TreeNode, tvwChild)
    End If
    
    xNode.Expanded = True
    xNode.Text = XML_Node.nodeName
    
    If xNode.Text = "#text" Then
        xNode.Text = XML_Node.nodeTypedValue
    Else
        xNode.Text = "<" + xNode.Text + ">"
    End If
     
    Set xNodeList = XML_Node.childNodes
    For i = 0 To xNodeList.length - 1
        AddNode xNodeList.Item(i), xNode
    Next


             
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub CompruebaNif()
            
    Dim sMsg As String
    Dim sURL As String
    Dim sEnv As String
    Dim XML_Node As IXMLDOMNode
    Dim objHttp  As Object
    Dim XMLDoc As MSXML2.DOMDocument60
    
    
    sURL = "https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV1SOAP"
    
    sEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
    sEnv = sEnv & "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:vnif=""http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV1Ent.xsd"">"
    sEnv = sEnv & "<soapenv:Header/>"
    sEnv = sEnv & "<soapenv:Body>"
    sEnv = sEnv & "<vnif:VNifV1Ent>"
    sEnv = sEnv & "<vnif:Nif>" & Trim(txtNifEmpresaCompradora) & "</vnif:Nif>"
    sEnv = sEnv & "<vnif:Nombre>" & Trim(txtNombreEmpresaCompradora) & "</vnif:Nombre>"
    sEnv = sEnv & "</vnif:VNifV1Ent>"
    sEnv = sEnv & "</soapenv:Body>"
    sEnv = sEnv & "</soapenv:Envelope>"
       
    Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
    Set XMLDoc = New MSXML2.DOMDocument60
    
    objHttp.Open "Post", sURL, False
    objHttp.setRequestHeader "Content-Type", "text/xml"
    objHttp.SetOption SXH_OPTION_SELECT_CLIENT_SSL_CERT, "El certificado de mi empresa"
    objHttp.send (sEnv)
    
    XMLDoc.async = False
    XMLDoc.Load (objHttp.responseXML)
        
        
    If XMLDoc.parseError.errorCode = 0 Then
        If XMLDoc.ReadyState = 4 Then
           AddNodeNif XMLDoc.documentElement
        End If
    Else
        MsgBox XMLDoc.parseError.reason & vbCrLf & XMLDoc.parseError.Line & vbCrLf & XMLDoc.parseError.srcText
    End If
    Set XMLDoc = Nothing
    Set objHttp = Nothing
    Set XMLDoc = Nothing
End Sub




Private Sub AddNodeNif(ByRef XML_Node As IXMLDOMNode, Optional ByRef TreeNode As Node)
    
    Dim xNode As Node
    Dim xNodeList As IXMLDOMNodeList
    Dim i As Long

    If XML_Node.nodeTypedValue = "env:ClientCodigo[-1].No identificado" Then
       
    If XML_Node.nodeTypedValue = "env:ClientCodigo[-1].No identificado" Then
       Me.txtNombreEmpresaCompradora = "Codigo no identificado": Me.txtNombreEmpresaCompradora.SetFocus
       MsgBox "Codigo DE EMPRESA no identificado", vbCritical, "Balances"
    End If
    
    If Left(XML_Node.nodeTypedValue, 9) = Trim(Me.txtNifEmpresaCompradora) Then
    End If
    
    If Right(XML_Node.nodeTypedValue, Len(XML_Node.nodeTypedValue) - 9) <> Trim(Me.txtNombreEmpresaCompradora) Then
        Me.txtNombreEmpresaCompradora = Right(XML_Node.nodeTypedValue, Len(XML_Node.nodeTypedValue) - 9)
    End If
    
    End If
    
    
   If TreeNode Is Nothing Then
        Set xNode = TreeView1.Nodes.Add
    Else
        Set xNode = TreeView1.Nodes.Add(TreeNode, tvwChild)
    End If
    
    xNode.Expanded = True
    xNode.Text = XML_Node.nodeName
    
    If xNode.Text = "#text" Then
        xNode.Text = XML_Node.nodeTypedValue
    Else
        xNode.Text = "<" + xNode.Text + ">"
    End If
     
    Set xNodeList = XML_Node.childNodes
    For i = 0 To xNodeList.length - 1
        AddNode xNodeList.Item(i), xNode
    Next
    
    
    
End Sub


Private Sub txtNifEmpresaCompradora_AfterUpdate()
 Call CompruebaNif
End Sub



Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable