From 0900530354e4ae5fc9666c7571fc4deed7e3a2b4 Mon Sep 17 00:00:00 2001 From: gaubansa Date: Sat, 3 May 2025 15:49:18 +0530 Subject: [PATCH] adding sample for batch api upload --- data/Configuration.py | 11 ++++++ resources/batchapiTest.csv | 5 +++ resources/qaebc2.p12 | Bin 0 -> 4929 bytes .../upload-transaction-batch.py | 35 ++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 resources/batchapiTest.csv create mode 100644 resources/qaebc2.p12 create mode 100644 samples/TransactionBatches/upload-transaction-batch.py 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 0000000000000000000000000000000000000000..a66a4e26c3f3fb490651b6cdaeda737a405de531 GIT binary patch literal 4929 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 literal 0 HcmV?d00001 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()