Consumir web services con nusoap

De KumbiaPHP Framework Wiki

En esta pagina vamos a ver un pequeño ejemplo de como consumir un web services soap con nusoap, no se si es la forma correcta o si existen otros métodos mas sencillo o mas eficaces, pero para mi proyecto me sirvió y capaz que a alguno le sirve o le ayuda a quitarse algunas dudas.


Lo primero es descargar la libreria nusoap [1]

Colocar el archivo nusoap.php en la carpeta del proyecto "default/app/libs"

Crear el Controlador con el Metodo para llamar el WS

class PersonaController extends AppController {

public function getws() {
    View::template(null);//quitamos el template de la vista
    Load::lib('nusoap');//cargamos la libreria
    
    $clientns=new nusoap_client('http://cajas.sanluis.gov.ar/SERVICES/service.asmx?wsdl', 'wsdl');
    //creamos la instancia del cliente nusoap, pasamos los argumentos el wsdl del WS(web-services), segundo parametro el string 'wsdl' o true.
    
    $param = array('doc' => Input::request('doc'));
    //yo envio el numero de documento con un formulario asi que lo recibo en el controlador
    
    $datos = $clientns->call('getAfiliadoData', $param);//lamamos al metodo y pasamos los parametros
    $this->datos=$datos;//paso el resultado a la vista
    
}
}

Crear la vista

echo $datos['getAfiliadoDataResult']['string'];
// todos los metodos (getAfiliadoData) tienen un metodo igual con la palabra "Result" (getAfiliadoDataResult) 
//al final, y el [string] es todo el texto que retorna
// de aqui en mas uds manejan el resultado como a uds les parezca mejor

eso es todo, con eso debería de funcionar el llamado a los WS... a mi me esta funcionando, es la primera vez que utilizo esta librería.