2

I'm trying to debug my DJango Paypal IPN integration but I'm struggling. The Django dev server reports a 500 error to the console (but no other details) and the IPN test tool reports a 500 error but no other details.

I've tried disabling the DEBUG mode to try and get it to send me emails but despite setting up the EMAIL_HOST to something suitable, I'm not seeing any emails. I tried and verifying that the email system is working with a call to send_mail ..but that succeeds and I still see no emails regarding internal server errors.

What could I be missing?

edit

I'm running the dev server from PyCharm and the console output looks like this:

runnerw.exe C:\Python26\python.exe manage.py runserver 192.168.1.4:80
Validating models...

0 errors found
Django version 1.4 pre-alpha, using settings 'settings'
Development server is running at http://192.168.1.4:80/
Quit the server with CTRL-BREAK.
Verifying...
...response: VERIFIED
IpnEndPoint.on_process
Valid: {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'something', u'txn_type': u'cart', u'item_number1': u'AK-1234', u'quantity1': u'1', u'payment_date': u'14:03:49 Nov 16, 2011 PST', u'first_name': u'John', u'mc_shipping': u'3.02', u'address_street': u'123, any street', 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'A8SIYWSxkrwNPfuNewSuxsIAatvMAi2mxYjlYvaiWh3Z4BuIQojK3KBO', 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'United States', 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'}
Logging Transaction..
[16/Nov/2011 22:20:49] "POST /IPN/ HTTP/1.0" 500 104946
Community
  • 1
  • 1
Jon Cage
  • 36,366
  • 38
  • 137
  • 215

3 Answers3

2

Another thing to try is to launch a simple SMTP server on your machine.

python -m smtpd -n -c DebuggingServer localhost:1025

Which will output on your console all emails headers and body. Make sure localhost and the port 1025 correpond to what you have in your settings.py, respectively in EMAIL_HOST and EMAIL_PORT.

Source: Djangodocs Testing email sending

Kevin
  • 179
  • 3
  • 9
1

given that you are running a pre-alpha version of django, I would recomment asking this question on the django user list https://groups.google.com/group/django-users

Dmitry B.
  • 9,107
  • 3
  • 43
  • 64
  • Well spotted; I thought I was using a stable build! – Jon Cage Nov 16 '11 at 22:39
  • Doesn't answer my question here, but you nailed the other one I had open. Please post this as the answer to that question and I'll accept it as the final answer.. ...because after regressing to 1.3.1 stable it works! – Jon Cage Nov 17 '11 at 00:16
  • The one I linked to in the question: http://stackoverflow.com/questions/8145907/what-might-cause-the-django-ipn-tool-to-fail-when-posting-to-a-django-based-rece – Jon Cage Nov 17 '11 at 11:18
0

have a look at django-sentry

it logs 500 errors (also supports regular logging), making the dynamic "orange 500 pages" browsable after the fact. this is especially useful when you never get the original error page, e.g. when using ajax or remote apis like your case

second
  • 28,029
  • 7
  • 75
  • 76