Foros del Web » Programando para Internet » PHP »

Enviar multiples paramentros a un webservice

Estas en el tema de Enviar multiples paramentros a un webservice en el foro de PHP en Foros del Web. Buen día, tengo el siguiente codigo para consumir un webservice... Código PHP: $json = '{"username":"[email protected]","password":"12345678a","empresa":{     "tipo_persona":"M",     "rfc":"NNN123456NNN",     "razon_social":"MY EMPRESA S.A DE C.V"     }}' ; $obj  =  json_decode ( $json ...
  #1 (permalink)  
Antiguo 31/03/2015, 16:34
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 9 años, 4 meses
Puntos: 1
Enviar multiples paramentros a un webservice

Buen día, tengo el siguiente codigo para consumir un webservice...

Código PHP:
$json='{"username":"[email protected]","password":"12345678a","empresa":{
    "tipo_persona":"M",
    "rfc":"NNN123456NNN",
    "razon_social":"MY EMPRESA S.A DE C.V"
    }}'
;
$obj json_decode($jsontrue);
print_r($obj);

  
$client = new SoapClient("http://www.midominio.com/servicio.php?wsdl");
  
$result $client->__SoapCall("generarFactura"$obj); 
Con json_decode obtengo un array, como este...

Array ( [username] => [email protected] [password] => 12345678a [empresa] => Array ( [tipo_persona] => M [rfc] => NNN123456NNN [razon_social] => MY EMPRESA S.A DE C.V ) )

Ahora, el problema esta en que quiero obtener el valor de rfc de este arreglo, la pagina de webservice esta así...

Código PHP:
function generarFactura($c$p$f) {
  global 
$mysqli;
    
$correo=$c;
    
$password=$p;
      
$folio=$f[empresa]['rfc'];

  
$arreglo = array(); //arreglo para guardar los datos
  
$arreglo[] = array('Id'=>$folio'Correo'=>$correo'Password'=>$password);
  return 
$arreglo;

Asi obtengo el correo y el password, pero no logro obtener el valor del rfc, esta parte no me funciona... $folio=$obj[empresa]['rfc'];, si envio solo $f, me devuelve el siguiente arreglo..

Array ( [0] => stdClass Object ( [Id] => Array [Correo] => [email protected] [Password] => 12345678a ) )

Última edición por jolquera; 31/03/2015 a las 16:41
  #2 (permalink)  
Antiguo 31/03/2015, 16:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar multiples paramentros a un webservice

El asunto es que estás tratando de acceder a $f como si fuera un array pero no lo es al 100%, pues al parecer es un arreglo mixto, con objetos y más arreglos anidados.

Debes entender primero tu estructura de datos antes de intentar usarla.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 31/03/2015, 17:21
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: Enviar multiples paramentros a un webservice

No comprendo, pero si en el cliente(donde se consume el webservice), ejecuto esto...

Código PHP:
Ver original
  1. echo $obj[empresa][rfc].'<br>';

Si me muestra el rfc, el problema esta en el webservice al pasar el argumento por la funcion.
  #4 (permalink)  
Antiguo 31/03/2015, 17:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar multiples paramentros a un webservice

El asunto es que usas esto:
Código PHP:
Ver original
  1. json_decode($json, true)

Y según la firma de la función:
Cita:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Y si lees el manual:
Cita:
assoc
Cuando es TRUE, los object devueltos serán convertidos a array asociativos.
Eso del lado del cliente es correcto, ¿pero tu problema es del lado del servicio o no?

Es justo ahí dónde está el problema, ¿cómo es que lees los datos de entrada?

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 31/03/2015, 18:17
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: Enviar multiples paramentros a un webservice

Y como lo puedo convertir en arreglo de otro tipo?
  #6 (permalink)  
Antiguo 31/03/2015, 22:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar multiples paramentros a un webservice

Cita:
Iniciado por jolquera Ver Mensaje
Y como lo puedo convertir en arreglo de otro tipo?
No hay "arreglos de otro tipo", la estructura de datos que tienes es un array/objeto, nada más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: multiples, mysql, webservice
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 13:48.