Ver Mensaje Individual
  #4  
Antiguo 07-04-2025
delphiGar delphiGar is offline
Miembro
 
Registrado: ago 2024
Posts: 182
Reputación: 2
delphiGar Va por buen camino
Cita:
Empezado por Jariverom Ver Mensaje
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
Por lo que veo el fichero XML no lo cargas, primero, estas cargando la URL, supongo que sera el archivo xml lo que quieres cargar y no la URL:

Código PHP:
 $wsdlContent = @file_get_contents($wsdlUrl); 
Segundo, no envias nada, la variable $xml no existe, creo que aqui querias poner $wsdlContent:

Código PHP:
$response $client->__soapCall('EnviarFactura', [['facturaXML' => $xml]]); 
Responder Con Cita