Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Errores (relacionados con al AEAT)
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-12-2024
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 114
Poder: 3
_Io Va por buen camino
Comprobar Conexión con la AEAT

Hola, Buenas noches.

Me ha parecido ver en los foros la respuesta buscando otra cosa, pero ahora que lo busco no lo encuentro.

Cómo hacéis para comprobar la conexión con la AEAT, sin tener que enterarte durante el envío de un Registro de Facturación?

Muchas Gracias !!!
Responder Con Cita
  #2  
Antiguo 10-03-2025
Avatar de gcqZW
gcqZW gcqZW is offline
Miembro
 
Registrado: ene 2025
Ubicación: Zaragoza
Posts: 274
Poder: 2
gcqZW Va por buen camino
Un poco tarde te respondo, pero yo compruebo asi la conexión ( no sé si te servirá ya que es php ):

Código PHP:
function comprobarConexion() {
    
$url 'https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl';

    
$ch curl_init($url);

    
curl_setopt($chCURLOPT_NOBODYtrue);
    
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    
curl_setopt($chCURLOPT_TIMEOUT10);
    
curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse);
    
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);

    
curl_exec($ch);

    if (
curl_errno($ch)) {
        echo 
"Error de conexión: " curl_error($ch) . "\n";
    } else {
        
$httpCode curl_getinfo($chCURLINFO_HTTP_CODE);
        if (
$httpCode == 200) {
            echo 
"Conexión exitosa\n";
        } else {
            echo 
"El servidor respondió con código HTTP: $httpCode\n";
        }
    }

    
curl_close($ch);
}

comprobarConexion(); 
__________________
La religión es personal e intransferible.
Responder Con Cita
  #3  
Antiguo 10-03-2025
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 114
Poder: 3
_Io Va por buen camino
Hola, buenos días.

Muchas gracias por tu respuesta.
Tuve mi momento con PHP, pero pasó hace mucho tiempo y sinceramente no lo entiendo.

Huso Delphi12, y al final he resuelto la papeleta realizando una consulta , que sé que no hay resultados,
pero si me viene relleno la cabecera, sé que la AEAT me ha contestado.
No es la forma más eficiente, pero me vale.

Saludos
Responder Con Cita
  #4  
Antiguo 10-03-2025
Avatar de gcqZW
gcqZW gcqZW is offline
Miembro
 
Registrado: ene 2025
Ubicación: Zaragoza
Posts: 274
Poder: 2
gcqZW Va por buen camino
Basicamente hace lo mismo que dices, solo recibe cabecera de vuelta, y depende de cual sea (200 ok) pues me dice si se ha podido conectar o no.
__________________
La religión es personal e intransferible.
Responder Con Cita
  #5  
Antiguo 07-05-2025
xamminf xamminf is offline
Miembro
 
Registrado: ene 2017
Posts: 216
Poder: 10
xamminf Va por buen camino
Cita:
Empezado por gcqZW Ver Mensaje
Basicamente hace lo mismo que dices, solo recibe cabecera de vuelta, y depende de cual sea (200 ok) pues me dice si se ha podido conectar o no.
No: Hace algo más que me parece que es muy interesante: Conecta con el servidor Db2 de la agencia.

Y así metemos en el mismo paquete la conexion web + disponibilidad server Db2
Responder Con Cita
  #6  
Antiguo 12-05-2025
maikl maikl is offline
Registrado
 
Registrado: mar 2025
Posts: 7
Poder: 0
maikl Va por buen camino
Hola, estoy intentando hacer algo parecido pero a parte de la conexión con el servidor también quiero comprobar que el certificado y la clave indicadas son correctas, y que el nif también. Digamos que esté todo listo para entrar facturas.
Me suena que había una conexión para pedir el último registro que se ha enviado pero no logro encontrarlo. Una conexión de este tipo sería ideal ya que no modifica nada y además permite comprobar que todos los parámetros están bien configurados.
Alguien sabe la petición que se debe hacer?
Saludos!
Responder Con Cita
  #7  
Antiguo 12-05-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 862
Poder: 3
bmfranky Va por buen camino
Esto:


