Consumindo WebService
Olá Amigos:
Tenho um WebService (soap) para testes, e estou construindo uma função para cadastrar um cliente:
- function CadastrarCliente(cliente : TCliente): TResultado.
Nessa função, ela irá receber uma variável por parâmetro do tipo "TCliente", e irá retornar um outro valor do tipo "TResultado".
Como pode ser visto o TCliente e TResultado são tipos de dados que eu crei.
Estou com dificuldades em passar o parâmetro do tipo TCLIENTE para a função, sempre que tento, o webservice me retorna erros:
Vou passar o código que estou utilizando no meu site (PHP - Estou utlizando a biblioteca padrão do SOAP no PHP 5):
class TCliente {
public $usuario;
public $senha;
public $tipoPessoa;
public $nomeRazao;
public $fantasia;
public $email;
public $cnpjCpf;
public $inscRg;
public $logradouro;
public $numero;
public $bairro;
public $cep;
public $cidade;
public $estado;
public $telResidencial;
public $telComercial;
public $telCelular;
public $ramoAtividade;
public $acordoAdeso;
public $acordoPriva;
}
$tCliente = new TCliente();
$tCliente->usuario = $_POST['edtUusuario'];
$tCliente->senha = $_POST['edtSenha'];
$tCliente->tipoPessoa = $_POST['edtTipoPessoa'];
$tCliente->nomeRazao = $_POST['edtNomeRazaoSocial'];
$tCliente->fantasia = $_POST['edtSobrenomeFantasia'];
$tCliente->email = $_POST['edtEmail'];
$tCliente->cnpjCpf = $_POST['edtCnpjCpf'];
$tCliente->inscRg = $_POST['edtCidade'];
$tCliente->logradouro = $_POST['edtLogradouro'];
$tCliente->numero = $_POST['edtLogradouroNumero'];
$tCliente->bairro = $_POST['edtBairro'];
$tCliente->cep = $_POST['edtCep'];
$tCliente->cidade = $_POST['edtCidade'];
$tCliente->estado = $_POST['edtEstado'];
$tCliente->telResidencial = $_POST['edtTelResidencial'];
$tCliente->telComercial = $_POST['edtTelComercial'];
$tCliente->telCelular = $_POST['edtTelCelular'];
$tCliente->ramoAtividade = $_POST['edtTipoNegocio'];
$tCliente->acordoAdeso = $_POST['cbContratoAdesao'];
$tCliente->acordoPriva = $_POST['cbPoliticaPrivacidade'];
ini_set("soap.wsdl_cache_enabled", "0");
$client = new SoapClient("http://localhost:8080/wsdl/ISiteCentercob");
$resultado = $client->CadastrarCliente($tCliente);
Eu já fiz testes em função retornando o tipo de dados TRESULTADO e consigo ler o retorno normalmente. Agora, se tento usar uma função passando por parâmetro, onde essa função recebe apenas dados de um tipo (que eu criei - TCliente), ela me retorna erros. Provavelmente a forma como estou passando os dados, está incorreta.
Alguém poderia me informar como deve ser a forma correta para passar um tipo de dados por parâmetro ?
Segue abaixo o XML do Webservice que mencionei:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:ns1="urn:SiteCentercobIntf" name="ISiteCentercobservice" targetNamespace="http://tempuri.org/">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:SiteCentercobIntf">
<complexType name="TResultado">
<sequence>
<element name="Resultado" type="xs:boolean"/>
<element name="Mensagem" type="xs:string"/>
<element name="CodCliente" type="xs:int"/>
</sequence>
</complexType>
<complexType name="TCliente">
<sequence>
<element name="usuario" type="xs:string"/>
<element name="senha" type="xs:string"/>
<element name="tipoPessoa" type="xs:string"/>
<element name="nomeRazao" type="xs:string"/>
<element name="fantasia" type="xs:string"/>
<element name="email" type="xs:string"/>
<element name="cnpjCpf" type="xs:string"/>
<element name="inscRg" type="xs:string"/>
<element name="logradouro" type="xs:string"/>
<element name="numero" type="xs:string"/>
<element name="bairro" type="xs:string"/>
<element name="cep" type="xs:string"/>
<element name="cidade" type="xs:string"/>
<element name="estado" type="xs:string"/>
<element name="telResidencial" type="xs:string"/>
<element name="telComercial" type="xs:string"/>
<element name="telCelular" type="xs:string"/>
<element name="ramoAtividade" type="xs:string"/>
<element name="acordoAdeso" type="xs:string"/>
<element name="acordoPriva" type="xs:string"/>
</sequence>
</complexType>
</schema>
</types>
<message name="VerificarUsuario0Request">
<part name="login" type="xs:string"/>
</message>
<message name="VerificarUsuario0Response">
<part name="return" type="ns1:TResultado"/>
</message>
<message name="VerificarCpfCnpj1Request">
<part name="tipoPessoa" type="xs:string"/>
<part name="cnpjCpf" type="xs:string"/>
</message>
<message name="VerificarCpfCnpj1Response">
<part name="return" type="ns1:TResultado"/>
</message>
<message name="CadastrarCliente2Request">
<part name="cliente" type="ns1:TCliente"/>
</message>
<message name="CadastrarCliente2Response">
<part name="return" type="ns1:TResultado"/>
</message>
<portType name="ISiteCentercob">
<operation name="VerificarUsuario">
<input message="tns:VerificarUsuario0Request"/>
<output message="tns:VerificarUsuario0Response"/>
</operation>
<operation name="VerificarCpfCnpj">
<input message="tns:VerificarCpfCnpj1Request"/>
<output message="tns:VerificarCpfCnpj1Response"/>
</operation>
<operation name="CadastrarCliente">
<input message="tns:CadastrarCliente2Request"/>
<output message="tns:CadastrarCliente2Response"/>
</operation>
</portType>
<binding name="ISiteCentercobbinding" type="tns:ISiteCentercob">
<binding xmlns="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="VerificarUsuario">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:SiteCentercobIntf-ISiteCentercob#VerificarUsuario" style="rpc"/>
<input>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SiteCentercobIntf-ISiteCentercob"/>
</input>
<output>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SiteCentercobIntf-ISiteCentercob"/>
</output>
</operation>
<operation name="VerificarCpfCnpj">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:SiteCentercobIntf-ISiteCentercob#VerificarCpfCnpj" style="rpc"/>
<input>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SiteCentercobIntf-ISiteCentercob"/>
</input>
<output>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SiteCentercobIntf-ISiteCentercob"/>
</output>
</operation>
<operation name="CadastrarCliente">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:SiteCentercobIntf-ISiteCentercob#CadastrarCliente" style="rpc"/>
<input>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SiteCentercobIntf-ISiteCentercob"/>
</input>
<output>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SiteCentercobIntf-ISiteCentercob"/>
</output>
</operation>
</binding>
<service name="ISiteCentercobservice">
<port name="ISiteCentercobPort" binding="tns:ISiteCentercobbinding">
<address xmlns="http://schemas.xmlsoap.org/wsdl/soap/" location="http://localhost:8080/soap/ISiteCentercob"/>
</port>
</service>
</definitions>Discussão (4)
Carregando comentários...