2010-11-09 148 views
1

我在django應用程序中使用django-paypal作爲付款解決方案。我試圖實現一個IPN處理程序。django-paypal IPN不起作用

Traceback (most recent call last): 
    File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 281, in run 
    self.finish_response() 
    File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 321, in finish_response 
    self.write(data) 
    File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 417, in write 
    self._write(data) 
    File "/usr/lib/python2.6/socket.py", line 300, in write 
    self.flush() 
    File "/usr/lib/python2.6/socket.py", line 286, in flush 
    self._sock.sendall(buffer) 
error: [Errno 104] Connection reset by peer 

我的支付應用urls.py看起來是這樣的:

urlpatterns = patterns('mysite.payment.views', 
    (r'^thank_you/', 'thank_you'), 
    (r'^canceled/', 'canceled'), 
    (r'^paypal-ipn/', include('paypal.standard.ipn.urls')) 
    ) 

對我來說,

時收到IPN消息,在我的IPN處理URL Django的服務器崩潰,會發生什麼錯誤信息是相當無用的。如果有人能幫助我,那會很棒。

回答

4

我承認我是白癡:)

你不需要SSL。但是,你需要的是在你能夠使用它之前做一個syncdb,...

上帝有時很容易,你只是沒有看到它。

+0

>。 2010-11-11 22:06:18

0

您可以精確監控PayPal使用tcpdump或wireshark發送服務器的數據包嗎?看起來他們可能會盡早終止連接,但如果沒有更長的追蹤和/或數據包轉儲,很難分辨出來。

編輯: 我忘記了有關https的消息。 Paypal可能需要HTTPS來處理這些回調。開發服務器不會支持,所以不幸的是,你可能需要充實你的服務器配置,然後才能測試該功能。

+0

我可以使用即時付款通知(IPN)模擬器或具有「真實」請求的沙箱,問題是一樣的。但是我現在要用tcpdump抓包。 – Kai 2010-11-09 13:21:45

+0

出於某種原因,我只收到https消息。所以沒有那麼多東西要看。但是這可能是問題,因爲我在django開發服務器上運行,我沒有任何ssl支持。但我不知道要在哪裏更改此PayPal行爲。 – Kai 2010-11-09 13:37:18

+0

這聽起來像是困難。 Https消息在'tcpdump'中不會很有趣,我相信你必須使用https ... paypal不會以未加密的格式發送這些消息。 – 2010-11-09 13:59:07