def makePayment(name,amount,charityName): # Set Keys simplify.public_key = "sbpb_ZjU3YTNmMjItNDU3ZC00MWI1LTk4YTktZjkzZmQ2Y2ZiNjIw" simplify.private_key = "VJcLMAVGrrhn7QbJPkUMONEB7rOz2+9OUqf4q3CL/xl5YFFQL0ODSXAOkNtXTToq" # Read in person's info p = PersonInfo(name) # Check for Fraud/Stolen xml = '''<?xml version='1.0' encoding='utf-8'?>''' body = '''<AccountInquiry><AccountNumber>'''+p.cardNum+'''</AccountNumber></AccountInquiry>''' headers = {'content-type': 'application/xml', 'content-length': '{length}'} path = '/fraud/loststolen/v1/account-inquiry?Format=XML' results = requests.put('http://dmartin.org:8026/fraud/loststolen/v1/account-inquiry?Format=XML', data=body,headers=headers) print results.text tree = et.fromstring(results.text) for elem in tree.iter(): if elem.tag == "Listed": if elem.text == "true": print "Aborting transaction - Reported Card!" return print "Passed check" # May be due to server non-recognition # Create payment payment = simplify.Payment.create({ "card" : { "number": p.cardNum, "expMonth": p.expMonth, "expYear": p.expYear, "cvc": p.cvc }, "amount" : amount, "description" : "Donation to " + charityName, "currency" : "USD" }) # Print approval status print payment if payment.paymentStatus == 'APPROVED': print "Payment approved" # Add to the transaction history p.addTransaction(amount,charityName,(time.strftime("%m/%d/%Y")))
#!/Library/Frameworks/Python.framework/Versions/2.7/bin/python # -*- coding: UTF-8 -*- import os from Person import PersonInfo from Person import * fname = "*****@*****.**" p = PersonInfo(fname) html = ''' <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Donation Manager</title> <!-- Bootstrap --> <link rel="stylesheet" href="css/bootstrap.css" type="text/css"> <link rel="stylesheet" href="css/masterStyles.css" type="text/css"> <script type="text/javascript" src="https://www.simplify.com/commerce/v1/simplify.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head>
##################### # CGI Generate Page # ##################### ### Authentication Failed ### if not isValidUP(val1,val2): print "Content-type: text/html" print print "<title>Test CGI</title>" print """ Invalid U+P: %s %s </body></html>""" % (val1, val2) ### Authentication Worked ### else: p = PersonInfo(val1) print ''' <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Profile</title> <!-- Bootstrap --> <link rel="stylesheet" href="css/bootstrap.css" type="text/css"> <link rel="stylesheet" href="css/masterStyles.css" type="text/css"> <script src="js/masterscript.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->