Cita:
XML de entrada
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:con="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/ConsultaLR.xsd"
xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<con:ConsultaFactuSistemaFacturacion>
<con:Cabecera>
<sum:IDVersion>1.0</sum:IDVersion>
<sum:ObligadoEmision>
<sum:NombreRazon>EMPRESAXXXX</sum:NombreRazon>
<sum:NIF>XXXXXXXXX</sum:NIF>
</sum:ObligadoEmision>
</con:Cabecera>
<con:FiltroConsulta>
<con:PeriodoImputacion>
<sum:Ejercicio>2024</sum:Ejercicio>
<sum:Periodo>11</sum:Periodo>
</con:PeriodoImputacion>
</con:FiltroConsulta>
</con:ConsultaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>
Lo puedes hallar en la pagina 93, del documento de descripción de los servicios web aquí.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #8  
Antiguo 12-05-2025
maikl maikl is offline
Registrado
 
Registrado: mar 2025
Posts: 7
Poder: 0
maikl Va por buen camino
Es fantástico, muchas gracias !!! No lo estaba encontrando.
Responder Con Cita
  #9  
Antiguo 22-05-2025
jlmoli_67 jlmoli_67 is offline
Miembro
 
Registrado: feb 2024
Posts: 125
Poder: 3
jlmoli_67 Va por buen camino
Cita:
Empezado por _Io Ver Mensaje
Hola, buenos días.

Muchas gracias por tu respuesta.
Tuve mi momento con PHP, pero pasó hace mucho tiempo y sinceramente no lo entiendo.

Huso Delphi12, y al final he resuelto la papeleta realizando una consulta , que sé que no hay resultados,
pero si me viene relleno la cabecera, sé que la AEAT me ha contestado.
No es la forma más eficiente, pero me vale.

Saludos



Buenas,
Hoy me ha tocado dejar cerrado el tema de comprobar la conexion antes del envio.
En un primer momento utilice el metodo de enviar una consulta en toda regla y segun la respuesta pues determinaba si la conexion a la aeat se establecia o no.

Despues me parecio interesante el metodo en php expuesto mas arriba y lo he estado probando pero da error en el sentido de que el wsdl puede no responder con el servicio verifactu estando activo por lo tanto no vale.


Por ultimo he hecho una funcion en la que me muestra si la conexion se establece o no recogiendo la respuesta al intentar conectar a la url a la que se envia la consulta pero sin enviar el xml de consulta y por tanto me evito tener que rellenar los parametros de la consulta.


en vb .net:


Código:
 Public Function VerificarServicioAEAT(url As String, rutaCertificadoPFX As String, passwordCertificado As String) As Boolean
        Try
            ' Forzar protocolo TLS 1.2

            System.Net.ServicePointManager.SecurityProtocol = DirectCast(3072, System.Net.SecurityProtocolType)
        
          ' Cargar certificado
             Dim cert As New X509Certificate2(rutaCertificadoPFX, passwordCertificado)

            ' Preparar la solicitud
            Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
            request.Method = "POST" 
            request.ContentLength = 0
            request.ClientCertificates.Add(cert)
            request.Timeout = 10000

            ' Intentar obtener respuesta
            Using response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
                MsgBox("Código de respuesta: " & response.StatusCode)
                Return response.StatusCode = HttpStatusCode.OK OrElse response.StatusCode = HttpStatusCode.Accepted
            End Using

        Catch ex As WebException
            If ex.Response IsNot Nothing Then
                Using resp = CType(ex.Response, HttpWebResponse)
                    MsgBox("Error HTTP: " & resp.StatusCode.ToString())
                    MsgBox("Descripción: " & resp.StatusDescription)
                End Using
            Else
                MsgBox("Error sin respuesta HTTP: " & ex.Message)
            End If
            Return False

        Catch ex As Exception
            MsgBox("Error general: " & ex.Message)
            Return False
        End Try
    End Function



VerificarServicioAEAT("https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP", "c:\certificados\micertificado.pfx", passwordCertificado)


un saludo
Responder Con Cita
  #10  
Antiguo 11-07-2025
FacilIng FacilIng is offline
Miembro
 
Registrado: may 2025
Posts: 74
Poder: 2
FacilIng Va por buen camino
Buenos días,

Desde ayer a las 12:58 el response.StatusCode es "299 - Undefined".
No sé si es que esta comprobación ha dejado de funcionar o que ha habido algún cambio en la AEAT.
La verdad es q es un pena pq funcionaba muy bien.

Muchas gracias.
Responder Con Cita
  #11  
Antiguo 13-07-2025
jlmoli_67 jlmoli_67 is offline
Miembro
 
Registrado: feb 2024
Posts: 125
Poder: 3
jlmoli_67 Va por buen camino
Buenas,

