Erro ao receber Notificação pela API Ruby on Rails

Comentários

5 comentários

  • Natalia Almeida

    Olá Jacques, tudo bom ?

    API do Rails? Poderia enviar o link de onde encontrou esta informação?

    Poderia enviar o endpoint e o PayLoad de como esta fazendo e o que esta recebendo de retorno?

  • Jacques Marques

    Estou usando esse SDK: https://github.com/pagseguro/ruby

    Quando faço essa chamada no pro meu site:

    https://superdinovo.com.br/notifications?notificationCode=DE26F9-5D0E0F0E0F12-5BB4825F8B7B-70A25A&notificationType=transaction

    Recebo um erro nessa linha:

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

     

    Mensagem de erro:

    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'

  • Sophia Silva

    Jacques

    Esse erro ocorre com qualquer código de notificação ou apenas com esse?

    Outra coisa, já tentou abrir issue no repositório da biblioteca?

  • Jacques Marques

    Sophia,

     

    O erro ocorre com qualquer código que informo...

    Não abri o issue no repositório, mas vou abrir pra ver se alguém responde...

  • Jacques Marques

    Olá,

    Olha a resposta que me deram no git do projeto:

    @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 um pull request 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.

    Isso é muito triste e o pior é que vem acontecendo a muito tempo, eu desenvolvo sites de e-commerce desde 2010 e lá quando usava Magento e PHP direto eu tinha problema de integração e o pior o PagSeguro não está nem aí, tem um modelo de suporte que beira o amadorismo e não estão nem aí para o desenvolvedores... que triste.