wfelix 0 Denunciar post Postado Agosto 18, 2010 Então, gostaria de saber como coletar os dados de retorno. Wagner, da mesma forma que você envia uma <requisicao-autorizacao />, você enviará uma <requisicao-consulta /> ;) hummm... obrigado... farei... o "vicio" de brpay/pagseguro/paypal me fez acreditar que o retorno de sucesso/falha viria por POST, ehhehe obrigado pela luz... Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Agosto 20, 2010 Pessoal , ressucitando novamente , sem querer ser chato nem nada , será que alguem pode me ajudar a dar os primeiros passos para fazer funcionar esse webservice ? Obrigado . Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Agosto 20, 2010 Pessoal , ressucitando novamente , sem querer ser chato nem nada , será que alguem pode me ajudar a dar os primeiros passos para fazer funcionar esse webservice ? Obrigado . Se você já leu todo o manual, veja o post #13 Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Agosto 20, 2010 sim sim , eu até testei , mas ele dá esse erro string(887) " 12346 chave Brasilgate 097 123456789 1000 986 2010/08/20 13:26:55 123 1 http://demo.cinodo.com.br/prototipo/cielo/cielo1.php 2 false " int(0) string(0) "" Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 2: parser error : XML declaration allowed only at the start of the document in /home/democin/public_html/prototipo/cielo/cielo1.php on line 108 Warning: simplexml_load_string() [function.simplexml-load-string]: <?xml version='1.0' encoding='UTF-8'?> in /home/democin/public_html/prototipo/cielo/cielo1.php on line 108 Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/democin/public_html/prototipo/cielo/cielo1.php on line 108 Warning: Invalid argument supplied for foreach() in /home/democin/public_html/prototipo/cielo/cielo1.php on line 109 TID Data: 2010-08-20T13:28:04 Autentica : Redirecionar para preencher dados cartão e não sei como fazer a pagina de retorno. Compartilhar este post Link para o post Compartilhar em outros sites
riopardo 0 Denunciar post Postado Agosto 23, 2010 Opa!!!! mais claro que os post acima!!!! Onde é que tu esta tendo problema? Será que alguem pode me ajudar ??? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Agosto 23, 2010 Opa!!!! mais claro que os post acima!!!! Onde é que tu esta tendo problema? Será que alguem pode me ajudar ??? Obrigado eu testei o codigo , so que ele apresenta o erro que mosteri , queria saber como resolve-lo. Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Agosto 23, 2010 Desculpa ai galera , eu fiz umas modificações e o erro nao aparece , eu utilizei o codigo do João Batista Neto , utilizei tambem o codigo do aprendendo_php. Agora , como faço para receber o resultado da Cielo para meu site ? obrigado.. Compartilhar este post Link para o post Compartilhar em outros sites
wfelix 0 Denunciar post Postado Agosto 23, 2010 eu testei o codigo , so que ele apresenta o erro que mosteri , queria saber como resolve-lo. talvez seja o interpretador php... tenta o seguinte... em vez de $autenticacao = <<<XML <?xml version="1.0" encoding="UTF-8"?> blablabla XML ; tenta $autenticacao = ' <?xml version="1.0" encoding="UTF-8"?> blablabla ' ; so pra teste... as vezes, dependendo como esta a config do server, ele nao entende muito bem esse <<<XML alias, pra entender o processo, o XML pode até ter dados estaticos... quando você "sacar" o que esta fazendo, aih você aplica o conteudo dinamico pro que você quer fazer e SIM, o manual é confuso, até você entender os tipos de requisiçao, e sacar que o "retorno" na verdade é uma consulta a parte... editando: entao, como eu disse, o "retorno" nao existe, você tem que fazer uma consulta pra saber o resultado(o que seria o retorno), um exemplo tosquinho que fiz pra testes enquanto tava estudando(com a ajuda desse topico): $mensagem = '<?xml version="1.0" encoding="UTF-8"?> <requisicao-consulta id="5" versao="1.0.0" xmlns="http://ecommerce.cbmp.com.br"> <tid>XXXXXXXXXXXXXXXXXX</tid> <dados-ec> <numero>ffffffffffffffff</numero> <chave>aaaaaaaaaaaaaaaaaaaaaaaaaa</chave> </dados-ec> </requisicao-consulta>' ; /** * Iniciando CURL */ $curl = curl_init(); /** * Verificamos se o recurso CURL foi criado com êxito */ if ( is_resource( $curl ) ){ curl_setopt( $curl , CURLOPT_HEADER , 0 ); curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER, 0); curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 ); curl_setopt( $curl , CURLOPT_FOLLOWLOCATION , 1 ); curl_setopt( $curl , CURLOPT_URL , 'https://qasecommerce.cielo.com.br/servicos/ecommwsec.do' ); curl_setopt( $curl , CURLOPT_POST , 1 ); curl_setopt( $curl , CURLOPT_POSTFIELDS , http_build_query( array( 'mensagem' => $mensagem ) ) ); $xml = curl_exec( $curl ); $ern = curl_errno( $curl ); $err = curl_error( $curl ); curl_close( $curl ); if ( (bool) $ern ){ echo 'Ocorreu um erro[' , $ern , ']: ' , $err; } else { //var_dump( $xml , $ern , $err ); print_r($xml."<br><hr><br>"); print_r($ern."<br><hr><br>"); print_r($err."<br><hr><br>"); $DadosEnvio= simplexml_load_string($xml); echo "<pre>".$xml."</pre>"; } } else { echo 'erro'; } o tid você ja fica sabendo na primeira etapa ( "<requisicao-autenticacao"), aí todas as outras consultas você usa esse tid pra saber o status desse pedido especifico ;) mais uma vez: tem que ler o manual... ele é ruim, mas precisa ser lido... repare que pra consulta eu usei "<requisicao-consulta"... cada evento tem uma xml especifico... basta você enviar e pegar a informaçao que você quer ;) Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Agosto 23, 2010 wfelix , obrigado pelas dicas , mas quando ponho para testar eu nao consigo pegar o valor TID , utilizando como base o codigo do aprendendo_php //var_dump( $xml , $ern , $err ); $DadosEnvio= simplexml_load_string($xml); foreach( $DadosEnvio as $c => $v ) // recupera valores { $c = str_replace( array("-"), array(""), $c); //para remover os - da variavel a ser criada $$c = $v; } //exibe os dados e link para redirecionar (colocar um javascript top.window.location='$urlautenticacao' echo "<br>TID $tid"; // aqui eu nao recebo valor algum echo "<br>Data: $data"; // aqui sim , mostra a data e horas echo "<br>Autentica : $urlautenticacao"; // vazio tambem echo "<br>Redirecionar para preencher dados cartão <a href='$urlautenticacao'>$urlautenticacao</a>"; Sei que devo estar sendo chato , mas é que estou lendo e re-lendo o manul , mas nao consigo fazer funcionar , até tentei criar um arquivo xml separado e dpois chama-lo , mas não funcionou. Entao peço, Paciência :D Obrigado.. Compartilhar este post Link para o post Compartilhar em outros sites
wfelix 0 Denunciar post Postado Agosto 23, 2010 exemplo de autenticaçao com dados estaticos: $mensagem = '<?xml version="1.0" encoding="UTF-8"?> <requisicao-autenticacao id="1" versao="1.0.0" xmlns="http://ecommerce.cbmp.com.br"> <dados-ec> <numero>xxxxxxxxxxxxxxx</numero> <chave>xxxxxxxxxxxxxxxxxxxxxx</chave> <nome>Loja Virtual</nome> <codigo-pais>097</codigo-pais> </dados-ec> <dados-pedido> <numero>124</numero> <valor>100</valor> <moeda>986</moeda> <data-hora>2010-07-17T14:38:56</data-hora> </dados-pedido> <forma-pagamento> <produto>1</produto> <parcelas>1</parcelas> </forma-pagamento> <url-retorno>http://www.XXXXXXXXXX.com.br/cielo/testeretorno.php?pedido=124</url-retorno> <autorizar>2</autorizar> <capturar>true</capturar> </requisicao-autenticacao>' ; /** * Iniciando CURL */ $curl = curl_init(); /** * Verificamos se o recurso CURL foi criado com êxito */ if ( is_resource( $curl ) ){ curl_setopt( $curl , CURLOPT_HEADER , 0 ); curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER, 0); curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 ); curl_setopt( $curl , CURLOPT_FOLLOWLOCATION , 1 ); curl_setopt( $curl , CURLOPT_URL , 'https://qasecommerce.cielo.com.br/servicos/ecommwsec.do' ); curl_setopt( $curl , CURLOPT_POST , 1 ); curl_setopt( $curl , CURLOPT_POSTFIELDS , http_build_query( array( 'mensagem' => $mensagem ) ) ); $xml = curl_exec( $curl ); $ern = curl_errno( $curl ); $err = curl_error( $curl ); curl_close( $curl ); if ( (bool) $ern ){ echo 'Opz, ocorreu um erro[' , $ern , ']: ' , $err; } else { //var_dump( $xml , $ern , $err ); print_r($xml."<br><hr><br>"); print_r($ern."<br><hr><br>"); print_r($err."<br><hr><br>"); $DadosEnvio= simplexml_load_string($xml); foreach( $DadosEnvio as $c => $v ) // recupera valores { $c = str_replace( array("-"), array(""), $c); //para remover os - da variavel a ser criada $$c = $v; } //exibe os dados e link para redirecionar (colocar um javascript top.window.location='$urlautenticacao' echo "<br>TID $tid"; echo "<br>Data: $data"; echo "<br>Autentica : $urlautenticacao"; echo "<br>Redirecionar para preencher dados cartão <a href='$urlautenticacao'>$urlautenticacao</a>"; } } else { echo 'Opz, não foi possível criar o recurso da cURL'; } isso vai te retornar um tid e esse tid que deve ser usado em consultas futuras... o TID é unico pra cada pedido "gerado" ;) note que tudo isso ja estava meio que escrito a partir do post 13... Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Agosto 23, 2010 Cara , coloquei o que você colocou ai , mas ele apareceu Credencias inválidas... aqui ó , o link do teste Teste Cielo qualquer coisa eu coloco o codigo , obrigado a ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Zani 0 Denunciar post Postado Agosto 23, 2010 Tudo bem, mas me responde uma coisa como posso alterar os valores do dados do pedido se a mensagem for estática?? Também já li e re-li o manual, e concordo que é muito confuso!!! Também estou com problema de "retorno". Não tem como fazer com simplexml?? semelhante a isso?? //cria cabeçalho da xml que iniciara a transação $xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8" ?><requisicao-autenticacao></requisicao-autenticacao>'); //coloca em um nó filho nos dados da loja $dadosEC = $xml->addChild('dados-ec'); $dadosEC->addChild('numero',$numEstabelecimento); $dadosEC->addChild('chave',$numChave); $dadosEC->addChild('nome',$nomeLoja); $dadosEC->addChild('codigo-pais',"097"); Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Agosto 25, 2010 Galera , consegui enviar o pedido para a CIELO e aparece o verify by VISTA , só que como faço para pegar o Valor Do TID para o retorno ? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Zani 0 Denunciar post Postado Agosto 25, 2010 Poderia postar mais ou menos como conseguiu?? Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Agosto 26, 2010 Primeiro de tudo , o codigo do João Batista Neto é a base , tu tem que ligar para eles , e pedir a chave de teste , e colocar ali , e ai tu conseguirá o TID , agora so nao consigo recuperar esse TID. Se nao fui claro , pergunta mais , Okz Abrçs Compartilhar este post Link para o post Compartilhar em outros sites
agtche 0 Denunciar post Postado Setembro 4, 2010 Primeiro de tudo , o codigo do João Batista Neto é a base , tu tem que ligar para eles , e pedir a chave de teste , e colocar ali , e ai tu conseguirá o TID , agora so nao consigo recuperar esse TID. Se nao fui claro , pergunta mais , Okz Abrçs Olá galera, quando coloco o script no servidor do cliente da uma erro assim: Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /home/... Warning: simplexml_load_string() [function.simplexml-load-string]: namespace error : Namespace prefix http_handler on erro is not defined in /home/.... Compartilhar este post Link para o post Compartilhar em outros sites
GBN 0 Denunciar post Postado Setembro 5, 2010 Olá galera, quando coloco o script no servidor do cliente da uma erro assim: Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /home/... Warning: simplexml_load_string() [function.simplexml-load-string]: namespace error : Namespace prefix http_handler on erro is not defined in /home/.... Agtche - remove essa linha ai que foi o que eu fiz e deu certo... meu negocio agora esta no retorno Compartilhar este post Link para o post Compartilhar em outros sites
GBN 0 Denunciar post Postado Setembro 5, 2010 Pessoal, Ja consegui passar pela primeira etapa, no entanto nao consegui ainda passar pela etapa do retorno.. na realidade ja tentei de diversas formas ler o retorno que vem assim: <?xml version="1.0" encoding="ISO-8859-1"?> <transacao id="1283725743177" versao="1.0.0" xmlns="http://ecommerce.cbmp.com.br"> <tid>100173489801E0731001</tid> <pan>IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=</pan> <dados-pedido> <numero>2045448517</numero> <valor>10000</valor> <moeda>986</moeda> <data-hora>2010-09-05T19:28:29.131-03:00</data-hora> <idioma>PT</idioma> </dados-pedido> <forma-pagamento> <produto>1</produto> <parcelas>1</parcelas> </forma-pagamento> <status>2</status> <autenticacao> <codigo>2</codigo> <mensagem>Autenticada com sucesso</mensagem> <data-hora>2010-09-05T19:29:00.088-03:00</data-hora> <valor>10000</valor> <eci>5</eci> </autenticacao> </transacao> as informações ai de numero,pan e etc é tudo teste entao nao tem muito problema mostrar Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Setembro 6, 2010 Bom, com o retorno em mãos, basta utilizar DOM para lê-lo: http://forum.imasters.com.br/public/style_emoticons/default/seta.gif DOM Mais especificamente DOMDocument::getElementsByTagName() Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Setembro 6, 2010 Bom, com o retorno em mãos, basta utilizar DOM para lê-lo: http://forum.imasters.com.br/public/style_emoticons/default/seta.gif DOM Mais especificamente DOMDocument::getElementsByTagName() João , será que você poderia dar um exemplo , pois é apenas pegar o valor do retorno que me falta. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites