![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Funcionamiento de SOAP y error con wsdl
Buenas, estoy desarrollando una aplicación en php para verifactu y tengo algunos xml que he conseguido probar desde el entorno de pruebas que proporciona la AEAT pero ahora estoy intentando hacer el soap desde mi aplicación y me da un error al intentar cargar entidades del mismo.
El error que me da es el siguiente: Código:
"SOAP-ERROR: Parsing WSDL: Couldn't load from 'h_t_t_p_s://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl' : failed to load external entity "h_t_t_p_s://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl" " y mi código esta así ahora mismo: Código:
$xml = cargarHistorico($anio, $mes);
// Definiciones proporcionadas
$wsdlUrl = 'h_t_t_p_s://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl';
$certificatePath = RUTA_CERTIFICADO_VERIFACTU;
$certificatePassword = RUTA_PASSWD_CERTIFICADO_VERIFACTU;
// Verificar si el WSDL es accesible
$wsdlContent = @file_get_contents($wsdlUrl);
if ($wsdlContent === false) {
echo "No se puede acceder al WSDL. Verifica la URL y la configuración del servidor.";
return;
} else {
echo "WSDL cargado correctamente.\n";
}
try {
// Crear el cliente SOAP con las configuraciones proporcionadas
$client = new SoapClient($wsdlUrl, [ // Nombre del servicio
'local_cert' => $certificatePath,
'passphrase' => $certificatePassword,
'trace' => 1,
'exceptions' => 1
]);
} catch (SoapFault $th) {
$mensajeError = $th->getMessage();
echo "Error al crear el cliente SOAP: " . $th->getMessage();
return;
}
try {
// Llamada al método SOAP
$response = $client->__soapCall('EnviarFactura', [['facturaXML' => $xml]]);
return $response;
} catch (SoapFault $fault) {
echo "Error en la llamada SOAP: " . $fault->getMessage();
return;
}
|
|
#2
|
|||
|
|||
|
la url que coges es para la configuracion del servicio.
La url de pruebas es: Código:
https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP |
|
#3
|
|||
|
|||
|
Cita:
Usando ese endpoint me da el siguiente error: "SOAP-ERROR: Parsing WSDL: Couldn't load from 'h_t_t_p_s://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP' : EndTag: '</' not found" |
|
#4
|
|||
|
|||
|
Cita:
Código PHP:
Código PHP:
|
|
#5
|
|||
|
|||
|
la variable $xml la cargo con el metodo cargarHistorico($anio, $mes), al cual le paso el año y el mes ya que he visto que para hacer la solicitud al endpoint me pide esos dos campos obligatorios.
esa variable lo que tiene tras la carga es lo siguiente (cambio los datos del emisor). Código:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="h_t_t_p://schemas.xmlsoap.org/soap/envelope/" xmlns:con="h_t_t_p_s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/ConsultaLR.xsd" xmlns:sum="h_t_t_p_s://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>NombreEmisor</sum:NombreRazon>
<sum:NIF>00000000X</sum:NIF>
</sum:ObligadoEmision>
</con:Cabecera>
<con:FiltroConsulta>
<con:PeriodoImputacion>
<sum:Ejercicio>2025</sum:Ejercicio>
<sum:Periodo>01</sum:Periodo>
</con:PeriodoImputacion>
</con:FiltroConsulta>
</con:ConsultaFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>
Es posible que dentro del soap tenga que usar un archivo pem y no un p12? estoy intentando eso pero me sigue dando errores |
|
#6
|
|||
|
|||
|
Que quieres hacer, enviar o consultar, el ultimo xml que has puesto es de consulta?
|
|
#7
|
|||
|
|||
|
la verdad que cualquiera me vale pero de momento la parte que estoy haciendo es la de consulta, en el entorno de prueba de la AEAT donde entras con certificado electrónico he probado ese xml y si me devuelve el xml con las facturas que tengo enviadas pero ahora al intentar hacerlo desde la aplicación de php no consigo que funcione correctamente el soap (es la primera vez que toco SOAP y llevo con php 2 meses)
|
|
#8
|
|||
|
|||
|
Cita:
Código PHP:
Código PHP:
|
|
#9
|
|||
|
|||
|
Buenas, me esta pasando un error parecido en el proyecto que tengo en php para el tema de verifactu, inteno crear el cliente SOAP y todo el rato me sale este error:
Error: Código:
message = "SOAP-ERROR: Parsing WSDL: Couldn't load from 'h_t_t_p_s://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP' : failed to load external entity "h_t_t_p_s://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP" " *Exception*string = "" code = 0 file = "C:\xampp\htdocs\factu\funciones\funciones_verifactu.php" line = 489 *Exception*trace = array(2) *Exception*previous = null faultstring = "SOAP-ERROR: Parsing WSDL: Couldn't load from 'h_t_t_p_s://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP' : failed to load external entity "h_t_t_p_s://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP" " faultcode = "WSDL" Código PHP:
Código PHP:
Código:
<soapenv:Envelope xmlns:soapenv="h_t_t_p://schemas.xmlsoap.org/soap/envelope/" xmlns:con="h_t_t_p_s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/ConsultaLR.xsd" xmlns:sum="h_t_t_p_s://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>Certificado Pruebas</sum:NombreRazon> <sum:NIF>A39200019</sum:NIF> </sum:ObligadoEmision> </con:Cabecera> <con:FiltroConsulta> <con:PeriodoImputacion> <sum:Ejercicio>2025</sum:Ejercicio> <sum:Periodo>04</sum:Periodo> </con:PeriodoImputacion> </con:FiltroConsulta> </con:ConsultaFactuSistemaFacturacion> </soapenv:Body> </soapenv:Envelope> |
|
#10
|
|||
|
|||
|
Estoy en ese mismo punto, pero he conseguido extraer mas sobre el error y me especifica que falta la Cabecera en el XML y en la variable donde tengo el XML si está ese nodo.
|
|
#11
|
|||
|
|||
|
Hola. Disculpad, pero ¿a qué certificado de prueba de la AEAT te refieres? Tenía entendido que la AEAT no facilitaba ningún certificado de prueba, ni siquiera para el portal de pruebas.
Asimismo, ¿cómo hacéis para proteger el certificado digital, una vez subido en el hosting web? |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Error después de actualizar el WSDL | newtron | Envío de registros y sus respuestas | 17 | 03-02-2025 10:18:26 |
| Error al importar el ultimo WSDL | MAAM | Envío de registros y sus respuestas | 0 | 04-12-2024 18:51:51 |
| error al importar wsdl | ANCELMO | Delphi para la web | 2 | 23-08-2018 11:04:05 |
| error al importar WSDL SOAP Server | GerTorresM | Providers | 5 | 23-08-2013 18:20:32 |
| Consumir WebService. Ayuda con XML,WSDL,XSD,SOAP | josemmerida | Internet | 2 | 23-12-2010 13:37:16 |
|