heavenstudio / pag_seguro

A Ruby Client to deal with PagSeguro's API
http://heavenstudio.com.br
71 stars 38 forks source link

Fixed bug happening in Ruby 1.9.3 and OpenSSL. #19

Closed BrunoAssis closed 10 years ago

BrunoAssis commented 10 years ago

You have to force SSL v3 on the RestClient, so I did it on the gem so we don't have to alter anything on RestClient itself.

BrunoAssis commented 10 years ago

Vejam o que acham, por favor!

É o meu primeiro pull request aqui, então, se eu estiver ferindo alguma regra, me avisem! Obrigado!

BrunoAssis commented 10 years ago

Ah sim, não mudei versão da Gem, não criei branch, não fiz nada, só arrumei lá no código.

teonimesic commented 10 years ago

@BrunoAssis você rodou os testes e eles passam? Em específico, o teste em spec/pag_seguro/payment_spec.rb:191 não deveria estar passando pois lá o params não tem este attributo que adicionou. Veja se o teste de fato quebra (deveria), arrume o teste, rode de novo para ver que agora ele passa e adicione no commit :)

Se precisar rodar o teste basta entrar na pasta da gem e rodar bundle exec rspec spec/pag_seguro/payment_spec.rb:191

BrunoAssis commented 10 years ago

@teonimesic está falhando geral com o Shoulda-Matchers 2.6.0. Procurando, parece que tem um bug nessa versão. Forcei a 2.5.0 e os testes rodaram (com um Warning do Shoulda-Matchers 2.5.0), mas uma porrada de testes falharam (inclusive o que você falou, mas não só ele) :(

Corrigi o teste que você especificou, e agora ele está passando (agora ele espera o parâmetro ssl_version), mas tem um monte de testes falhando aqui :(

Eu não manjo muito bem de testes nem do processo do PagSeguro (só uso o basicão), será que você poderia dar uma checada aí?

Posso colocar aquele teste corrigido no commit! Coloco também o gemfile especificando o Shoulda-Matchers 2.5.0 ou não?

Obrigado pelas dicas!

teonimesic commented 10 years ago

pode colocar a versão do shoulda matchers no gemfile também! Eu dou uma olhada nos outros testes depois que subir

BrunoAssis commented 10 years ago

Pronto, obrigado!

josuetex commented 10 years ago

Galera,

O parâmetro :ssl_version não está sendo considerado. Observem no trace que estou apontando para o branch master do pag_seguro. Será a versão do rest-client que está na 1.6.7? Quando executo "gem install rest-client", é essa a versão que ele instala.

Errno::ECONNRESET in Admin::MinhasCobrancasController#pagar

Connection reset by peer - SSL_connect Rails.root: /home/josue/Dropbox/Projetos/Mikweb

Application Trace | Framework Trace | Full Trace /home/josue/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/net/http.rb:800:in connect' /home/josue/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/net/http.rb:800:inblock in connect' /home/josue/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/timeout.rb:55:in timeout' /home/josue/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/timeout.rb:100:intimeout' /home/josue/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/net/http.rb:800:in connect' /home/josue/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/net/http.rb:756:indo_start' /home/josue/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/net/http.rb:745:in start' rest-client (1.6.7) lib/restclient/request.rb:172:intransmit' rest-client (1.6.7) lib/restclient/request.rb:64:in execute' rest-client (1.6.7) lib/restclient/request.rb:33:inexecute' rest-client (1.6.7) lib/restclient.rb:72:in post' /home/josue/.rvm/gems/ruby-1.9.3-p448/bundler/gems/pag_seguro-34801f05a9f5/lib/pag_seguro/payment.rb:98:insend_checkout' /home/josue/.rvm/gems/ruby-1.9.3-p448/bundler/gems/pag_seguro-34801f05a9f5/lib/pag_seguro/payment.rb:104:in parse_checkout_response' /home/josue/.rvm/gems/ruby-1.9.3-p448/bundler/gems/pag_seguro-34801f05a9f5/lib/pag_seguro/payment.rb:58:incode' /home/josue/.rvm/gems/ruby-1.9.3-p448/bundler/gems/pag_seguro-34801f05a9f5/lib/pag_seguro/payment.rb:54:in `checkout_payment_url'