我一直试图让这个代码片段起作用:http://drumcoder.co.uk/blog/2011/aug/19/django-class-based-views/
我在我的开发机器上运行Django,端口从路由器转发到我的机器。
要测试开发服务器是否可以从我的开发网络外部访问,我来自远程服务器wget http://www.myserver.com:8000/IPN
。果然我得到了一个不允许在远程服务器端报告的405 METHOD,这是有意义的,因为脚本只处理帖子。在开发服务器日志中,我看到:
[16/Nov/2011 02:17:09] "GET /IPN/ HTTP/1.0" 405 0
..据我所知,URL可从外部访问。
但是,如果我在paypal沙箱中使用相同的URL,我的开发服务器上没有任何记录,而且来自paypal的消息:
IPN传递失败。无法连接到指定的URL。请验证该网址,然后重试
我做错了什么?有没有办法更详细地测试这个?
[编辑]
好的,稍近一点;看起来我的开发服务器现在听到了来自paypal的响应,但随后又丢失了代码500内部服务器错误:
收到的数据:{u'last_name':u'Smith',u'txn_id':u'491116223',u'receiver_email':u'seller@paypalsandbox.com',u'payment_status':u'Completed' ,u'tax':u'2.02',u'payer_status':u'unverified',u'residence_country':u'US',u'invoice':u'abc1234',u'address_state':u'CA' ,u'item_name1':你的东西',u'txn_type':u'cart',u'item_number1':u'AK-1234',u'quantity1':u'1',u'payment_date':你' 2011年11月16日14:03:49 PST',u'first_name':u'John',u'mc_shipping':u'3.02',u'address_street':u'123,任何街道',u'charset': u'windows-1252',u'custom':u'xyz123',u'notify_version':u'2.4',u'address_name':u'John Smith',u'address_zip':u'95131',u' test_ipn':u'1',u'receiver_id':u'TESTSELLERID1',u'payer_id':u'TESTBUYERID01',u'mc_handling1':u'1.67',u'verify_sign':u'AwL9R.WVx6Ikf1MJlP6m-Q1rVsIZASse3ZrX9 .S5krSO9JhgGAQfeDuj',u'mc_handling':u'2.06',u'mc_gross_1':u'9.34',u'address_country_code':u'US',u'address_city':u'San Jose',u'address_status': u'confirmed',u'address_country':你'美国',u'mc_fee':u'0.44',u'mc_currency':u'USD',u'payer_email':u'buyer@paypalsandbox.com',u'payment_type':u'instant',u' mc_shipping1':u'1.02'}
[16 / Nov / 2011 22:04:01]“POST / IPN / HTTP / 1.0”500 343