Instalar SOAP para PHP en Ubuntu

El proceso de instalación de SOAP es muy sencillo, abre una ventana de la terminal y ejecuta los siguiente comandos:

PHP 5.6

$ sudo sudo apt-get install php5.6-soap

$ sudo service apache2 restart

 

PHP 7.0

$ sudo sudo apt-get install php7.0-soap

$ sudo service apache2 restart

 
 

Recuerda reiniciar el servicio de Apache o Nginx

Anuncios

Cómo obtener las funciones SOAP web service en PHP

SoapClient::__getFunctions — Devuelve un array el cual contiene una lista de todas las funciones disponibles del Servicio Web que estamos consumiendo.

Ejemplo:

$client = new SoapClient('http://url.wsdl');
var_dump($client->__getFunctions());

Fuente:
http://php.net/manual/es/soapclient.getfunctions.php

PHP envío de parámetros a una función SOAP

Estos días he estado trabajando con la conexión a un Servicio Web al cual tenía que enviarle un array de argumentos a uno de los métodos del objeto SoapClient también llamados funciones SOAP, algo que hay que tomar en cuenta es que la mayoría de los servidores SOAP requieren que los nombres de los parámetros sean enviados en formato de array asociativo, de la siguiente forma:

// Conexion al Web Service
$client = new SoapClient("url.wsdl", array('trace' => TRUE,'connection_timeout'=>15));

$user = new SoapVar('valoruser',XSD_STRING);
$password = new SoapVar('valorpassword',XSD_STRING);
$token = new SoapVar('valortoken',XSD_STRING);

// Realizamos la llamada a la funcion SOAP (validar)
$result = $client->__soapCall('validar',array('parameters' => array('username'=>$user,'password'=>$password,'token'=>$token)));

Fuente:
http://php.net/manual/es/soapclient.soapcall.php

PHP SoapVar parámetro XML

El día me di a la tarea de consumir un web service al cual tenia que enviar un XML como parametro a una de sus funciones. Es bastante sencillo, y después de investigar quedó de la forma siguiente:


try {
    // Conexion al web service
    $client = new SoapClient("url.wsdl", array('trace' => TRUE,'connection_timeout'=>15));

    $varXml = new SoapVar($xml,XSD_ANYXML,null,null,null);

    // Llamamos a la función que recibe como parametro el XML
    // el resultado lo asignamos a la variable $result.
    $result = $client->function($varXml);
} catch (Exception $e) {
    // Codigo
}

Donde:

$xml es la variable que contiene el XML.

A %d blogueros les gusta esto: