pagseguro-sdk-ruby icon indicating copy to clipboard operation
pagseguro-sdk-ruby copied to clipboard

Consulte Transaction by code error

Open JacquesMarques opened this issue 6 years ago • 8 comments

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&notificationType=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

  1. Call method: transaction = PagSeguro::Transaction.find_by_notification_code(params[:notificationCode])

Descrição Detalhada

Possível solução

JacquesMarques avatar Jan 17 '19 13:01 JacquesMarques

@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.

correamarques avatar Jan 19 '19 11:01 correamarques

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.

thiagomarinho avatar Jan 29 '19 11:01 thiagomarinho

@correamarques Mesmo usando seu fork ainda estou tendo problemas, voce saberia dizer oq? Estou referenciando o ultimo commit do master.

djalmaaraujo avatar Mar 05 '19 14:03 djalmaaraujo

@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.

jpaulomotta avatar May 08 '19 19:05 jpaulomotta

@vvenancio fyi

paulopatto avatar Dec 10 '19 20:12 paulopatto

@jpaulomotta Obrigado. Depois de muito tempo precisei usar novamente. Está funcionando.

djalmaaraujo avatar Dec 23 '19 04:12 djalmaaraujo

Parece que isso foi resolvido aqui no repo oficial? @jpaulomotta

djalmaaraujo avatar Jul 13 '20 14:07 djalmaaraujo

fork com a correção e com json 2.3

https://github.com/celsoMartins/ruby.git

celsoMartins avatar May 27 '21 00:05 celsoMartins