Foros del Web » Programando para Internet » PHP »

Problema con Soap y nuSoap

Estas en el tema de Problema con Soap y nuSoap en el foro de PHP en Foros del Web. Buenas: Necesito dar de alta a un alumno a través de un método CrearAlumnoCurso en un webservice. Este es el documento que me ha pasado ...
  #1 (permalink)  
Antiguo 03/03/2011, 03:24
 
Fecha de Ingreso: enero-2010
Mensajes: 3
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con Soap y nuSoap

Buenas:

Necesito dar de alta a un alumno a través de un método CrearAlumnoCurso en un webservice.

Este es el documento que me ha pasado la empresa:

http://www.cursodirecto.net/Parametros_llamada_Web Service.pdf

Y este es el código php que tengo en altaalumno.php:

<?php
require_once("lib/nuSoap/lib/nusoap.php");
$oSoapClient = new soapclient('http://www.auladirecta.com/ServicesShop.asmx?wsdl', array('login' => "admin", 'password' => "admin"));
if ($sError = $oSoapClient->getError()) { echo "Error al conectar al Webservice [" . $sError . "]"; die(); }

$ID = 1234567;
$IDConvocatoria = 987654321;
$Meses = 0;
$Semanas = 0;
$Dias = 0;
$Nombre = "Nombre alumno";
$Apellidos = "Apellido1 Apellido2";
$DNI = "77777777h";
$Domicilio = "Calle Nombre de la Calle 12";
$Poblacion = "Malaga";
$Provincia = "Malaga";
$CP = "29004";
$Pais = "España";
$Telefono = "666999555";
$Email = "[email protected]";

$aParametros = array("lngIDCurso" => $ID,
"lngIDConvocatoriaPlantilla" => $IDConvocatoria,
"intMesesDuracion" => $Meses,
"intSemanasDuracion" => $Semanas,
"intDiasDuracion" => $Dias,
"strNombreUsuario" => $Nombre,
"strApellidosUsuario" => $sPais,
"strApellidosUsuario" => $Apellidos,
"strDniNif" => $DNI,
"strDomicilio" => $Domicilio,
"strPoblacion" => $Poblacion,
"strNombreProvincia" => $Provincia,
"strCodigoPostal" => $CP,
"strNombrePais" => $Pais,
"strTelefono" => $Telefono
);

$respuesta = $oSoapClient->call("CrearAlumnoCurso", $aParametros);
if (($error = $soapclient->strMsgErrorAlta()) || ($error2 = $soapclient->strMsgErrorEmail())) { echo $respuesta; }
?>


He quitado el user y pass real por confidencialidad.
Me devuelve el siguiente error:


Fatal error: Uncaught SoapFault exception: [Client] Function ("getError") is not a valid method for this service in /home/etqneqzb/public_html/altaalumno.php:4 Stack trace: #0 /home/etqneqzb/public_html/altaalumno.php(4): SoapClient->__call('getError', Array) #1 /home/etqneqzb/public_html/altaalumno.php(4): SoapClient->getError() #2 {main} thrown in /home/etqneqzb/public_html/altaalumno.php on line 4


Si le quito la línea getError, me aparece el siguiente error

Fatal error: Uncaught SoapFault exception: [Client] Function ("call") is not a valid method for this service in /home/etqneqzb/public_html/altaalumno.php:41 Stack trace: #0 /home/etqneqzb/public_html/altaalumno.php(41): SoapClient->__call('call', Array) #1 /home/etqneqzb/public_html/altaalumno.php(41): SoapClient->call('CrearAlumnoCurs...', Array) #2 {main} thrown in /home/etqneqzb/public_html/altaalumno.php on line 41


Alguien sabe qué falla?

Última edición por antonioortizyuste; 03/03/2011 a las 03:33
  #2 (permalink)  
Antiguo 03/03/2011, 05:56
 
Fecha de Ingreso: enero-2010
Mensajes: 3
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema con Soap y nuSoap

He cambiado el código por éste y ahora me da error de Token. Eso qué significa, que el usuario y/o la contraseña no son válidos para ejecutar el procedimiento?

?php
require_once("lib/nuSoap/lib/nusoap.php"); //Incluimos la librería que permite el uso de soap para conectar con el webservice
$oSoapClient = new soapclient('http://www.auladirecta.com/ServicesShop.asmx?wsdl', array('login' => "admin", 'password' => "asdfasdf")); //conectamos con el webservice
//if ($sError = $oSoapClient->getError()) { echo "Error al conectar al Webservice de Atnova [" . $sError . "]"; die(); } //Comprobación de conexión al webservice correcta

//Valor de todos los campos del alumno a escribir en la base de datos de atnova, ahora mismo son de ejemplo para comprobar que esté correcto el código
$ID = 1234567;
$IDConvocatoria = 987654321;
$Meses = 0;
$Semanas = 0;
$Dias = 0;
$Nombre = "Nombre alumno";
$Apellidos = "Apellido1 Apellido2";
$DNI = "77777777h";
$Domicilio = "Calle Nombre de la Calle 12";
$Poblacion = "Malaga";
$Provincia = "Malaga";
$CP = "29004";
$Pais = "España";
$Telefono = "666999555";
$Email = "[email protected]";

//Asignamos los datos del usuario a los de la base de datos de atnova para que al realizar la llamada al método CrearAlumnoCurso pasárselos
$aParametros = array("lngIDCurso" => $ID,
"lngIDConvocatoriaPlantilla" => $IDConvocatoria,
"intMesesDuracion" => $Meses,
"intSemanasDuracion" => $Semanas,
"intDiasDuracion" => $Dias,
"strNombreUsuario" => $Nombre,
"strApellidosUsuario" => $sPais,
"strApellidosUsuario" => $Apellidos,
"strDniNif" => $DNI,
"strDomicilio" => $Domicilio,
"strPoblacion" => $Poblacion,
"strNombreProvincia" => $Provincia,
"strCodigoPostal" => $CP,
"strNombrePais" => $Pais,
"strTelefono" => $Telefono
);

//$respuesta = $oSoapClient->call("CrearAlumnoCurso", $aParametros); //Ejecutamos el método del webservice para dar de alta al alumno pasándole todos los datos anteriores
$respuesta = $oSoapClient->CrearAlumnoCurso($aParametros); //Ejecutamos el método del webservice para dar de alta al alumno pasándole todos los datos anteriores
if (($error = $soapclient->strMsgErrorAlta()) || ($error2 = $soapclient->strMsgErrorEmail())) { echo $respuesta; } //Si existe algún error lo mostramos
?>


Este es el error que da:

Fatal error: Uncaught SoapFault exception: [soap:Client] Access denied: The token is not valid. in /home/etqneqzb/public_html/altaalumno.php:42 Stack trace: #0 /home/etqneqzb/public_html/altaalumno.php(42): SoapClient->__call('CrearAlumnoCurs...', Array) #1 /home/etqneqzb/public_html/altaalumno.php(42): SoapClient->CrearAlumnoCurso(Array) #2 {main} thrown in /home/etqneqzb/public_html/altaalumno.php on line 42

Alguna ayuda please?
  #3 (permalink)  
Antiguo 05/01/2012, 15:00
 
Fecha de Ingreso: abril-2010
Mensajes: 3
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con Soap y nuSoap

creo ke es porke tienes la libreria soap de php activa...
comentala en el php.ini y prueba asi a ver ke tal

ejemplo:

;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll

Etiquetas: nusoap, soap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:46.