Skip to content

Commit dca3056

Browse files
author
Craig Christenson
committed
Add sandbox support to charge methods.
Add ability to override default button text on form builders.
1 parent 784e6cb commit dca3056

2 files changed

Lines changed: 27 additions & 16 deletions

File tree

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from distutils.core import setup
44
setup(
55
name="twocheckout",
6-
version='0.2.1',
6+
version='0.3.0',
77
description="2Checkout Python Library",
88
author="Craig Christenson",
99
author_email="christensoncraig@gmail.com",

twocheckout/charge.py

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,51 @@
44

55

66
class Charge(Twocheckout):
7+
8+
checkout_url = "https://www.2checkout.com/checkout/purchase"
9+
710
def __init__(self, dict_):
811
super(self.__class__, self).__init__(dict_)
912

1013
@classmethod
11-
def form(cls, params=None):
14+
def mode(cls, mode):
15+
if mode == 'sandbox':
16+
Charge.checkout_url = 'https://sandbox.2checkout.com/checkout/purchase'
17+
else:
18+
Charge.checkout_url = 'https://www.2checkout.com/checkout/purchase'
19+
20+
@classmethod
21+
def form(cls, params=None, text='Proceed to Checkout'):
1222
if params is None:
1323
params = dict()
14-
form = "<form id=\"2checkout\" action=\"https://www.2checkout.com/checkout/purchase\" method=\"post\">\n"
24+
form = "<form id=\"2checkout\" action=\"" + Charge.checkout_url + "\" method=\"post\">"
1525
for param in params:
16-
form = form + "<input type=\"hidden\" name=\"" + param + "\" value=\"" + str(params[param]) + "\" />\n"
17-
return form + "<input type=\"submit\" value=\"Proceed to Checkout\" />\n</form>\n"
26+
form = form + "<input type=\"hidden\" name=\"" + param + "\" value=\"" + str(params[param]) + "\" />"
27+
return form + "<input type=\"submit\" value=\"" + text + "\" /></form>"
1828

1929
@classmethod
20-
def submit(cls, params=None):
30+
def submit(cls, params=None, text='Proceed to Checkout'):
2131
if params is None:
2232
params = dict()
23-
form = "<form id=\"2checkout\" action=\"https://www.2checkout.com/checkout/purchase\" method=\"post\">\n"
33+
form = "<form id=\"2checkout\" action=\"" + Charge.checkout_url + "\" method=\"post\">"
2434
for param in params:
25-
form = form + "<input type=\"hidden\" name=\"" + param + "\" value=\"" + str(params[param]) + "\" />\n"
26-
return form + "<input type=\"submit\" value=\"Proceed to Checkout\" />\n</form>\n" + \
27-
"<script type=\"text/javascript\">document.getElementById('2checkout').submit();</script>"
35+
form = form + "<input type=\"hidden\" name=\"" + param + "\" value=\"" + str(params[param]) + "\" />"
36+
return form + "<input type=\"submit\" value=\"" + text + "\" /></form>" + \
37+
"<script type=\"text/javascript\">document.getElementById(\"2checkout\").submit();</script>"
2838

2939
@classmethod
30-
def direct(cls, params=None):
40+
def direct(cls, params=None, text='Proceed to Checkout'):
3141
if params is None:
3242
params = dict()
33-
form = "<form id=\"2checkout\" action=\"https://www.2checkout.com/checkout/purchase\" method=\"post\">\n"
43+
form = "<form id=\"2checkout\" action=\"" + Charge.checkout_url + "\" method=\"post\">"
3444
for param in params:
35-
form = form + "<input type=\"hidden\" name=\"" + param + "\" value=\"" + str(params[param]) + "\" />\n"
36-
return form + "<input type=\"submit\" value=\"Proceed to Checkout\" />\n</form>\n" + \
37-
"<script src=\"https://www.2checkout.com/static/checkout/javascript/direct.min.js\"></script>"
45+
form = form + "<input type=\"hidden\" name=\"" + param + "\" value=\"" + str(params[param]) + "\" />"
46+
return form + "<input type=\"submit\" value=\"" + text + "\" /></form>" + \
47+
"<script src=\"https://www.2checkout.com/static/checkout/javascript/direct.min.js\"></script>"
3848

3949
@classmethod
40-
def link(cls, params=None, url="https://www.2checkout.com/checkout/purchase?"):
50+
def link(cls, params=None):
51+
url = Charge.checkout_url + '?'
4152
if params is None:
4253
params = dict()
4354
param = urllib.urlencode(params)

0 commit comments

Comments
 (0)