Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fatcho

Autenticar usuario com WSDL SOAP PHP

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.