我正在嘗試將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
的洛水平已經處於調試,但沒有別的顯示在日誌中,這錯誤很奇怪,就像請求甚至沒有到達Rails應用程序,因爲任何其他異常都會在日誌中寫入很多東西,並觸發exception_notification gem,它會向我發送電子郵件報告。 –
感謝您的回答,它讓我重新思考,最終我可以找出問題所在:-) –