fatcho 0 Denunciar post Postado Setembro 13, 2012 Pessoal tenho o seguinte WSDL e preciso autenticar um usuario com ele. fiz o seguinte arquivo client.php para recuperar a informação porem acredito estar fazendo algo errado pois nao recupera nada seja com os dados corretos de login ou errados, apenas retorna: array(0) { } client.php: $client = new SoapClient("http://urldowebservice/webservice.php?wsdl"); $login = "usuario"; $senha = "senhaqualquer"; $codificada = md5($senha); $result = $client->__soapCall('getUsuario', array('email' => $login, 'senha'=>$codificada)); print(var_dump($result)); ARQUIVO WSDL: <definitions targetNamespace="urn:sfWSDL"><types><xsd:schema targetNamespace="urn:sfWSDL"><xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/><xsd:complexType name="ObjUsuario"><xsd:complexContent><xsd:restriction base="SOAP-ENC:Array"><xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/></xsd:restriction></xsd:complexContent></xsd:complexType></xsd:schema></types><message name="getUsuarioRequest"><part name="email" type="xsd:string"/><part name="senha" type="xsd:string"/></message><message name="getUsuarioResponse"><part name="return" type="tns:ObjUsuario"/></message><portType name="SFCAPPortType"><operation name="getUsuario"><documentation>Envia-se login e senha (hash md5) e o retorno são os dados do usuário de acordo com os dados do login enviado</documentation><input message="tns:getUsuarioRequest"/><output message="tns:getUsuarioResponse"/></operation></portType><binding name="SFCAPBinding" type="tns:SFCAPPortType"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><operation name="getUsuario"><soap:operation soapAction="urn:sfWSDL#getUsuario" style="rpc"/><input><soap:body use="encoded" namespace="urn:sfWSDL" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input><output><soap:body use="encoded" namespace="urn:sfWSDL" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output></operation></binding><service name="SFCAP"><port name="SFCAPPort" binding="tns:SFCAPBinding"><soap:address location="http://URLDOWEBSERVICE.php"/></port></service></definitions> listando as funções usando um __getFunctions eu obtenho o seguinte: array(1) { [0]=> string(51) "ObjUsuario getUsuario(string $email, string $senha)" } Compartilhar este post Link para o post Compartilhar em outros sites
espiculo 1 Denunciar post Postado Setembro 13, 2012 Olá, Tentou enviar o e-mail, em vez do nome do usuário ? $login = "usuario"; Para $login = "usuario@email..."; Dica: print(var_dump($result)); Não precisa colocar print no var_dump(); Compartilhar este post Link para o post Compartilhar em outros sites
fatcho 0 Denunciar post Postado Setembro 13, 2012 Olá, Tentou enviar o e-mail, em vez do nome do usuario ? $login = "usuario"; Para $login = "usuario@email..."; tentei sim, testei enviando qualquer coisa como no exemplo que postei, e tb com os dados validos de login que possuo, como o email correto e a senha tb. ambas as maneiras retorna esse mesmo resultado. Compartilhar este post Link para o post Compartilhar em outros sites
espiculo 1 Denunciar post Postado Setembro 13, 2012 tentei sim, testei enviando qualquer coisa como no exemplo que postei, e tb com os dados validos de login que possuo, como o email correto e a senha tb. ambas as maneiras retorna esse mesmo resultado. Ok. Então faz um verificação de throw exceptions. $client = new SoapClient("http://urldowebservice/webservice.php?wsdl"); try { $login = "usuario"; $senha = "senhaqualquer"; $codificada = md5($senha); $result = $client->__soapCall('getUsuario', array('email' => $login, 'senha'=>$codificada)); var_dump($result); }catch (SoapFault $exception) { var_dump($exception); } Compartilhar este post Link para o post Compartilhar em outros sites
fatcho 0 Denunciar post Postado Setembro 13, 2012 retornou a mesma coisa: array(0) { } Compartilhar este post Link para o post Compartilhar em outros sites
espiculo 1 Denunciar post Postado Setembro 14, 2012 retornou a mesma coisa: array(0) { } Faz um teste assim: $client = new SoapClient("http://urldowebservice/webservice.php?wsdl"); $email= "email@valido"; $senha = "senha_valida"; $senha_md5 = md5($senha); try { $result = $client->getUsuario(array('email' => $email, 'senha'=>$senha_md5)); print_r($result); }catch (SoapFault $exception) { var_dump($exception); } Compartilhar este post Link para o post Compartilhar em outros sites
fatcho 0 Denunciar post Postado Setembro 14, 2012 tinha testado ja com os dados validos, fiz desse jeito ali tb agora, mesmo resultado: array(0) { } Compartilhar este post Link para o post Compartilhar em outros sites