未捕获的SoapFault异常:[Client]函数(“getError”)不是此服务的有效方法

时间:2016-02-18 16:33:46

标签: php wcf

我正在尝试使用PHP Soap通过PHP类使用API​​,但每次我尝试都会收到此错误:

  

致命错误:未捕获的SoapFault异常:[Client]函数(“getError”)不是/home4/eleven11/public_html/comtrade.com.mx/testing/facturacion-prueba/Models/clsGenerarFacturaXML中此服务的有效方法.php:151堆栈跟踪:#0 /home4/eleven11/public_html/comtrade.com.mx/testing/facturacion-prueba/Models/clsGenerarFacturaXML.php(151):SoapClient-> __ call('getError',Array)# 1 /home4/eleven11/public_html/comtrade.com.mx/testing/facturacion-prueba/Models/clsGenerarFacturaXML.php(151):SoapClient-> getError()#2 /home4/eleven11/public_html/comtrade.com.mx /testing/facturacion-prueba/Controllers/facturas_controller.php(16):clsGenerarFacturaXML-> timbrar_cfdi('../ XML / prueba.x ...','00001')#home {main}抛入/ home4 /第151行的eleven11 / public_html / comtrade.com.mx / testing / facturacion-prueba / Models / clsGenerarFacturaXML.php

这是我的代码:

public function timbrar_cfdi($ruta, $referencia)
{
    //PREPARAMOS LAS PROPIEDADES PARA LLAMAR EL SERVICIO
    $usuario = "DEMO130227LA7";
    $password = "TJaufp55";
    $xml = file_get_contents($ruta);

    if ($xml == false) {
        return "ERROR";
    }

    //Instanciamos el servicio
    $client = new SoapClient('http://timbrado.facturarenlinea.com/WSTFD.svc?wsdl');
    $client->soap_defencoding = 'UTF-8';

    //Agregamos una validación
    $err = $client->getError();
    if ($err) { echo 'Error en Constructor' . $err ; }

    //Declaramos los parametros de entrada
    $param = array('usuario' => $usuario,'password' => $password,'cadenaXML' => $xml,'referencia' => $referencia);
    $result = $client->call('TimbrarCFDI', $param);

    //Declaramos que no muestre Warnings, se debe configurar en el PHP.ini
    error_reporting(0);

    //Validamos la respuesta
    if ($client->fault) {
        return "FALLIDO";
    } else {    // Chequea errores
        $err = $client->getError();
        if ($err) {
            return "ERROR";
        } else {
            $xmlResult = $result->XMLResultado;
            $fecha = $result->Timbre->FechaTimbrado;
            $uuid = $result->Timbre->UUID;
            file_put_contents("../XML/" . $uuid . ".xml", $xmlResult);
            return json_encode(array("UUID" => $uuid, "fecha" => $fecha));
        }
    }
}

0 个答案:

没有答案