fnando/pagseguro — Issue #30: A requisição POST do PAG SEGURO não entra no bloco "pagseguro_notification do |notification|"
Author: aleemerich
Created: 2011-11-08 01:05:42+00:00
State: open

Boa noite Fernando.

Estou usando a versão mais atual de sua GEM (0.1.12) com Rails 3.0.9 e Ruby 1.8.7 em um servidor compartilhado da Locaweb, contudo toda vez que o PAG SEGURO faz uma requisição para minha aplicação ela não acessa o bloco "pagseguro_notification". Tenho outra aplicação nesse mesmo servidor, com essa mesma configuração, e isso funciona perfeitamente. Vi que há uma ISSUE como essa, mas vi que o problema era relacionado com a versão da GEM, pelo que entendi, o que não seria o caso agora.

Nos testes que faço local (na minha máquina), usando o prompt de comando para simular as requisições do PAG SEGURO como você instrui, tudo ocorre bem sem, nenhum erro é exibido e o bloco "pagseguro_notification" é acessado normalmente. Mas quando coloco na WEB, em ambiente de produção, e faço uma compra real para pagar no PAG SEGURO (iniciando o processo de pagamento no site PAG SEGURO), vejo o rastreio de LOG indicar claramente que o POST é recebido, mas o bloco "pagseguro_notification" e ignorado. Um resumo do meu código seria:

Rota que recebe o PAG SEGURO:
```post "/url_retorno/pag_seguro", :action => "retorno_pag_seguro", :controller => "pagamento_pedidos"```

No arquivo *pagamento_pedidos_controller.rb* tem o código:
``` def retorno_pag_seguro
logger.fatal '==> Entrou no retorno_pag_seguro'
begin
pagseguro_notification do |notification|
logger.fatal '==> Entrou no bloco de notificacao'
...
end
logger.fatal '==> FIM DO PROCESSAMENTO'
rescue
logger.fatal '==> ERRO FATAL: ' + $!.to_s
end
end```

E o que aparece no LOG quando o PAG SEGURO envia um POST ao meus sistema é:

>Started POST "/url_retorno/pag_seguro" for 186.234.16.8 at Mon Nov 07 22:18:17 -0200 2011
Processing by PagamentoPedidosController#retorno_pag_seguro as HTML
Parameters: {"ProdValor_1"=>"1,00", "CliEndereco"=>"RUA YTAIPU", "VendedorEmail"=>"plotter@plottercomercial.com.br", "ProdQuantidade_1"=>"1", "ProdExtras_1"=>"0,00", "Extras"=>"0,00", "Anotacao"=>"", "TipoFrete"=>"FR", "NumItens"=>"1", "CliCEP"=>"04052010", "CliNome"=>"Alessandro Emerich", "ProdDescricao_1"=>"Pagamento da parcela 1 do pedido 00018", "CliBairro"=>"Mirand�polis", "TipoPagamento"=>"Pagamento Online", "DataTransacao"=>"07/11/2011 22:18:03", "ProdID_1"=>"20", "CliEstado"=>"SP", "CliCidade"=>"SAO PAULO", "CliNumero"=>"110", "CliEmail"=>"alessandro_emerich@yahoo.com.br", "ValorFrete"=>"0,00", "ProdFrete_1"=>"0,00", "Parcelas"=>"1", "CliComplemento"=>"", "Referencia"=>"20", "CliTelefone"=>"11 82839949", "StatusTransacao"=>"Aguardando Pagto", "TransacaoID"=>"C38E4A431BA440719EECA8478302A48E"}
>==> Entrou no retorno_pag_seguro
>==> FIM DO PROCESSAMENTO
>Rendered layouts/_cabecalho_publico.html.erb (1.1ms)
>Rendered layouts/_semi_rodape_publico.html.erb (0.1ms)
>Rendered pagamento_pedidos/retorno_pag_seguro.html.erb within layouts/publico (57.6ms)
>Completed 200 OK in 297ms (Views: 44.9ms | ActiveRecord: 18.5ms)

Perceba que a mensagem após o bloco "pagseguro_notification" não é impressa no LOG, nem nenhum erro.

Você tem alguma ideia do que seja ou uma forma de testar isso melhor? Será que o PAG SEGURO alterou algo no envio dos dados para que isso ocorra?

Obrigado.