Hola:
Voy creando un Web Service, el nusoap no me funciona en windows o posteriores a php 5.3, por lo que trabajo con SOAP nativa de php, el caso es que el servicio está creado y me devuelven datos pero lo que necesito es que me devuelva un array de datos para recibirlos en el cliente y guardarlo en otra BD,
Mi servicio Web
Código PHP:
Ver originalfunction pagos($fecha){
require_once "include/conexion.php";
$result = sqlsrv_query2("
consulta");
$c=0;
while($row = sqlsrv_fetch_array($result)){
for($i = 0; $i<6;$i++){
$datos[$c][$i]=$row[$i];
}
$c++;
}
return $datos; //devuelvo un array multidimensional de 6 columnas
}
$server->AddFunction("pagos");
$server->handle();
Mi WSDL es como sigue:
Código XML:
Ver original<?xml version="1.0"?>
<definitions name="AritmeticaServicio"
targetNamespace="urn:Aritmetica"
xmlns:tns="urn:Aritmetica"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xsd:schema targetNamespace="urn:Aritmetica">
<xsd:complexType name="resultArray">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType"
wsdl:arrayType="xsd:string[][]"/>
</restriction>
</complexContent>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<message name="AritmeticaPeticion">
<part name="operando1" type="xsd:string" />
</message>
<message name="AritmeticaRespuesta">
<part name="respuesta" type="xsd:resultArray" />
</message>
<portType name="AritmeticaPort">
<operation name="pagos">
<input message="tns:AritmeticaPeticion" />
<output message="tns:AritmeticaRespuesta" />
</operation>
</portType>
<binding name="AritmeticaBinding" type="tns:AritmeticaPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="pagos">
<soap:operation soapAction="urn:Aritmetica#pagos" />
<input>
<soap:body use="encoded" namespace="urn:Aritmetica"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="urn:Aritmetica"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<service name="AritmeticaServicio">
<port name="AritmeticaPort" binding="tns:AritmeticaBinding">
<soap:address location="http://localhost:8080/proyecto/server.php" />
</port>
</service>
</definitions>
Bajo mi percepcion <AritmeticaRespuesta> deberìa devolver el array que necesito, pero cuando en el lado del cliente lo imprimo
Código PHP:
Ver originaltry{
$clienteSOAP = new SoapClient('http://localhost:8080/proyecto/aritmetica.wsdl');
$resultado_pago = $clienteSOAP->pagos('2014-06-30');
echo '<pre>';
} catch(SoapFault $e){
echo '<pre>';
}
Como ven si ingresa por try{} pero me està devolviendo un objeto sin dato alguno.
Por favor quisiera por lo menos me den una idea de cual mi problema. Gracias.