-
Notifications
You must be signed in to change notification settings - Fork 31
/
generate-unified-checkout
75 lines (59 loc) · 2.3 KB
/
generate-unified-checkout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from CyberSource import *
from pathlib import Path
import os
import json
from importlib.machinery import SourceFileLoader
config_file = os.path.join(os.getcwd(), "data", "Configuration.py")
configuration = SourceFileLoader("module.name", config_file).load_module()
# To delete None values in Input Request Json body
def del_none(d):
for key, value in list(d.items()):
if value is None:
del d[key]
elif isinstance(value, dict):
del_none(value)
return d
def generate_unified_checkout_capture_context():
captureMandate = Upv1capturecontextsCaptureMandate(
billing_type="FULL",
request_email=True,
request_phone=True,
request_shipping=True,
ship_to_countries=["US","GB"],
show_accepted_network_icons=True
)
amountDetails = Upv1capturecontextsOrderInformationAmountDetails(
total_amount="21.00",
currency="USD"
)
orderInformation = Upv1capturecontextsOrderInformation(
amount_details=amountDetails.__dict__
)
requestObj = GenerateUnifiedCheckoutCaptureContextRequest(
target_origins = ["https://the-up-demo.appspot.com"],
client_version = "0.15",
allowed_card_networks = ["VISA","MASTERCARD","AMEX"],
allowed_payment_types=["PANENTRY","SRC"],
country="US",
locale="en_US",
capture_mandate=captureMandate.__dict__,
order_information=orderInformation.__dict__
)
requestObj = del_none(requestObj.__dict__)
requestObj = json.dumps(requestObj)
try:
config_obj = configuration.Configuration()
client_config = config_obj.get_configuration()
api_instance = UnifiedCheckoutCaptureContextApi(client_config)
return_data, status, body = api_instance.generate_unified_checkout_capture_context(requestObj)
print("\nAPI RESPONSE CODE : ", status)
print("\nAPI RESPONSE BODY : ", body)
write_log_audit(status)
return return_data
except Exception as e:
write_log_audit(e.status if hasattr(e, 'status') else 999)
print("\nException when calling TaxesApi->calculate_tax: %s\n" % e)
def write_log_audit(status):
print(f"[Sample Code Testing] [{Path(__file__).stem}] {status}")
if __name__ == "__main__":
generate_unified_checkout_capture_context()