Aunque nunca he usado nusoap, veo siempre que todo el mundo que lo usa tiene problemas por eso uso lo siguiente:
Código PHP:
Ver original<?php
ini_set('soap.wsdl_cache_enabled',0); // Deshabilitar cache en php $PhpWsdlAutoRun=true; // With this global variable PhpWsdl will autorun in quick mode, too
//Este paquete fue descargado de https://code.google.com/archive/p/php-wsdl-creator/downloads archivo=php-wsdl-2.3.zip
require_once ('php-wsdl-2.3/class.phpwsdl.php');//Clase modificada segun https://github.com/jk/php-wsdl-creator/blob/master/class.phpwsdl.php
//Ver el demo 4 de este paquete
class ServidorSOAP{
private $empleados;
function __construct(){
//Los comentarios en forma de javadoc son importantes, ya que de ahi se crea la documentación del WebService y sin esto el framework no funciona
//Los param en los COMENTARIOS determinan los parametros de las funciones en el wsdl y los return de los comentarios las respuestas de las funciones
require_once('Empleado.php');
$this->empleados=new ArrayObject();
inicializar($this->empleados);
}
/**
* saludar
* @param void
* @return string Response
*/
public function saludar(){
return "Hola SOAP PHP";
}
/**
* imprimir
* @param string $mensaje
* @return string Response
*/
public function imprimir($mensaje){
return "Hola ".$mensaje;
}
}
?>
y para el cliente puede ser así:
Código PHP:
Ver original$WebService= new SoapClient("http://factulaar.grupolaar.com:9019/ClsWaybill.svc?wsdl",
array('trace' => 1,'soap_version' => SOAP_1_1
)); $arreglo=array('parametro1'=>$parametro1,'parametro2'=>$parametro2, ...);//PuedenSerVarios $respuesta = $WebService->__soapCall
('CreateWayBill',array($arreglo));
ó así:
Código PHP:
Ver original$WebService= new SoapClient("http://factulaar.grupolaar.com:9019/ClsWaybill.svc?wsdl",
array('trace' => 1,'soap_version' => SOAP_1_1
)); $wayBill=new WayBill();
$wayBill->ActualWeight=$valor1;
$wayBill->Branch=$valor2;
//etc. Así con el resto de los campos
$arreglo=array('objWayBillDetails'=>$wayBill); $respuesta = $WebService->__soapCall
('CreateWayBill',array($arreglo));
Depende de como sea tu Server
Revisa esto:
aqui