Cómo consumir un WebService SOAP con PHP

Inicio / Cómo hacer para... / Cómo consumir un WebService SOAP con PHP

Qué son los WebServices

Los WebServices son un mecanismo muy útil para integrar aplicaciones a través del protocolo HTTP, y de ese modo, aprovechar las capacidades de terceros dentro de nuestras propias aplicaciones.

Un ejemplo muy común es de las pasarelas de pago, como ser PayPal o MercadoPago.

Se basan siempre en la existencia de dos procesos:

  • El cliente (Consumidor)
  • El servidor (Productor)

A nivel técnico existen dos operaciones que pueden realizarse a través de WebServices:

  1. Consumirlos
  2. Exponerlos

Uno de los protocolos que pueden utilizar los WebServices es SOAP (Otro muy común es REST).

Consumirlos usando PHP es bastante simple, para ello se utiliza la clase SOAPClient.

Veamos un ejemplo de cómo consultar la localización física según la IP:

<?php

$url = "http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl";

try {
 $client = new SoapClient($url, [ "trace" => 1 ] );
 $result = $client->ResolveIP( [ "ipAddress" => $argv[1], "licenseKey" => "0" ] );

 print_r($result);
} catch ( SoapFault $e ) {
 echo $e->getMessage();
}


echo PHP_EOL;

En este caso, este script debería ser corrido desde CLI. Por ejemplo, si lo guardás como “ws.php”, al ejecutar php ws.php 210.45.151.101 obtendrás la salida:

stdClass Object
(
 [ResolveIPResult] => stdClass Object
 (
 [City] => Huainan
 [StateProvince] => 01
 [Country] => China
 [Organization] => 
 [Latitude] => 32.6264
 [Longitude] => 116.9969
 [AreaCode] => 0
 [TimeZone] => 
 [HasDaylightSavings] => 
 [Certainty] => 90
 [RegionName] => 
 [CountryCode] => CN
 )
)

Básicamente, al construir el cliente a partir de la definición de un WSDL están disponibles todos los servicios expuestos como métodos propios (como si estuviesen accesibles en forma local, a pesar de que la verdadera llamada es remota).

Como te imaginarás, si existe la clase SOAPCliente… debe existir la clase SOAPServer (Tema de otro post).

Acá te dejo el link a las filminas que usé en mi curso de PHP WebServices por si querés profundizar un poco más.

mchojrin

Hola! Soy Mauro Chojrin, estudié la Lic. en Ciencias de la Computación en la UBA.

Me desempeño como docente de programación desde el año 1997.

Pasé por diferentes instituciones (Escuela Técnica ORT, Digital House, EducacionIT, ITMaster, Escuela DaVinci entre otros).

Actualmente coordino el desarrollo de proyectos web en https://leewayweb.com y los cursos dictados en Leeway Academy

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.