Closed josuetex closed 11 years ago
Não, o pagsrguro armazena o id que vc passa na hora de criar um pagamento através da tag reference. De uma olhada na documentação da gen, vc provavelmente não está enviando um id na hora de criar o pagamento, e aí essa tag de refererence não é passada no retorno
Em 02/05/2013, às 17:31, Josue Teixeira notifications@github.com escreveu:
Ao tentar tratar a notifcação do pagseguro está ocorrendo o seguinte erro:
A NoMethodError occurred in paginas#notificacao:
undefined method content' for nil:NilClass vendor/bundle/ruby/1.9.1/gems/pag_seguro-0.4.1/lib/pag_seguro/transaction.rb:43:inid'
Observei que o método id da class transaction está capturando a tag "reference" conforme abaixo:
def id @data.css("reference").first.content end
Não seria a tag "id" do xml de retorno ?
Tenho uma biblioteca que usava para tratar as notificações eeu capturava a tag "id" do retorno. Mudei para a sua pois está mais completa.
Desde já agradeço;
Josué Teixeira
— Reply to this email directly or view it on GitHub.
Apenas para esclarecer, existem dois métodos distintos: id
e transaction_id
. O primeiro, é o mesmo id
que você usou na hora de instanciar um novo pagamento (e.g.: payment = PagSeguro::Payment.new(email, token, id: invoice.id)
). O segundo, é o id da transação que é gerado automaticamente pelo pagseguro.
No caso, o id
só existe se você tiver passado um ao instanciar o pagamento, enquanto que o transaction_id
sempre existe. Acredito que o "id" que você capturava com a outra gem se refere a esse transaction_id
. O id
server para que você tenha uma forma mais rápida de referenciar um pagamento ou elemento no seu banco de dados.
Descuplas.. Como eu havia dito antes, eu estava usando minha biblioteca. Eu estava gerando a cobrança através da minha biblioteca e recebendo a notificação através dessa gem pag_seguro.
Com a minha biblioteca, eu resgatava o id do item na notificação.
Obrigado pelos esclarecimentos.
Valeu!
Ao tentar tratar a notifcação do pagseguro está ocorrendo o seguinte erro:
A NoMethodError occurred in paginas#notificacao:
undefined method
content' for nil:NilClass vendor/bundle/ruby/1.9.1/gems/pag_seguro-0.4.1/lib/pag_seguro/transaction.rb:43:in
id'Observei que o método id da class transaction está capturando a tag "reference" conforme abaixo:
def id @data.css("reference").first.content end
Não seria a tag "id" do xml de retorno ?
Tenho uma biblioteca que usava para tratar as notificações eeu capturava a tag "id" do retorno. Mudei para a sua pois está mais completa.
Desde já agradeço;
Josué Teixeira