Closed Sanmoo closed 9 years ago
Isso me parece com versão incompatível do SSL. Talvez a cielo tenha mudado a versão do certificado. Dá uma olhada nesse post aqui: http://stackoverflow.com/questions/26644867/ssl-connect-returned-1-errno-0-state-sslv3-read-server-hello-a-wrong-version-nu Tenta achar qual é a versão atual do servidor da Cielo e confere qual é o seu. Se for diferente, iguale o seu ao deles que o erro deve desaparecer. Se forem iguais, teremos que investigar mais a fundo.
O da gem Cielo é declarado aqui: https://github.com/crafters/cielo/blob/master/lib/cielo/connection.rb#L15
Aindam segundo esse PDF aqui, https://www.cielo.com.br/documents/b771c7655be54bc983aba229162f0faa.pdf a versão a ser usada para conexão com a cielo é a SSL V3 que é a mesma que estamos usando. Talvez você tenha atualizado algo na sua máquina. Dá uma olhada em como atualizar o open ssl do seu ambiente.
@felipero obrigado pela prontidão. Verifiquei no chrome o site https://qasecommerce.cielo.com.br/ e ele informou a versão do SSL: TLS 1.0. Não sei se TLS1.0 e SSL3.0 são tecnicamente a mesma coisa, mas mudei a linha que você indicou para TLS1.0 em um fork, referenciei no meu Gemfile e agora todos os meus testes passam =) https://github.com/Sanmoo/cielo/blob/master/lib/cielo/connection.rb#L15
TLS é diferente de SSLV3. Agora estou na dúvida sobre qual devo manter como o oficial da gem. Eu estou sem contrato com a Cielo, você pode enviar um email pro suporte deles e perguntar qual é a versão oficial que eles usam? Aí eu defino aqui com mais certeza.
Nós ainda não nos credenciamos com a cielo. Assim que fizermos pergunto a eles.
Falei com eles no telefone, e ontem, domingo as 22hrs eles parecem ter mudado a versão do SSL mesmo, não estamos recebendo nenhum pagamento do cartão de crédito.
Me enviaram isso por e-mail
Conforme contato telefônico segue em anexo os certificados para atualização. Caso esteja utilizando a linguagem em php será necessário realizar a alteração descrita abaixo no include:
DE: curl_setopt($sessao_curl, CURLOPT_SSLVERSION, 3); PARA: curl_setopt($sessao_curl, CURLOPT_SSLVERSION, 4);
@mamute Não ajuda muito né. Esse código é em PHP. Não sei exatamente o que ele retorna. Talvez tentar uma versão ruby desse código e ver qual é o retorno ajude..
@felipero, verdade. Na real tá uma confusão isso, junto com o e-mail o suporte deles enviou um monte de certificados da própria CIELO com a justificativa que "as vezes o navegador não atualiza".
Enfim, pra testar eu mudei isso: https://github.com/mamute/cielo/blob/master/lib/cielo/connection.rb#L15
Só troquei pra TLSv1
e agora voltou a funcionar.
Pois é. Já que duas pessoas diferentes tiveram o problema, acho justo mudar para TSLv1 então. Algum de vocês quer mandar um pull request?
@felipero, existe previsão de uma próxima versão com essa mudança?
Olá @Sanmoo, Eu tenho andado bem ocupado ultimamente. Se alguém puder mandar um Pull Request com a alteração, ajudaria muito. :)
Opa @felipero, pensei que não precisava mais já que tem um commit no repositório que faz essa atualização. Vou fazer o pull request do que eu tenho então....
Aliás, vi aqui que o @mamute já fez esse pull request? É isso mesmo?
@Sanmoo parece que já mesmo. EU já até fiz o merge. :p
Olá,
Tenho uma aplicação rails (ruby 2.1.5, Rails 4.2.0) que usa esta gem para gerar um token. Tenho um modelo mais ou menos assim:
O token é gerado antes da validação. Na linha de geração de token,
response = token_request.create! token_parameters, :store
, o seguinte erro é retornado:OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server hello A: wrong version number
.Esta parte do código é exercitada pela seguinte spec:
Até ontem estes testes estavam passando.