En principio el mismo codigo 299 ya significaria que el servicio esta funcionando ya que no es un código de estado HTTP estándar por lo tanto el servicio lo ha asignado como respuesta. Seguramente lo asignaran a los mensajes soap que carecen de xml. Faltaria comprobar esto que te digo llamando a la funcion en un momento en el que realmente el servicio este caido. Intentare comprobarlo. Los viernes por la noche suelen pararlo para hacer "sus cositas".

Esta es la cabecera de respuesta (luego hay respuesta):

Código:
dit-niu: 55000611386
dit-tarea: 7190
dit-servidor: WLP00402
dit-idpeticion: 20250713101103269026
x-ua-compatible: IE=7
Content-Length: 253
Content-Type: text/xml; charset=UTF-8
Date: Sun, 13 Jul 2025 08:11:03 GMT
Set-Cookie: CERT_WWW1=67CECE645A1A038662C70C21B90FD0829C6022BACB433FE56F92234B2D3A2CA665A4AB87BF542710B93416FC106266A9B88DAA70C5F2A775B856E87D8CC69DFB1562A823482261607AE84A8DA0F0CA840A0AD3FEM2kLpaFKkQfHR6To7qnvuBi5KmUH55X01WwoypqxmWzw7sqeMEpkYTcFXyt6T3rPP759aYLKch20tIY9TdVtW9kIKheF1AWPwtdfcuKZW+iu5KjbiyyuHt3qKJo3lIyYuejrZRHwNJ3/DX70rgGNDxws8NBSsJGIec6YG1cJ0/GOOCl6VQefTu6PHnlunvOW2iEyxAK6cOHnV+cj24iXhytm0jMIAsq+Of4EBRG9dHgc2C7iPaOY1/z5hL9rbAlpcnFxMkR6xTMTP9Z1yElf6fPqhNNeatfDeCRVB7UQepVThNsaVqVEXYdd1/cAiXwokndH+QOEkIhkauVSxv2ccE3o4xhQe3CztrZnzSDBsdXFBxN7JDsEafl5ArrH2EcDtjOV53XqyrVf+cj0mIzWs5hih81ZLiA==; Domain=.aeat.es; Path=/; HttpOnly; Secure,CERT_WWW1V=20250713-09410326; Domain=.aeat.es; Path=/; Secure,sgat_id_usr_sede=%7B%22tipoAcceso%22%3A%22C%22%2C%22fechaYHora%22%3A%2220250713101103270%22%2C%22nombre%22%3A%22MOLINA%20MU%C3%91OZ%20JOS%C3%89%20LUIS%22%7D; Domain=.aeat.es; Path=/; Secure
dit-codigo-respuesta: 99999
content-language: es-ES
expires: Thu, 01 Dec 1994 16:00:00 GMT
cache-control: no-cache="set-cookie, set-cookie2"
x-site: Sede
referrer-policy: strict-origin-when-cross-origin
x-xss-protection: 1; mode=block
strict-transport-security: max-age=31536000; includeSubDomains
content-security-policy: frame-ancestors 'self' *.aeat.es

Última edición por Neftali [Germán.Estévez] fecha: 14-07-2025 a las 08:30:20. Razón: Añadir Tags par que se lea mejor
Responder Con Cita
  #12  
Antiguo 14-07-2025
FacilIng FacilIng is offline
Miembro
 
Registrado: may 2025
Posts: 74
Poder: 2
FacilIng Va por buen camino
Bueno, lo he solucionado con ayuda del Sr. Copilot que me ha echado una mano ...

Simplemente añado "HEAD" en la preparación de la solicitud, para saber solo si responde el servicio, ignorando el contenido.
Quedaría así:
Código:
            ' Preparar la solicitud
            Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
            request.Method = "POST" 
            request.ContentLength = 0
            request.ClientCertificates.Add(cert)
            request.Timeout = 10000
            request.Method = "HEAD" 'COPILOT --> Solo solicita los encabezados

            ' Obtener respuesta
            Using response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
                Return response.StatusCode = HttpStatusCode.OK
            End Using
Y con esto y un bizcocho ...
Muchas gracias por la ayuda jlmoli_67!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comprobar conexión con Delphi dante148 Conexión con bases de datos 1 02-11-2011 05:13:37
Comprobar conexion antes de conectar jandro Conexión con bases de datos 7 09-09-2010 16:27:17
comprobar conexion ftp exitosa... Greco Internet 3 04-09-2008 15:14:05
Comprobar si existe un directorio en una conexión FTP developerManu Varios 4 24-10-2005 13:27:47
Comprobar la conexion al servidor de bd fjolivares Conexión con bases de datos 5 30-01-2004 11:01:14


La franja horaria es GMT +2. Ahora son las 21:57:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi