Ir para conteúdo

POWERED BY:

Arquivado

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

Victor Magalhães

[Resolvido] Passando um objeto por parametro web service

Recommended Posts

BOm galera, estou com uma duvida, como passar um objeto por parametro usando o nusoap, queria saber se estou fazendo corretamente e se não estiver, onde estaria o erro!

require_once 'nusoap/lib/nusoap.php';

//definição da localização do arquivo WSDL
$wsdl = 'http://www3.sefaz.ce.gov.br/InfoDaeService/InfoDae?wsdl';

//criação de uma instancia do cliente
$cliente = new nusoap_client($wsdl, true);

//verifica se ocorreu aulgum erro na criação do objeto
$err = $cliente->getError();
if($err){
	echo "Erro no construtor <pre>" . $err . "</pre>";
}


$receita = array(
					'numIdentificador' => NULL,
					'codEmissor' => '62',
					'codProduto' => NULL,
					'codReceita' => 01,
					'numParcela' => '1',
					'periodo' => '2012',
					'datVenciento' => '20121225',
					'codCgf' => '',
					'tipCgcCpf' => 3,
					'codCgcCpf' => '01995792373',
					'codMuninicipio' => 4400,
					'vlrPrincipal' => 500.00,
					'vlrMulta' => 63.00,
					'vlrJuros' => 2.00,
					'vlrDescontos' => 5.00,
					'vlrAtualPrincipal' => NULL,
					'vlrAtualMulta' => NULL,
					'datValidade' => '20121230',
					'tipOrigem' => 3,
					'vetIdContribuinte1' => 'alo',
					'vetIdContribuinte2' => 'alo',
					'vetIdContribuinte3' => 'alo',
					'vetIdContribuinte4' => 'alo',
					'vetIdContribuinte5' => 'alo',
					'vetIdContribuinte6' => 'alo',
					'vetInfComplementar1' => 'alo2',
					'vetInfComplementar2' => 'alo2',
					'vetInfComplementar3' => 'alo2',
					'vetInfComplementar4' => 'alo2',
					'vetInfComplementar5' => 'alo2', 
					'codRetorno' => 0		
			   );
//chamada do metodo soap
$result = $cliente->call('gerarDae',  array('arg0' => $receita, 'arg1' => 'RECEITA'));

if ($cliente->fault) {
	echo '<h2>Fault</h2><pre>';
		print_r($result);
	echo '</pre>';
} else {
	// Check for errors
	$err = $cliente->getError();
	if ($err) {
		// Display the error
		echo '<h2>Error</h2><pre>' . $err . '</pre>';
	} else {
		// Display the result
		echo '<h2>Result</h2><pre>';
		print_r($result);
		echo '</pre>';
	}
}

echo '<h2>Request</h2><pre>' . htmlspecialchars($cliente->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($cliente->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($cliente->debug_str, ENT_QUOTES) . '</pre>';

 

valeu, agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se $receita for seu objeto, ele não é um objeto, é apenas um array. Qual é o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque sua solução, pode ajudar muitos usuários futuramente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal é o seguinte, no lugar de você passar o objeto na hora de chamar o metodo, você simplismente passa um array, exemplo:

$vetor = array('tipo1' => 'valor1', 'tipo2' => 'valor2');
$result = $cliente->call('nome do metodo do web service',  array('nome do parametro' => $vetor)); //vetor aqui é como se fosse meu obejto

 

e pronto! hehe

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.