Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal,
Estou implantando a loaj integrada cielo em um site, li o manual e segui as recomendaçoes, também vi alguns topicos aqui sobre esta implementaçao
Problema que ja virei o codigo e nao acho de forma alguma o motivo do erro, olhando os logs de erro, achei a seguinte mensagem onde o erro é exibido:
ARQUIVO: /home/pmb/public_html/includes/errorHandling.php(Linha 64)
MENSAGEM:
Código do erro: 001
Mensagem:
O XML informado não é valido:
Estou ja desesperada, porque estou há semanas neste bendito trecho :(
No xml achei isso:
ARQUIVO: /novoPedidoAguarde.php
OPERAÇÃO: Transacao
RESPOSTA: <?xml version="1.0" encoding="ISO-8859-1"?>
<erro xmlns="http://ecommerce.cbmp.com.br"><codigo>001</codigo><mensagem><
<autorizar>3</autorizar>
<capturar>true</capturar>
</requisicao-transacao>
***********************************************
2015-01-07 22:26:39:000000 (BRST)
DO ARQUIVO: /novoPedidoAguarde.php
OPERAÇÃO: Transacao
RESPOSTA: <?xml version="1.0" encoding="ISO-8859-1"?>
<erro xmlns="http://ecommerce.cbmp.com.br"><codigo>001</codigo><mensagem><![CDATA[Observe:
<valor>cartucho 20ml</valor>
Este nó deve ser o valor do produto e não a descrição dele.
Corrigi o erro do campo, mas agora esta dando este erro:
***********************************************
2015-01-08 17:25:59:000000 (BRST)
DO ARQUIVO: /novoPedidoAguarde.php
OPERAÇÃO: Transacao
RESPOSTA: Unknown SSL protocol error in connection to cieloecommerce.cielo.com.br:443
A solução que temos é a a integrada(autenticação direto no site da cielo) portanto, não precisa de ssl no site, so que no exemplo é usado com, conforme as linhas abaixo: (como podem ver ate desabilitei a verificação do SSL)
// CONSTANTES
define("ENDERECO_BASE", "https://qasecommerce.cielo.com.br");
define("ENDERECO", ENDERECO_BASE."/servicos/ecommwsec.do");
define("CIELO", "1057335492");
define("CIELO_CHAVE", "45faaefc910fbe15b2e4b2ac686354f8ded842f0b12a87fc9fc40ce5047fe387");
// Envia requisição
function httprequest($paEndereco, $paPost){
$sessao_curl = curl_init();
curl_setopt($sessao_curl, CURLOPT_URL, $paEndereco);
curl_setopt($sessao_curl, CURLOPT_FAILONERROR, true);
// CURLOPT_SSL_VERIFYPEER
// verifica a validade do certificado
curl_setopt($sessao_curl, CURLOPT_SSL_VERIFYPEER, false);
// CURLOPPT_SSL_VERIFYHOST
// verifica se a identidade do servidor bate com aquela informada no certificado
curl_setopt($sessao_curl, CURLOPT_SSL_VERIFYHOST, 2);
// CURLOPT_SSL_CAINFO
// informa a localização do certificado para verificação com o peer
curl_setopt($sessao_curl, CURLOPT_CAINFO, getcwd() .
"/ssl/verisign.crt");
curl_setopt($sessao_curl, CURLOPT_SSLVERSION, 3);
// CURLOPT_CONNECTTIMEOUT
// o tempo em segundos de espera para obter uma conexão
curl_setopt($sessao_curl, CURLOPT_CONNECTTIMEOUT, 10);
// CURLOPT_TIMEOUT
// o tempo máximo em segundos de espera para a execução da requisição (curl_exec)
curl_setopt($sessao_curl, CURLOPT_TIMEOUT, 40);
// CURLOPT_RETURNTRANSFER
// TRUE para curl_exec retornar uma string de resultado em caso de sucesso, ao
// invés de imprimir o resultado na tela. Retorna FALSE se há problemas na requisição
curl_setopt($sessao_curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($sessao_curl, CURLOPT_POST, true);
curl_setopt($sessao_curl, CURLOPT_POSTFIELDS, $paPost );
$resultado = curl_exec($sessao_curl);
if ($resultado)
{
return $resultado;
}
else
{
return curl_error($sessao_curl);
}
curl_close($sessao_curl);
}O certificado /ssl/verisign.crt existe?
O certificado /ssl/verisign.crt existe?
Existe, mas ele é desnecessário, pois a autenticação é no ambiente da cielo, Ate desabilitei ele neste linha:
curl_setopt($sessao_curl, CURLOPT_SSL_VERIFYPEER, false);
Tatiana, você sabe o que é chave pública e chave privada? Sem estes conceitos você não vai conseguir entender para que de fato serve aquele certificado...
Sobre a questão em si, retire tudo que trata do SSL e deixe apenas:
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Eu uso assim e funciona sem problemas>
Tatiana, você sabe o que é chave pública e chave privada? Sem estes conceitos você não vai conseguir entender para que de fato serve aquele certificado...
Sobre a questão em si, retire tudo que trata do SSL e deixe apenas:
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Eu uso assim e funciona sem problemas
Obrigada pelas orientação
Entao: eu fiz as alterações e agora esta acusando esta mensagem:
2015-01-09 14:51:54:000000 (BRST)
DO ARQUIVO: /novoPedidoAguarde.php
OPERAÇÃO: Transacao
RESPOSTA: <?xml version="1.0" encoding="ISO-8859-1"?>
<erro xmlns="http://ecommerce.cbmp.com.br"><codigo>002</codigo><mensagem>Credenciais inválidas.</mensagem></erro>
Só que as credenciais estao certinhas, ja conferi!
Olhando o manual, percebi que esta linha aqui:
define("ENDERECO_BASE", "https://qasecommerce.cielo.com.br");
define("ENDERECO", ENDERECO_BASE."/servicos/ecommwsec.do");
Parece que mudou para essa:
https://cieloecommerce.cielo.com.br/Transactional/Order/Index
Só que quando coloco ele, da erro de timeout.. :( agora nao consigo passar disso..
As credenciais são estas:
define("CIELO", "1057335492");
define("CIELO_CHAVE", "45faaefc910fbe15b2e4b2ac686354f8ded842f0b12a87fc9fc40ce5047fe387");
Se forem do ambiente de testes provavelmente ele esteja off, ai você tem que aguardar até ele voltar.>
As credenciais são estas:
define("CIELO", "1057335492");
define("CIELO_CHAVE", "45faaefc910fbe15b2e4b2ac686354f8ded842f0b12a87fc9fc40ce5047fe387");
Se forem do ambiente de testes provavelmente ele esteja off, ai você tem que aguardar até ele voltar.
Então, mas sera que pelo link ter mudado para este:
>
https://cieloecommerce.cielo.com.br/Transactional/Order/Index
Nao possa sar o motivo do erro? problema que como falei, existem duas linhas no codigo para mandar para o ambiente de produção:
define("ENDERECO_BASE", "https://qasecommerce.cielo.com.br");
define("ENDERECO", ENDERECO_BASE."/servicos/ecommwsec.do");Tatiana, na dúvida faça o simples: baixe o manual e leia. Nele constam as URLs de serviço de tudo mais, até onde eu sei as URLs continuam as mesmas.
Tatiana, na dúvida faça o simples: baixe o manual e leia. Nele constam as URLs de serviço de tudo mais, até onde eu sei as URLs continuam as mesmas.
Bom dia ESerra,
Eu olhei o manual novamente, e seguindo um exemplo deles abaixo:
<form action="https://cieloecommerce.cielo.com.br/Transactional/Order/Index" method="post">
<input type="hidden" name="merchant_id" value="62bd91ba-11e4-45d1-b1e6-500029d8f251" />
<input type="hidden" name="order_number" value="0000000001" />
<input type="hidden" name="shipping_type" value="3" />
<input type="hidden" name="cart_1_name" value="<?php echo $_SESSION['Carrinho']['Produto'][$key]['nome']; ?>" />
<input type="hidden" name="cart_1_unitprice" value="100" />
<input type="hidden" name="cart_1_quantity" value="1" />
<input type="hidden" name="codigoBandeira" value="visa" />
<input type="hidden" name="formaPagamento" value="1" />
<input type="hidden" name="tipoParcelamento" value="3" />
<input type="hidden" name="capturarAutomaticamente" value="true" />
<input type="hidden" name="indicadorAutorizacao" value="3" />
<input type="hidden" name="produto" value="<?php echo $_SESSION['Carrinho']['Produto'][$key]['nome']; ?>" />
<input type="hidden" name="cart_1_type" value="1" />
Ele ate entra no ambiente da cielo, entao entro com os dados, só que na pagina de retorno, fica td em branco,..
Nossa, ja reli esse manual, mas sempre quando começo do zero novamente, acontece outro problema :/
Tatiana,
Você conseguiu resolver isso? minha dificuldade é que nao consigo pegar o conteudo de TID no retorno..
Sabe como conseguir?
Obrigado
>
Tatiana,
Você conseguiu resolver isso? minha dificuldade é que nao consigo pegar o conteudo de TID no retorno..
Sabe como conseguir?
Obrigado
Oi Fábio,
Infelizmente não consegui resolver, pois a CIELO diz que a versão anterior do código esta sendo descontinuada e (segundo eles) e melhor ja usar a nova :(
Entrei no site e baixei o manual novo, na opção de BUY PAGE CIELO, você não precisa mais mandar a chave, agora você tem um campo chamado merchant_id que é seu código.
Estou parada na questão do formulário onde você manda via post para este link novo: https://cieloecommerce.cielo.com.br/Transactional/Order/Index
é isso.;;
Pessoal,
Ninguém tem mais alguma ideia?
Se alguém puder me ajudar neste problema, se for o caso, ate pago, pois ja estou ha dias nisso..
>
Pessoal,
Ninguém tem mais alguma ideia?
Se alguém puder me ajudar neste problema, se for o caso, ate pago, pois ja estou ha dias nisso..
Também estou com problemas devido a mudança na homologação da cielo.
Alguém para nos dar uma força?
Oi, Tatiana e Fábio,
Conseguiram avançar em algo? Também estou com o mesmo problema.
>
Oi, Tatiana e Fábio,
Conseguiram avançar em algo? Também estou com o mesmo problema.
Olá Lucas,
Infelizmente não! Entrei em contato com o suporte técnico da CIELO, ficaram 10 dias para em dizerem que é só enviar campos via post :(
Essa nova solução deles com modificações esta me dando uma dor de cabeça.
Eu tenho um site em ASP, e desde que implantado o novo certificado dá um erro no meu servidor. Já pedi para o pessoal do meu servidor instalar o Certificado lá, mas o erro persiste.
Uso o método Buy Page Cielo, no ASP não precisa validar o certificado no código, mando o XML direto sem validar e sempre funcionou desde 2005 que sou cliente da CIELO aqui.
NOTA:
Quando eu uso o LINK: ( https://ecommerce.cbmp.com.br/servicos/ecommwsec.do )
Funciona mas redireciona ao link ( https://ecommerce.cielo.com.br/servicos/ecommwsec.do ) e estranhamente abre o certificado antigo, porém ao final da transação mesmo ela sendo aprovada a tela de retorno não abre, pois dá o erro:
msxml3.dll error '80072f7d'
An error occurred in the secure channel support
Se eu uso o LINK novo: ( https://ecommerce.cielo.com.br/servicos/ecommwsec.do ) não funciona e logo de cará dá o erro:
msxml3.dll error '80072f7d'
An error occurred in the secure channel support
Já tentei resolver isso com a CIELO e com o pessoal do meu servidor, mas até agora não tive sucesso.
Agora não sei se o problema é no meu servidor que é usa Windows Server 2003 antigo, ou se eles não souberam instalar o certificado corretamente, ou se o problema é no ASP. Tentei rodar uma página teste em PHP mas chega numa tela de redirecionamento e ela para não acontece mais nada.
Se eu conseguir alguma resultado postarei aqui.
Abraços!!
Oi Pessoal.
Consegui resolver o erro do retorno, eu estava usando URL errada.
Porém quero saber se alguém aqui consegue se conectar ao servidor da CIELO pela URL ( https://ecommerce.cielo.com.br/servicos/ecommwsec.do )
Abraços!
>
Oi Pessoal.
Consegui resolver o erro do retorno, eu estava usando URL errada.
Porém quero saber se alguém aqui consegue se conectar ao servidor da CIELO pela URL ( https://ecommerce.cielo.com.br/servicos/ecommwsec.do )
Abraços!
Olá,
Como voce obteve os dados do retorno nesta nova solução deles?
Boa tarde .. também revirei a net atras de informação ... mas acabei me virand e bolando uma boa gambiarra pra resolver o problema.
No fonte onde finaliza a compra dentro da minha loja eu adicionei o seguinte código antes de que a pagina seja redirecionada para a téla de conclusão (aquela pajina que diz .. OK.. COMPRA REALIZADA COM SUCESSO)...
<form id="formcielo" action="https://cieloecommerce.cielo.com.br/Transactional/Order/Index" method="post">
<input type="hidden" name="merchant_id" value="AQUI VAI A INFORMAÇÂO ENVIADA PELA CIELO" />
<input type="hidden" name="order_number" value="<?php echo $chk_order_number; ?>" />
<input type="hidden" name="shipping_type" value="2" />
<input type="hidden" name="Shipping_Zipcode" value="<?php echo $chk_Shipping_Zipcode; ?>" />
<input type="hidden" name="shipping_1_name" value="Correios" />
<input type="hidden" name="shipping_1_price" value="<?php echo $chk_shipping_1_price; ?>" />
<?php echo $produtos_post; ?>
<input type="hidden" name="Shipping_Address_Name" value="<?php echo $chk_Shipping_Address_Name; ?>" />
<input type="hidden" name="Shipping_Address_Number" value="0" />
<input type="hidden" name="Shipping_Address_Complement" value="" />
<input type="hidden" name="Shipping_Address_District" value="<?php echo $chk_Shipping_Address_District; ?>" />
<input type="hidden" name="Shipping_Address_City" value="<?php echo $chk_Shipping_Address_City; ?>" />
<input type="hidden" name="Shipping_Address_State" value="<?php echo $chk_Shipping_Address_State; ?>" />
<input type="hidden" name="Customer_Name" value="<?php echo $chk_Customer_Name; ?>" />
<input type="hidden" name="Customer_Email" value="<?php echo $chk_Customer_Email; ?>" />
<input type="hidden" name="Customer_Identity" value="" />
<input type="hidden" name="Customer_Phone" value="<?php echo $chk_Customer_Phone; ?>" />
</form>
<script type="text/javascript">
window.onload = function() { document.getElementById('formcielo').submit() }
</script>
Manipule as informações com Variaveis e Constantes como for melhor e mais silples para você (no exemplo acima fiz bem isso ... hahahah )
Lembre-se de comentar a linha original do seu e commerce que redirecionava a pagina para a finalização , para que possa redirecionar para o site da cielo. E o link para qual o fonte original redirecionava ao finalizar, colocamos na URL de retorno no Backoffice.(que você ja deve ter acesso).
Depois disso é só fazer os arquivos de NOTIFICAÇÃO e STATUS. Se quiser é so fazer um arquivo que contenha <status>OK</status>, salvar na raiz do seu site e colar o link referente a cada arquivo no Backoffice nos campos correspondentes logo abaixo da URL de Retorno.
Uffa... boa sorte.
Olá,
Você tem é solução integrada, nao? (buy page cielo)?