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;
}
El error me da al crear el cliente de soap