2012-05-20 3 views
1

Paypal IPN 503 오류 Heroku (bamboo-mri-1.9.2)에 배포 된 Rails 3.0.10 응용 프로그램에서 Paypal IPN 알림을 통합하려고합니다. Rails 애플리케이션에 IPN을 통합 한 것은 이번이 처음이 아니지만, 나는이 순간 미쳐 버렸습니다.Rails 3.0.10 및 Heroku (해결 된)

제가 설정/routes.rb에서 IPN위한 특별한 경로를 정의

:

match "/paypal_ipn" => "registrations#paypal_ipn", :as => :paypal_ipn

내가 RegistrationController에서 해당 동작을은 :

class RegistrationsController < ApplicationController 
    include ActiveMerchant::Billing::Integrations 
    ... 
    def paypal_ipn 
    // Notification management stuff... 
    end 
end 

문제는 내가 '이다 서버가 항상 503 오류로 IPN 시뮬레이터에 응답하기 때문에 응용 프로그램이 Heroku에 배포되면이 URL에 IPN 알림을 보낼 수 없습니다. 궁금한 점은 CURL이나 다른 브라우저를 사용하여 POST 또는 GET 요청을이 URL에 성공적으로 보낼 수 있다는 것입니다.

paypal_ipn 메서드의 내용을 raise "It exploded!"으로 바꾸어도 로그에 예외를 발생시키지 않고 동일한 결과를 보았던 모든 이전 필터를 건너 뜁니다. 페이팔 IPN 알림 메시지는 간단한 다른 특히 무엇이든이있는 경우

2012-05-20T17:32:47+00:00 heroku[router]: Error H13 (Connection closed without response) - 
> POST reddeportiva-sta.heroku.com/paypal_ipn dyno=web.1 queue= wait= service= status=503 
bytes=2012-05-20T17:32:47+00:00 app[web.1]: !! Unexpected error while processing request: 
undefined method `include?' for nil:NilClass 
2012-05-20T17:32:47+00:00 heroku[nginx]: 173.0.82.126 - - [20/May/2012:17:32:47 +0000] 
"POST /paypal_ipn HTTP/1.0" 503 607 "-" "-" reddeportiva-sta.heroku.com 

¿ 누구가 알고 ... Heroku가 로그에

모든 내가 볼 수는 이것이다, 그러나 그것은 내게 많은 도움이되지 않습니다 이 nighmare를 일으킬 수있는 CURL POST 요청?

덕분에 사전에 어떤 아이디어가

편집 글쎄, 내가 문제의 원인을 발견했습니다 .. 환영합니다,하지만, 난 여전히 해결책을 조사하고 있습니다.

사용자가 웹 페이지의 iframe에 로그인하고 세션을 유지 관리 할 수 ​​있도록 rack-iframe (http://rubygems.org/gems/rack-iframe)을 사용하고 있습니다.

랙 - iframe 크래시를 만드는 Paypal IPN 메시지에 뭔가가있는 것 같습니다. 더 자세히 조사하고 내 발견을 공유 할 것입니다. 정말 이상한 버그했다

...

편집 나는이 문제에 대한 약간의 수정으로 끌어 오기 요청을 보낸 2 창조자 - iframe이있는 선반, 그래서 나는이 문제가 해결된다 생각 : -) https://github.com/merchii/rack-iframe/pull/1

답변

1

"정의되지 않은 메소드"에는? 전무을 위해 : NilClass는 "호기심, 난이 벌어지고 그 밖의 무엇을 DEBUG 로깅 수준을 잭 볼 것입니다 :

https://devcenter.heroku.com/articles/logging#logging_in_rails

+0

이의 loggin에 레벨이 DEBUG 이미 있지만, 다른 아무것도 로그에 표시되지 않습니다 오류는 매우 이상합니다. 요청이 레일즈 애플리케이션에 도달하지 못하는 것 같습니다. 다른 예외는 로그에 많은 내용을 기록하고 전자 메일 보고서를 보내는 exception_notification gem을 트리거합니다. –

+0

답장을 보내 주셔서 다시 생각하게하고 마침내 문제를 찾을 수있었습니다 :-) –