Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Integração Cielo XML com PHP

$
0
0

Boa noite \o

 

Tenho tentado integrar uma loja virtual á Cielo usando o webservice no ambiente de testes, mas sem sucesso :(

Pra resumir, o máximo que consegui foi obter o status 001 de resposta, que significa "A mensagem XML está fora do formato especificado pelo arquivo ecommerce.xsd". Já li e reli esse arquivo do início ao fim, até que cheguei nesse código que to postando abaixo. E mesmo assim não consigo achar onde tá errado.

 

Alguém sabe como ajudar? Agradeço!

$xml_str = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<requisicao-transacao id="a97ab62a-7956-41ea-b03f-c2e9f612c293" versao="1.2.1">
<dados-ec>
	<numero>NUMERO_DA_LOJA</numero>
	<chave>CHAVE_DE_ACESSO</chave>
</dados-ec>
<dados-portador>
	<numero>NUMERO_CARTAO</numero>
	<validade>VENCIMENTO_CARTAO</validade>
	<indicador>1</indicador>
	<codigo-seguranca>CODIGO_DE_SEGURANCA</codigo-seguranca>
	<token>
		
	</token>
</dados-portador>
<dados-pedido>
	<numero>123456789</numero>
	<valor>1000</valor>
	<moeda>986</moeda>
	<data-hora>2011-12-07T11:43:37</data-hora>
	<descricao>[origem:10.50.54.156]</descricao>
	<idioma>PT</idioma>
	<soft-descriptor>
		
	</soft-descriptor>
</dados-pedido>
<forma-pagamento>
	<bandeira>visa</bandeira>
	<produto>A</produto>
	<parcelas>1</parcelas>
</forma-pagamento>
<url-retorno>https://www.meusite.com.br/minhapagina/retorno</url-retorno>
<autorizar>1</autorizar>
<capturar>false</capturar>
<campo-livre>Informações extras</campo-livre>
<bin>455187</bin>
<gerar-token>false</gerar-token>
<avs>
<![CDATA[
<dados-avs>
<endereco>Rua Teste AVS</endereco>
<complemento>Casa</complemento>
<numero>123</numero>
<bairro>Vila AVS</bairro>
<cep>12345-123</cep>
</dados-avs>
]]>
</avs>
</requisicao-transacao>'
XML;

$url = "https://qasecommerce.cielo.com.br/servicos/ecommwsec.do";

$post_data = array('xml' => $xml_str);
$stream_options = array(
    'http' => array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded' . "\r\n",
        'content' =>  http_build_query($post_data)));

$context  = stream_context_create($stream_options);
$response = file_get_contents($url, null, $context);
echo $response;

Resposta:

 

 

001 Requisição inválida

 


OBS: Os dados só estão no tipo NUMERO_CARTAO porque eu escondi os dados verdadeiros. Claro que quando testo de verdade uso os dados reais.


Viewing all articles
Browse latest Browse all 14190