Foros del Web » Programando para Internet » PHP »

Problema Web Service

Estas en el tema de Problema Web Service en el foro de PHP en Foros del Web. Estimado tengo el siguiente problema. tengo que conectarme a un Web services el cual contiene la siguiente estructura: Request: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/IDemandas/Consumos</Action> ...
  #1 (permalink)  
Antiguo 05/01/2011, 10:00
 
Fecha de Ingreso: abril-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Problema Web Service

Estimado tengo el siguiente problema.
tengo que conectarme a un Web services el cual contiene la siguiente estructura:

Request:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/IDemandas/Consumos</Action>
</s:Header>
<s:Body>
<Consumos xmlns="http://tempuri.org/">
<consumos xmlns:d4p1="http://schemas.datacontract.org/2004/07/Aramark.Componentes.Entidades" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<d4p1:DatosDetalleConsumo>
<d4p1:Cantidad>10</d4p1:Cantidad>
<d4p1:CodigoConsumo>30</d4p1:CodigoConsumo>
<d4p1:FechaConsumo>2010-12-01T16:51:00</d4p1:FechaConsumo>
<d4p1:IdCasino>1</d4p1:IdCasino>
<d4p1:IdTipoServicio>1</d4p1:IdTipoServicio>
<d4p1:NumeroContrato>4500002505</d4p1:NumeroContrato>
<d4p1:RutContratista>78454860-0</d4p1:RutContratista>
<d4p1:ValorNeto>15</d4p1:ValorNeto>
</d4p1:DatosDetalleConsumo>
</consumos>
</Consumos>
</s:Body>

Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header />
<s:Body>
<ConsumosResponse xmlns="http://tempuri.org/">
<ConsumosResult xmlns:a="http://schemas.datacontract.org/2004/07/Aramark.Componentes.Entidades" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:ConError>false</a:ConError>
<a:Detalle i:nil="true" />
<a:Mensaje i:nil="true" />
</ConsumosResult>
</ConsumosResponse>
</s:Body>
</s:Envelope>

habitualmente yo lo hago de la siguiente manera

$client = new SoapClient('http://10.120.2.30/DemandaWs/Demandas.svc?wsdl');
$param = array('Cantidad' => $Cantidad,'CodigoConsumo' => $CodigoConsumo,'FechaConsumo' =>$FechaConsumo, 'IdCasino' => $IdCasino, 'IdTipoServicio' => $IdTipoServicio,'NumeroContrato' => $NumeroContrato, 'RutContratista' => $RutContratista,'ValorNeto' => $ValorNeto);
$result =$client->Consumos($param);
var_dump($result);

pero el problema se presenta debido a que despues de la etiqueta consumos tengo que ingresar a Datos Detalle Consumos.

me dijeron que estoy trabajando con datos complejos, el web service consumo recibe un arreglo de datos, y este arreglo se llama Datos Detalle Consumos el cual contiene la estructura.

<d4p1:DatosDetalleConsumo>
<d4p1:Cantidad>10</d4p1:Cantidad>
<d4p1:CodigoConsumo>30</d4p1:CodigoConsumo>
<d4p1:FechaConsumo>2010-12-01T16:51:00</d4p1:FechaConsumo>
<d4p1:IdCasino>1</d4p1:IdCasino>
<d4p1:IdTipoServicio>1</d4p1:IdTipoServicio>
<d4p1:NumeroContrato>4500002505</d4p1:NumeroContrato>
<d4p1:RutContratista>78454860-0</d4p1:RutContratista>
<d4p1:ValorNeto>15</d4p1:ValorNeto>
</d4p1:DatosDetalleConsumo>


Como paso un parametro al arreglo DatosDetalleConsumo en PHP

Tambien intente de la siguente manera

$client = new SoapClient('http://10.120.2.30/DemandaWs/Demandas.svc?wsdl');
$param = array('Cantidad' => $Cantidad,'CodigoConsumo' => $CodigoConsumo,'FechaConsumo' =>$FechaConsumo, 'IdCasino' => $IdCasino, 'IdTipoServicio' => $IdTipoServicio,'NumeroContrato' => $NumeroContrato, 'RutContratista' => $RutContratista,'ValorNeto' => $ValorNeto);

$VAR = array('DatosDetalleConsumo' => $param);
$result =$client->Consumos($VAR);
var_dump($result);


cuando pasamos parametros directamente a un WS el cual recibe una cadena de datos no tengo problema, en cambio cuando recibe un arreglo de datos me presenta poblemas



esperando alguna ayuda

Etiquetas: service
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:32.