django-paypal IPN 不工作
我在我的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的操作,...
有时候事情简单到你根本没注意到。