pagseguro-sdk-ruby
pagseguro-sdk-ruby copied to clipboard
Consulte Transaction by code error
Este relatório deve ser usado APENAS para reportar bugs
Comportamento esperado
The method should return transaction data
Comportamento atual
I get a message error:
I, [2019-01-15T15:08:20.182851 #19753] INFO -- : Started POST "/notifications?notificationCode=DE26F9-5D0E0F0E0F12-5BB4825F8B7B-70A25A¬ificationType=transaction" for 187.115.6$ I, [2019-01-15T15:08:20.186399 #19753] INFO -- : Processing by NotificationsController#create as */* I, [2019-01-15T15:08:20.186599 #19753] INFO -- : Parameters: {"notificationCode"=>"DE26F9-5D0E0F0E0F12-5BB4825F8B7B-70A25A", "notificationType"=>"transaction"} I, [2019-01-15T15:08:20.188627 #19753] INFO -- : Notifications I, [2019-01-15T15:08:20.470655 #19753] INFO -- : Completed 500 Internal Server Error in 284ms (ActiveRecord: 0.0ms) F, [2019-01-15T15:08:20.471845 #19753] FATAL -- : F, [2019-01-15T15:08:20.471932 #19753] FATAL -- : ArgumentError (invalid value for BigDecimal(): ""): F, [2019-01-15T15:08:20.471996 #19753] FATAL -- : F, [2019-01-15T15:08:20.472058 #19753] FATAL -- : app/controllers/notifications_controller.rb:8:in
create'`
Ambiente (produção, sandbox)
Passos para reproduzir o bug
- Call method: transaction = PagSeguro::Transaction.find_by_notification_code(params[:notificationCode])
Descrição Detalhada
Possível solução
@JacquesMarques infelizmente esse projeto foi abandonado pelo PagSeguro, pois não está dando manutenção nele.
Problema
Valor inválido para um BigDecimal invalid value for BigDecimal(): "".
O que está ocasionando este erro é que o PagSeguro não está retornando os seguintes valores operationalFeeAmount
, commissionFeeAmount
e efrete
para essa transação.
Solução
Eu criei o pull request 239 para corrigir esse problema em Março de 2018 e até agora não obtive retorno deles.
Para resolver teu problema existe duas opções:
- Referenciar a minha correção da biblioteca na sua aplicação.
- Efetuar o fork desse projeto, realizar as mesmas validações que fiz no meu projeto, publicar no github o seu fork, referenciar a sua correção no seu projeto.
Pois é, melhor não ficar na expectativa de que o pessoal do Pagseguro corrigirá isso no repositório oficial :(. Na época, para resolver o problema pelo qual passei, optei por fazer a correção em um fork e referenciá-lo.
@correamarques Mesmo usando seu fork ainda estou tendo problemas, voce saberia dizer oq? Estou referenciando o ultimo commit do master.
@djalmaaraujo espero que ainda possa ser de ajuda para e outros. O fork do @correamarques está desatualizado em relação ao repositório. Deve ser por esse motivo que você não conseguiu resolver o problema.
Acabei de abrir um PR #246 que corrige esse bug conforme o @correamarques sugeriu, porem que inclui as ultimas atualizações da biblioteca. Estou usando esse fork sem problemas.
Basta substituir no seu Gemfile:
gem "pagseguro-oficial", git: 'https://github.com/jpaulomotta/ruby', branch: 'sandbox-find-by-notification-code'
Até o Pull Request ser aceito pelos colaboradores desde repositório.
@vvenancio fyi
@jpaulomotta Obrigado. Depois de muito tempo precisei usar novamente. Está funcionando.
Parece que isso foi resolvido aqui no repo oficial? @jpaulomotta
fork com a correção e com json 2.3
https://github.com/celsoMartins/ruby.git