Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/09/2015, 10:25
tetejose
 
Fecha de Ingreso: agosto-2015
Mensajes: 5
Antigüedad: 8 años, 8 meses
Puntos: 0
Nusoap generar fault propio

Buenas, estoy teniendo un problema a la hora de generar mi propio fault con la libreria nusoap...

La cuestion, esque quiero que cuando entren a mi webservice, solo puedan hacerlo mediante un usuario y contraseña. Estoy probandolo con el SoapUI, poniendo el usuario USER y contraseña PASS (son los que quiero).

A la hora de ponerlo, si pongo bien los datos, genera bien la respuesta, pero cuando fallo, no genera nada. Estoy intentandolo generando mi propio mensaje, haciendolo de esta manera $server->fault(), etc. Ahora pongo mi codigo, y a ver si alguien podria ayudarme a conseguirlo.

Código PHP:
global $server;
    
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA "";
    
    if (
doAuthenticate("USER""PASS")){        
        
$server->service($HTTP_RAW_POST_DATA); //Esto ejecutara todas las funciones
    
}
    else{ 
        
//En esta parte quiero que se muestre el mensaje soap con el fault
    

Cosas probadas: He generado el mensaje yo a mano:
Código PHP:
$return_msg =

            '<?xml version="1.0" encoding="ISO-8859-1"?>'.

            '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"'.$ns_string.">\n".

                '<SOAP-ENV:Body>'.

                '<SOAP-ENV:Fault>'.

                    $server->serialize_val($server->faultcode, 'faultcode').

                    $server->serialize_val($server->faultactor, 'faultactor').

                    $server->serialize_val($server->faultstring, 'faultstring').

                    $server->serialize_val($server->faultdetail, 'detail').

                '</SOAP-ENV:Fault>'.

                '</SOAP-ENV:Body>'.

            '</SOAP-ENV:Envelope>';

        return $return_msg;
A crear un fault:
Código PHP:
$server->fault('SOAP-ENV:Error''Error en la autenticacion');//var_dump($server);
        
$server->serialize(); 
A retornarlo como una array:
Código PHP:
return array(
            
'faultcode'=>'soap:Server',
            
'faultstring'=>'Error en la autenticacion'            
        
); 
Y mas cosas que ya no recuerdo, cualquier ayuda seria excepcional, gracias por adelantado