-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathsimple-authorizationinternet.py
110 lines (91 loc) · 3.97 KB
/
simple-authorizationinternet.py
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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 simple_authorizationinternet(flag):
clientReferenceInformationCode = "TC50171_3"
clientReferenceInformation = Ptsv2paymentsClientReferenceInformation(
code = clientReferenceInformationCode
)
processingInformationCapture = False
if flag:
processingInformationCapture = True
processingInformation = Ptsv2paymentsProcessingInformation(
capture = processingInformationCapture
)
paymentInformationCardNumber = "4111111111111111"
paymentInformationCardExpirationMonth = "12"
paymentInformationCardExpirationYear = "2031"
paymentInformationCard = Ptsv2paymentsPaymentInformationCard(
number = paymentInformationCardNumber,
expiration_month = paymentInformationCardExpirationMonth,
expiration_year = paymentInformationCardExpirationYear
)
paymentInformation = Ptsv2paymentsPaymentInformation(
card = paymentInformationCard.__dict__
)
orderInformationAmountDetailsTotalAmount = "102.21"
orderInformationAmountDetailsCurrency = "USD"
orderInformationAmountDetails = Ptsv2paymentsOrderInformationAmountDetails(
total_amount = orderInformationAmountDetailsTotalAmount,
currency = orderInformationAmountDetailsCurrency
)
orderInformationBillToFirstName = "John"
orderInformationBillToLastName = "Doe"
orderInformationBillToAddress1 = "1 Market St"
orderInformationBillToLocality = "san francisco"
orderInformationBillToAdministrativeArea = "CA"
orderInformationBillToPostalCode = "94105"
orderInformationBillToCountry = "US"
orderInformationBillToEmail = "test@cybs.com"
orderInformationBillToPhoneNumber = "4158880000"
orderInformationBillTo = Ptsv2paymentsOrderInformationBillTo(
first_name = orderInformationBillToFirstName,
last_name = orderInformationBillToLastName,
address1 = orderInformationBillToAddress1,
locality = orderInformationBillToLocality,
administrative_area = orderInformationBillToAdministrativeArea,
postal_code = orderInformationBillToPostalCode,
country = orderInformationBillToCountry,
email = orderInformationBillToEmail,
phone_number = orderInformationBillToPhoneNumber
)
orderInformation = Ptsv2paymentsOrderInformation(
amount_details = orderInformationAmountDetails.__dict__,
bill_to = orderInformationBillTo.__dict__
)
requestObj = CreatePaymentRequest(
client_reference_information = clientReferenceInformation.__dict__,
processing_information = processingInformation.__dict__,
payment_information = paymentInformation.__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 = PaymentsApi(client_config)
return_data, status, body = api_instance.create_payment(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 PaymentsApi->create_payment: %s\n" % e)
def write_log_audit(status):
print(f"[Sample Code Testing] [{Path(__file__).stem}] {status}")
if __name__ == "__main__":
simple_authorizationinternet(False)