I mentioned the other day that the company I work for makes a modular interface for payment processors. We are also integrating paypal, a few other sites that operate like it. I have python code that one of our developers wrote to integrate out solution into a python site. I am still fumbling my way though phython and ZOPE, but this can be code that will be useful to people wishing to have transactions through their sites. Would anyone be interested in helping me develop a zope module from the code. Basically I would like to see this available to all platforms. if you decide to change payment processors you simply drop in the new files get a new key and you are now up and running with a new processor. no coding or fiddling. I posted the python snippet if anyone is interested in starting ahead of me. Rick This is example code for implementing an oPAYc transaction using Python. (Python v1.5.2 on Linux-2.2-i386-glibc2.1). The code snippet should work on any version of Unix. The modules "DateTime" and "ODBC" must be installed. The ODBC.unixODBC module does not come within the ODBC package, and the existing ODBC.iODBC one must be modified to link to unixODBC's libraries. Also the include paths must be changed to those of unixODBC's include directory. Finally, "sql.h" and "sqlext.h" must be #included. #!/usr/bin/python import ODBC import ODBC.unixODBC import DateTime import random dsn = 'opayc-o19' user = 'opayc-user' passwd = 'opayc-password' account = '4111 1111 1111 1111' expiry = '0101' amount = '0.50' address1 = '612 Curry Avenue' postal = 'L2T2L7' country = 'Canada' city = 'St. Catharine' state = 'on' type = 'sale' trans = repr(random.randrange(9999)) firstname = 'Marsh' lastname = 'Melon' clientip = '205.210.228.203' email = 'nobody@cybersource.com' currency = 'usd' phone = '555-555-5555' query = "SELECT * FROM transactions WHERE account = '%s' AND expiry = '%s' AND amount = '%s' AND add1 = '%s' AND postal = '%s' AND country = '%s' AND city = '%s' AND state = '%s' AND type = '%s' AND trans = '%s' AND fname = '%s' AND lname = '%s' AND clientIP = '%s' AND email = '%s' AND Currency = '%s' AND phone = '%s'" % (account, amount, address1, postal, country, city, state, type, trans, firstname, lastname, clientip, email, currency, phone) db = ODBC.unixODBC.Connect(dsn, user, passwd) cur = db.cursor() cur.execute(query) result = cur.fetchall() if result: for data in result: print f cur.close() db.close() ########################################################## # Rick St Jean, # rstjean@internet.look.ca # President of Design Shark, # http://www.designshark.com/, http://www.phpmailer.com/ # Quick Contact: http://www.designshark.com/messaging.ihtml # Tel: 905-684-2952 ##########################################################