2012-05-20 48 views
1

我正在嘗試將Paypal IPN通知集成到部署到Heroku(bamboo-mri-1.9.2)的Rails 3.0.10應用程序中。這不是我第一次將IPN集成到Rails應用程序上,但是我遇到了一個讓我發瘋的問題,而且我現在無能爲力。Paypal與Rails 3.0.10和Heroku的IPN 503錯誤(已解決)

我在配置/ 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,m就無法向此URL發送IPN通知。奇怪的是,我可以使用CURL或任何瀏覽器成功發送任何POST或GET請求到這個URL。

我甚至已經將paypal_ipn方法的內容替換爲raise "It exploded!"而沒有任何異常引發到日誌,並且跳過了我之前看過的所有相同結果的過濾器。

所有我可以看到在Heroku上的日誌是這樣的,但它並沒有幫助我很多......

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 

¿任何人都知道,如果貝寶IPN的通知消息有什麼特別的是從一個簡單的不同CURL POST請求可能導致這個nighmare?

在此先感謝,任何想法,歡迎..

編輯 嗯,我發現了問題的根源,但我仍在調查一個解決方案。

我正在使用rack-iframe(http://rubygems.org/gems/rack-iframe)讓我的用戶在其網頁上的iframe內登錄和維護會話。

似乎有什麼在貝寶IPN消息,使機架iframe崩潰。我會進一步調查並分享我的發現。

這是一個非常奇怪的錯誤...

EDIT 2 我發送pull請求一點點修復此問題機架的iframe的創造者,所以我覺得這個問題就解決了: - ) https://github.com/merchii/rack-iframe/pull/1

回答

1

「undefined method`include?'對於零:NilClass」奇怪的是,我會擡高日誌記錄級別爲DEBUG,看看別人是怎麼回事:

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

+0

的洛水平已經處於調試,但沒有別的顯示在日誌中,這錯誤很奇怪,就像請求甚至沒有到達Rails應用程序,因爲任何其他異常都會在日誌中寫入很多東西,並觸發exception_notification gem,它會向我發送電子郵件報告。 –

+0

感謝您的回答,它讓我重新思考,最終我可以找出問題所在:-) –