Irio / mymoip

MoIP transactions in a gem to call your own.
MIT License
31 stars 21 forks source link

NoMethodError (undefined method `[]' for nil:NilClass) #9

Closed vbrazo closed 7 years ago

vbrazo commented 12 years ago

A linha 75 é

payment_request.api_call(credit_card_payment, token: transparent_request.token)

o transparent_request.token está retornando a token normalmente e o credit_card_payment quando eu dou um render nele, ele retorna #.

2012-10-19T14:44:20+00:00 app[web.1]: Started GET "/payment/96" for 108.162.212.16 at 2012-10-19 14:44:20 +0000 2012-10-19T14:44:20+00:00 app[web.1]: 2012-10-19T14:44:20+00:00 app[web.1]: 2012-10-19T14:44:20+00:00 app[web.1]: Parameters: {"num_pedido"=>"96"} 2012-10-19T14:44:20+00:00 app[web.1]: Processing by BillingController#payment as HTML 2012-10-19T14:44:20+00:00 app[web.1]: Rendered billing/payment.html.erb within layouts/application (6.7ms) 2012-10-19T14:44:20+00:00 app[web.1]: Completed 200 OK in 21ms (Views: 15.4ms | ActiveRecord: 4.1ms) 2012-10-19T14:44:20+00:00 heroku[nginx]: 108.162.212.16 - - [19/Oct/2012:14:44:20 +0000] "GET /payment/96 HTTP/1.1" 200 4195 "http://www.gobooks.com.br/type/96" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4" www.gobooks.com.br 2012-10-19T14:44:20+00:00 heroku[router]: GET www.gobooks.com.br/payment/96 dyno=web.1 queue=0 wait=3ms service=35ms status=200 bytes=13942 2012-10-19T14:44:59+00:00 app[web.1]: 2012-10-19T14:44:59+00:00 app[web.1]: 2012-10-19T14:44:59+00:00 app[web.1]: Started POST "/success" for 108.162.212.16 at 2012-10-19 14:44:59 +0000 2012-10-19T14:45:00+00:00 app[web.1]: MyMoip::Request of #154 with "<InstrucaoUnica TipoValidacao=\"Transparente\">GoBooks - Compra efetuada por xxxxxx@gmail.com<Valor moeda=\"BRL\">42.90154VITOR NOGUEIRA BRAZ DE OLIVEIRA/Nome><Email>xxxxxx@gmail.com</Email154RUA LAURO MULLER76APT 1003COPACABANARIO DE JANEIRORJBRA22290-160(21)2543-4090" 2012-10-19T14:45:00+00:00 app[web.1]: MyMoip::Request of #154 to https://www.moip.com.br/ws/alpha/EnviarInstrucao/Unica had response {"EnviarInstrucaoUnicaResponse"=>{"Resposta"=>{"ID"=>"201210191145003980000024672080", "Status"=>"Sucesso", "Token"=>"B2V0A1N2E1S091K9X1M1H4T5T0B0M3E9J85090D0U0E0S2V4O6Z7O2N0Q8X0"}}} 2012-10-19T14:45:00+00:00 app[web.1]: MyMoip::Request of #154 with nil 2012-10-19T14:45:02+00:00 app[web.1]: 2012-10-19T14:45:02+00:00 app[web.1]: 2012-10-19T14:45:02+00:00 app[web.1]: Processing by BillingController#success as HTML 2012-10-19T14:45:02+00:00 app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"OAd8M51OqL47Lq1IdnFjmqarrjPrPTXb/PtMfM3ZIB0=", "txtName"=>"VITOR NOGUEIRA BRAZ DE OLIVEIRA", "txtTelephone"=>"(21)2543-4090", "txtCode"=>"123", "txtPhonePortador"=>"(21)2543-4090", "btnPagar"=>"Pagar", "num_pedido"=>"96", "valor"=>"4290"} 2012-10-19T14:45:02+00:00 app[web.1]: 2012-10-19T14:45:02+00:00 app[web.1]: NoMethodError (undefined method []' for nil:NilClass): 2012-10-19T14:45:02+00:00 app[web.1]: app/controllers/billing_controller.rb:75:insuccess' 2012-10-19T14:45:02+00:00 app[web.1]: Completed 500 Internal Server Error in 2172ms 2012-10-19T14:45:02+00:00 heroku[router]: POST www.gobooks.com.br/success dyno=web.1 queue=0 wait=0ms service=2182ms status=500 bytes=643 2012-10-19T14:45:06+00:00 heroku[nginx]: 108.162.212.16 - - [19/Oct/2012:14:45:02 +0000] "POST /success HTTP/1.1" 500 643 "http://www.gobooks.com.br/payment/96" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4" www.gobooks.com.br

Irio commented 12 years ago

Estranho. Pode postar o retorno de credit_card_payment.inspect, transparent_request.inspect e payment_request.inspect?

Te aconselho a dar uma lida no http://github.github.com/github-flavored-markdown/ e usar a sintaxe de bloco de código ao postar aqui no Github. Simplesmente colando o código às vezes alguns caracteres acabam sendo cortados na visualização.

vbrazo commented 12 years ago

, @installments=1>

{"Resposta"=>{"ID"=>"201210211554117080000024761224", "Status"=>"Sucesso",

"Token"=>"E2H0K1N2E1O0T2X1B195I524B1E1D7N0S82020U0F0E0Z2W4E736L1F2I2G4"}}}, @response=#, @headers={"date"=>["Sun, 21 Oct 2012 17:54:11 GMT"], "server"=>["Apache"], "content-length"=>["273"], "vary"=>["Accept-Encoding"], "connection"=>["close"], "content-type"=>["text/xml;charset=UTF-8"]}>>

#

2012/10/20 Irio Irineu Musskopf Junior notifications@github.com

Estranho. Pode postar o retorno de credit_card_payment.inspect, transparent_request.inspect e payment_request.inspect?

Te aconselho a dar uma lida no http://github.github.com/github-flavored-markdown/ e usar a sintaxe de bloco de código ao postar aqui no Github. Simplesmente colando o código às vezes alguns caracteres acabam sendo cortados na visualização.

— Reply to this email directly or view it on GitHubhttps://github.com/Irio/mymoip/issues/9#issuecomment-9625604.

Vitor Oliveira

klebershimabuku commented 12 years ago

Provavelmente estou com o mesmo problema.

Segue parte do log:

MyMoip::Request of #51 to https://desenvolvedor.moip.com.br/sandbox/ws/alpha/EnviarInstrucao/Unica had response {"EnviarInstrucaoUnicaResponse"=>{"Resposta"=>{"ID"=>"201210221033434350000001106241", "Status"=>"Sucesso", "Token"=>"C230V132J1G0F2G291G0N3S3Z4T3K4V3L5C0I0T0C0Z0Q0M1Y130Z6Y2L4D1"}}}
MyMoip::Request of #51 with nil
MyMoip::Request of #51 to https://desenvolvedor.moip.com.br/sandbox/rest/pagamento?callback=? had response {"StatusPagamento"=>"Falha", "Mensagem"=>"org.json.JSONException: JSONObject[\"dadosPagamento\"] is not a JSONObject."}
Irio commented 12 years ago

Testei aqui com o código mostrado no README e realmente obtive um MyMoip::Request of #51 with nil ao fazer uma chamada do PaymentRequest#api_call, mas não consegui reproduzir os errors de vocês (e olha que já vi muito erro do Moip). Imagino que vocês estejam setando algum atributo do PaymentRequest em um formato diferente do previsto, e pra conseguirmos descobrir o problema só postando o log completo do que tá acontecendo no MyMoip.

klebershimabuku commented 12 years ago

Realmente acabei fazendo confusão na hora de passar um argumento para o PaymentRequest. Porém aparentemente o resto está correto.

O problema do @vbrazo é em ambiente de produção e eu realmente não cheguei a testar em produção, apenas em development.

Irio commented 12 years ago

Vocês podem postar o que foi impresso de log usando a versão edge? Ficará mais fácil de debugar.

gem 'mymoip', git: 'git://github.com/Irio/mymoip', branch: 'master'

@vbrazo Tu tem token/key do Moip para fazer transações em ambiente de produção? Mesmo que não, te aconselho a fazer todos os teus testes em Sandbox para que não polua teu painel do Moip com esse tipo de transação (mesmo que não pagas). Isso se resolve removendo a linha que muda para production: MyMoip.environment = "production".

klebershimabuku commented 12 years ago

@Irio por enquanto apenas o @vbrazo terá condições de continuar com os testes. O moip foi cancelado no projeto em que eu trabalhava.

Irio commented 12 years ago

@klebershimabuku É uma pena, mas ok. Só espero que não tenha ido para nada pior do que o Moip. Boa sorte.

rafaeliga commented 10 years ago

@Irio alguma novidade nesse problema? só acontece comigo em production, já tentei usar o edge, mas sem sucesso. O que eu descobri para ajudar: o erro do undefined acontece pq o mymoip espera um json e o resultado q chega é o "html": "HTTP Status 500 - java.lang.NullPointerException". Qualquer ajuda que precisar para debugar, estou a disposição.

rafaeliga commented 10 years ago

ou quem sabe o @vbrazo tenha alguma novidade tambem hehehe