<?php
//cambia este archivo a la ubicacion real del nusoap.php
require_once("path/a/nusoap/nusoap.php");
$contacto = array(
'buzonSMS' => '+123456789012',
'primerNombre' => 'hugo',
'primerApellido' => 'rosales'
);
$acceso = array(
'usuario' => 'tuUsuario',
'clave' => 'tuClave',
'mensaje' => 'Hola mensaje de prueba',
'contacto' => $contacto
);
$mapPointWsdl = "http://z4.imolko.com/zenkiu-ws/imolko-zenkiu-services.wsdl";
$client = new soapclient($mapPointWsdl, true);
//Si tienes PHP 5 la linea anterior puede causar conflictos con las clases de SOAP que trae PHP.
//$client = new nusoap_client($mapPointWsdl, true);
$err = $client->getError();
if ($err)
{
die('An error occurred while the WSDL was being accessed: '.$err);
}
$res=$client->call('enviarMensaje', array($acceso));
//Esto lo puedes comentar una vez que hayas terminado el desarrollo.
//Te permite ver exactamente que se está enviando y recibiendo
echo '<h2>Request</h2>' . htmlspecialchars($client->request, ENT_QUOTES);
echo '<h2>Response</h2>' . htmlspecialchars($client->response, ENT_QUOTES);
echo '<h2>Debug</h2> ' . htmlspecialchars($client->debug_str, ENT_QUOTES);
//Manejo de error basico
if ($client->fault) {
echo '<h2>Fault</h2> '; print_r($res);
} else {
$err = $client->getError();
if ($err) {
echo '<h2>Error</h2> ' . $err ;
} else {
echo '<h2>Result</h2> '; print_r($res);
};
};
?>
Problemas conocidos
PHP5 y Nusoap
Si te presenta un error del Tipo "Fatal error: Cannot redeclare class soapclient in..." ("No puedes redeclarar la clase soapclient en...") es muy probable que tengas PHP5 con el modulo de SOAP activado.
Este problema no está relacionado con el uso del WS para envio de SMS; es un problema de PHP5 y un conflicto en como se llaman las clases con Nusoap
Para poder usar Nusoap, cambia el nombre de la clase cliente a nusoap_client. Para hacerlo debes seguir estos pasos:
En el directorio nusoap abrir el archivo dónde se define la clase soapclient.
Cambiarle el nombre a la clase. Se sugiere utilizar nusoap_client
Utilizar esta linea para crear el objeto:
$client = new nusoap_client($mapPointWsdl, true);
Tambien es probable que utilizando una versión más nueva de Nusoap (al menos la verisón 0.7.3 o superior) resuelva el problema.