Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/10/2015, 07:53
ci2000
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Cambiar la forma de pasar los parámetros en un Web Services

Hola.

Con este código en PHP hice un WS:

Código:
<?php
	header("Content-Type: text/xml");
    require_once('lib/nusoap.php');
	
	function CCPropietario_Subir($usuario,$clave,$idcuenta,$fecha,$inquilino,$concepto,$debe,$haber,$saldo){
		if ($usuario == "loco" && $clave == "abc123")
		{
			require("conect.php");
			$inquilino = str_replace("'", "\'", $inquilino);
			$concepto = str_replace("'", "\'", $concepto);
			mysql_query("INSERT INTO ccpropietario (idcuenta,fecha,inquilino,concepto,debe,haber,saldo) values ('$idcuenta','$fecha','$inquilino','$concepto','$debe','$haber','$saldo')");
    		return True;
		}else{
			return False;
		}
	}
	
    $server = new soap_server();
    $server->configureWSDL("wsinmpdu", "urn:wsinmpdu");
        
    $server->register("CCPropietario_Subir",
        array("usuario" => "xsd:string","password" => "xsd:string","idcuenta" => "xsd:string","fecha" => "xsd:string","inquilino" => "xsd:string","concepto" => "xsd:string","debe" => "xsd:double","haber" => "xsd:double","saldo" => "xsd:double"),
        array("return" => "xsd:boolean"),
        "urn:subeccpropietario",
        "urn:subeccpropietario#CCPropietario_Subir",
        "rpc",
        "encoded",
        "Sube datos a ccpropietario");
        
    $server->service($HTTP_RAW_POST_DATA);
?>
Luego, con Visual Basic .Net lo consumo así:

Código:
ws.CCPropietario_Subir(Usuario, Password, 123, Fecha, 45, "Alquiler", 15000, 0, 15000)
Hasta aquí no tengo inconvenientes.

El problema que se me presenta es que ahora los parámetros que debo pasarle a la función CCPropietario_Subir son muuuchos más. Entonces necesito que al consumir sea un sólo parámetro el que deba pasarle a la función CCPropietario_Subir.

Es decir, quiero declarar una variable donde le asigne los valores en cada propiedad y luego esta variable será el parámetro de la función.

Al consumir en Visual Basic .Net quedaría así:

Código:
datos.Usuario ="Ventas"
datos.Password = "123"
datos.Fecha = "2015-10-25"
y así asignarle todas las propiedades
ws.CCPropietario_Subir(datos)
¿Qué debo cambiar en el código PHP para que se pueda consumir de esta forma?

Desda ya, muchas gracias por las respuestas.
Saludos