[Zope] paypal IPN. Debug messages missing. Script goes zombie
Ed Colmar
ed at greengraphics.net
Wed Jul 6 13:58:02 EDT 2005
Hi all!
I've been hacking together a few seperate paypal IPN connections, some
code from basion, and some from random web scrapings... Anyway...
Things are working for the most part, except that this method for some
reason dies when using urllib.urlopen(), and what is really wierd is
that I get no error message, it just hangs.
I am running an older version of zope, but I have never seen this
behaviour before. The debug (-D) flag is set in start.
here is the code I am using... As far as I can tell my syntax is
proper... ???
def
paypal_notify(self,address_street='',address_zip='',first_name='',last_name='',payer_business_name='',payer_email='',
payer_id='',payer_status='',residence_country='',quantity='',receiver_email='',receiver_id='',custom='',invoice='',
memo='',auth_id='',auth_exp='',auth_amount='',auth_status='',
remaining_settle='',
mc_gross_x='',mc_handling_x='',mc_shipping_x='',
num_cart_items='',parent_txn_id='',payment_date='',payment_status='',payment_type='',
pending_reason='',reason_code='',txn_id='',txn_type='',exchange_rate='',mc_currency='',mc_fee='',
mc_gross='',
mc_handling='',payment_gross='',settle_amount='',settle_currency='',
auction_buyer_id='',auction_closing_date='',auction_multi_item='',for_auction='',
option_name1='',option_name2='',option_selection1='',option_selection2='',tax='',
subscr_date='',subscr_effective='',period1='',period2='',period3='',amount1='',
amount2='',amount3='',mc_amount1='',mc_amount2='',mc_amount3='',recurring='',
reattempt='',retry_at='',
recur_times='',username='',password='',subscr_id='',test_ipn=0,REQUEST=None):
""" take a IPN from paypal, and update the database """
print "Initiating paypal IPN"
# they want us to send back their same shite (and we've just nicely
# deblocked it from the REQUEST...)
print "DEBUG = STARTING"
requestform = REQUEST.form
print requestform['quantity'] # debug test
requestform['cmd'] = '_notify-validate'
print "DEBUG = INSERTED NEW VALUE"
print requestform
print "sending request back to paypal"
requestparams = urllib.urlencode(requestform)
print "DEBUG = Encoded Request"
print requestparams
data =
urllib.urlopen('https://www.sandbox.paypal.com/cgi-bin/webscr',
requestform)
print "DEBUG = urlretrieved"
print data.read()
print "DEBUG = DATA READ"
----------------------------------------------
I see all my debug print commands until "encoded Request" and
requestparams, so it is getting lost on the urlopen call.
Thanks for any help or tips. I'll post the final IPN method when I'm done.
Cheers!
-ed
More information about the Zope
mailing list