django-paypal IPN 不工作

1 投票
2 回答
1389 浏览
提问于 2025-04-16 06:47

我在我的Django应用中使用django-paypal作为支付解决方案。现在我想实现一个IPN处理器。

当我在我的IPN处理网址收到一个IPN消息时,Django服务器就崩溃了:

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'))
    )

对我来说,这个错误信息没什么用。希望有人能帮帮我。

2 个回答

0

你能用 tcpdump 或者 Wireshark 精确监控到 PayPal 发送到你服务器的数据包吗?看起来他们可能会提前终止连接,但没有更长的追踪记录或者数据包的详细信息,很难判断具体情况。

编辑:我之前忘记提到 HTTPS 消息了。PayPal 可能要求这些回调使用 HTTPS。你的开发服务器不支持这个,所以很遗憾,你可能需要先完善你的服务器配置,才能测试这个功能。

5

我承认我有点傻 :)

其实你不需要用ssl。不过在使用之前,你需要先做一个叫syncdb的操作,...

有时候事情简单到你根本没注意到。

撰写回答