diff --git a/data/Configuration.py b/data/Configuration.py index b134a13..4e82ae6 100644 --- a/data/Configuration.py +++ b/data/Configuration.py @@ -150,3 +150,14 @@ def get_indermediate_configuration(self): #configuration_dictionary["proxy_address"] = self.proxy_address #configuration_dictionary["proxy_port"] = self.proxy_port return configuration_dictionary + + def get_configuration_for_batchUploadSample(self): + configuration_dictionary = ({}) + configuration_dictionary["authentication_type"] = "JWT" + configuration_dictionary["merchantid"] = "qaebc2" + configuration_dictionary["run_environment"] = self.run_environment + configuration_dictionary["key_alias"] = "qaebc2" + configuration_dictionary["key_password"] = "?Test1234" + configuration_dictionary["key_file_name"] = "qaebc2" + configuration_dictionary["keys_directory"] = self.keys_directory + return configuration_dictionary \ No newline at end of file diff --git a/resources/batchapiTest.csv b/resources/batchapiTest.csv new file mode 100644 index 0000000..0b8df03 --- /dev/null +++ b/resources/batchapiTest.csv @@ -0,0 +1,5 @@ +merchantID=qaebc2,batchID=rgdltnd0,recordCount=2,statusEmail=ynachire@visa.com,targetAPIVersion=1.86,creationDate=2025-03-05,reference= +merchantID,merchantReferenceCode,merchantDefinedData_field1,ccAuthService_run,billTo_firstName,billTo_lastName,billTo_email,billTo_street1,billTo_city,billTo_state,billTo_country,billTo_postalCode,card_accountNumber,card_expirationMonth,card_expirationYear,card_cardType,purchaseTotals_currency,purchaseTotals_grandTotalAmount,item_#_productCode +qaebc2,1,4837,true,Jay,Smith,ynachire@visa.com,8 Mission Street,San Francisco,CA,US,94101,4111111111111111,12,2036,001,GBP,8.00,1 +qaebc2,2,7209,true,Jay,Smith,ynachire@visa.com,8 Mission Street,San Francisco,CA,US,94101,4111111111111111,12,2036,001,GBP,8.00,1 +END,SUM=16.00 \ No newline at end of file diff --git a/resources/qaebc2.p12 b/resources/qaebc2.p12 new file mode 100644 index 0000000..a66a4e2 Binary files /dev/null and b/resources/qaebc2.p12 differ diff --git a/samples/TransactionBatches/upload-transaction-batch.py b/samples/TransactionBatches/upload-transaction-batch.py new file mode 100644 index 0000000..95db6f5 --- /dev/null +++ b/samples/TransactionBatches/upload-transaction-batch.py @@ -0,0 +1,35 @@ +from CyberSource import * # Import all classes +from pathlib import Path +import os +from importlib.machinery import SourceFileLoader + +config_file = os.path.join(os.getcwd(), "data", "Configuration.py") +configuration = SourceFileLoader("module.name", config_file).load_module() + + +def upload_transaction_batch(): + # Specify the file path to be uploaded + file_path = os.path.join(os.getcwd(), "resources", "batchapiTest.csv") + + try: + # Open the file in read mode and pass it to the API + with open(file_path, "r") as file: + config_obj = configuration.Configuration() + client_config = config_obj.get_configuration_for_batchUploadSample() + api_instance = TransactionBatchesApi(client_config) + return_data, status, body = api_instance.upload_transaction_batch(file) + + 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 TransactionBatchesApi->upload_transaction_batch: %s\n" % e) + +def write_log_audit(status): + print(f"[Sample Code Testing] [{Path(__file__).stem}] {status}") + +if __name__ == "__main__": + upload_transaction_batch()