diff --git a/src/main/java/net/authorize/sample/SampleCode.java b/src/main/java/net/authorize/sample/SampleCode.java index faa57188..c2356830 100644 --- a/src/main/java/net/authorize/sample/SampleCode.java +++ b/src/main/java/net/authorize/sample/SampleCode.java @@ -1,9 +1,7 @@ package net.authorize.sample; import java.io.BufferedReader; -import java.io.IOException; import java.io.InputStreamReader; - import net.authorize.sample.VisaCheckout.*; import net.authorize.sample.PaymentTransactions.*; import net.authorize.sample.PayPalExpressCheckout.*; @@ -20,30 +18,30 @@ */ public class SampleCode { - public static void main( String[] args ) + public static void main( String[] args ) { - if (args.length == 0) - { - SelectMethod(); - } - else if (args.length == 1) - { - RunMethod(args[0]); - return; - } - else - { - ShowUsage(); - } + if (args.length == 0) + { + SelectMethod(); + } + else if (args.length == 1) + { + RunMethod(args[0]); + return; + } + else + { + ShowUsage(); + } - System.out.println(""); - System.out.print("Press to finish ..."); - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - try{ - int i = Integer.parseInt(br.readLine()); - }catch(Exception ex) { - } + System.out.println(""); + System.out.print("Press to finish ..."); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + try{ + int i = Integer.parseInt(br.readLine()); + }catch(Exception ex) { + } } @@ -55,8 +53,6 @@ private static void ShowUsage() System.out.println(""); System.out.println("Code Sample Names: "); ShowMethods(); - - } private static void SelectMethod() @@ -99,6 +95,7 @@ private static void ShowMethods() System.out.println(" CancelSubscription"); System.out.println(" UpdateSubscription"); System.out.println(" GetListOfSubscriptions"); + System.out.println(" GetAccountUpdaterJobDetails"); System.out.println(" GetBatchStatistics"); System.out.println(" GetSettledBatchList"); System.out.println(" GetTransactionList"); @@ -140,13 +137,13 @@ private static void RunMethod(String methodName) { // These are default transaction keys. // You can create your own keys in seconds by signing up for a sandbox account here: https://developer.authorize.net/sandbox/ - String apiLoginId = "5KP3u95bQpv"; + String apiLoginId = "5KP3u95bQpv"; String transactionKey = "346HZ32z3fP4hTG2"; //Update the payedId with which you want to run the sample code String payerId = "6ZSCSYG33VP8Q"; //Update the transactionId with which you want to run the sample code String transactionId = "123456"; - + String customerProfileId = "36596285"; String customerPaymentProfileId = "33086593"; String customerAddressId = "1873761911"; @@ -158,14 +155,13 @@ private static void RunMethod(String methodName) Double amount = 123.45; // Proxy server settings. -// Enable these lines for using Sample Codes behind a proxy server - +// Enable these lines for using Sample Codes behind a proxy server // System.setProperty("https.proxyUse", "true"); // System.setProperty("https.proxyHost", "example.proxy.server"); // System.setProperty("https.proxyPort", "portNumber"); // System.setProperty("https.proxyUserName", "exampleUsername"); // System.setProperty("https.proxyPassword", "examplePassword"); - + switch (methodName) { case "DecryptVisaCheckoutData": DecryptVisaCheckoutData.run(apiLoginId, transactionKey); @@ -344,9 +340,13 @@ private static void RunMethod(String methodName) case "GetAnAcceptPaymentPage": GetAnAcceptPaymentPage.run(apiLoginId, transactionKey, amount); break; + case "GetAccountUpdaterJobDetails": + GetAccountUpdaterJobDetails.run(apiLoginId, transactionKey); + break; default: ShowUsage(); break; } + } } diff --git a/src/main/java/net/authorize/sample/TransactionReporting/GetAccountUpdaterJobDetails.java b/src/main/java/net/authorize/sample/TransactionReporting/GetAccountUpdaterJobDetails.java new file mode 100644 index 00000000..a3f813a5 --- /dev/null +++ b/src/main/java/net/authorize/sample/TransactionReporting/GetAccountUpdaterJobDetails.java @@ -0,0 +1,153 @@ +package net.authorize.sample.TransactionReporting; + +import java.util.ArrayList; +import net.authorize.Environment; +import net.authorize.api.contract.v1.ANetApiResponse; +import net.authorize.api.contract.v1.AUJobTypeEnum; +import net.authorize.api.contract.v1.AuDeleteType; +import net.authorize.api.contract.v1.AuDetailsType; +import net.authorize.api.contract.v1.AuUpdateType; +import net.authorize.api.contract.v1.CreditCardMaskedType; +import net.authorize.api.contract.v1.GetAUJobDetailsRequest; +import net.authorize.api.contract.v1.GetAUJobDetailsResponse; +import net.authorize.api.contract.v1.MerchantAuthenticationType; +import net.authorize.api.contract.v1.MessageTypeEnum; +import net.authorize.api.contract.v1.Paging; +import net.authorize.api.controller.GetAUJobDetailsController; +import net.authorize.api.controller.base.ApiOperationBase; + +public class GetAccountUpdaterJobDetails { + + public static ANetApiResponse run(String apiLoginId, String transactionKey) { + + // Set the request to operate in either the sandbox or production environment + ApiOperationBase.setEnvironment(Environment.SANDBOX); + + // Create object with merchant authentication details + MerchantAuthenticationType merchantAuthenticationType = new MerchantAuthenticationType(); + merchantAuthenticationType.setName(apiLoginId); + merchantAuthenticationType.setTransactionKey(transactionKey); + + String month = "2018-08"; + String reFid = "123456"; + Paging paging = new Paging(); + paging.setLimit(100); + paging.setOffset(2); + + // Create the API request and set the parameters for this specific request + GetAUJobDetailsRequest apiRequest = new GetAUJobDetailsRequest(); + apiRequest.setMerchantAuthentication(merchantAuthenticationType); + apiRequest.setPaging(paging); + apiRequest.setRefId(reFid); + apiRequest.setMonth(month); + apiRequest.setModifiedTypeFilter(AUJobTypeEnum.ALL); + + // Call the controller + GetAUJobDetailsController controller = new GetAUJobDetailsController(apiRequest); + controller.execute(); + + GetAUJobDetailsResponse response = new GetAUJobDetailsResponse(); + response = controller.getApiResponse(); + + // If API Response is OK, go ahead and check the transaction response + if (response != null && response.getMessages().getResultCode() == MessageTypeEnum.OK) { + + System.out.println("SUCCESS: Get Account Updater job details for Month: " + month); + + if (response.getAuDetails() == null) { + System.out.println("No GetAccountUpdaterjobdetails for Month."); + return response; + } + + ArrayList updateTypeList = new ArrayList(); + ArrayList deleteTypeList = new ArrayList(); + + for (AuDetailsType details : response.getAuDetails().getAuUpdateOrAuDelete()) { + + System.out.println("---Customer Profile Details Start---"); + System.out.println("Profile ID:" + details.getCustomerProfileID()); + System.out.println("Payment Profile ID:" + details.getCustomerPaymentProfileID()); + System.out.println("First Name:" + details.getFirstName()); + System.out.println("Last Name:" + details.getLastName()); + System.out.println("Update Time UTC:" + details.getUpdateTimeUTC()); + System.out.println("Reason Code:" + details.getAuReasonCode()); + System.out.println("Reason Description:" + details.getReasonDescription()); + + if (details.getClass().getName().toString().contains("AuUpdateType")) + { + updateTypeList.add((AuUpdateType) details); + + } else if (details.getClass().getName().toString().contains("AuDeleteType")) { + + deleteTypeList.add((AuDeleteType) details); + + } + + if (!(updateTypeList.isEmpty())) { + for (int i = 0; i < updateTypeList.size(); i++) { + + System.out.println("---AU Update Start---"); + System.out.println("Profile ID:" + details.getCustomerProfileID()); + System.out.println("Payment Profile ID:" + details.getCustomerPaymentProfileID()); + System.out.println("First Name:" + details.getFirstName()); + System.out.println("Last Name:" + details.getLastName()); + System.out.println("Update Time UTC:" + details.getUpdateTimeUTC()); + System.out.println("Reason Code:" + details.getAuReasonCode()); + System.out.println("Reason Description:" + details.getReasonDescription()); + + if (updateTypeList.get(i).getNewCreditCard() != null) { + CreditCardMaskedType newCreditCard = updateTypeList.get(i).getNewCreditCard(); + System.out.println("---Fetching New Card Details---"); + System.out.println("Card Number:" + newCreditCard.getCardNumber()); + System.out.println("Expiration Date:" + newCreditCard.getExpirationDate()); + System.out.println("Card Type:" + newCreditCard.getCardType()); + } + + if (updateTypeList.get(i).getOldCreditCard() != null) { + CreditCardMaskedType oldCreditCard = updateTypeList.get(i).getOldCreditCard(); + System.out.println("---Fetching Old Card Details---"); + System.out.println("Card Number:" + oldCreditCard.getCardNumber()); + System.out.println("Expiration Date:" + oldCreditCard.getExpirationDate()); + System.out.println("Card Type:" + oldCreditCard.getCardType()); + } + } + } + + if (!(deleteTypeList.isEmpty())) { + for (int i = 0; i < deleteTypeList.size(); i++) { + + System.out.println("---AU Delete Start---"); + System.out.println("Profile ID:" + details.getCustomerProfileID()); + System.out.println("Payment Profile ID:" + details.getCustomerPaymentProfileID()); + System.out.println("First Name:" + details.getFirstName()); + System.out.println("Last Name:" + details.getLastName()); + System.out.println("Update Time UTC:" + details.getUpdateTimeUTC()); + System.out.println("Reason Code:" + details.getAuReasonCode()); + System.out.println("Reason Description:" + details.getReasonDescription()); + + if (deleteTypeList.get(i).getCreditCard() != null) { + + CreditCardMaskedType creditCard = deleteTypeList.get(i).getCreditCard(); + System.out.println("Card Number:" + creditCard.getCardNumber()); + System.out.println("Expiration Date:" + creditCard.getExpirationDate()); + System.out.println("Card Type:" + creditCard.getCardType()); + } + + } + } + } + } + + else { + // Display the error code and message when response is null + ANetApiResponse errorResponse = controller.getErrorResponse(); + System.out.println("Failed to get response"); + if (!errorResponse.getMessages().getMessage().isEmpty()) { + System.out.println("Error: " + errorResponse.getMessages().getMessage().get(0).getCode() + " \n" + + errorResponse.getMessages().getMessage().get(0).getText()); + } + } + + return response; + } +} diff --git a/src/test/java/net/authorize/sample/SampleCodeTest/TestRunner.java b/src/test/java/net/authorize/sample/SampleCodeTest/TestRunner.java index 6aa8511e..9b373462 100644 --- a/src/test/java/net/authorize/sample/SampleCodeTest/TestRunner.java +++ b/src/test/java/net/authorize/sample/SampleCodeTest/TestRunner.java @@ -32,8 +32,6 @@ import net.authorize.api.contract.v1.UpdateCustomerProfileResponse; import net.authorize.api.contract.v1.UpdateCustomerShippingAddressResponse; import net.authorize.api.contract.v1.ValidateCustomerPaymentProfileResponse; -import net.authorize.sample.AcceptSuite.GetAcceptCustomerProfilePage; -import net.authorize.sample.AcceptSuite.GetAnAcceptPaymentPage; import net.authorize.sample.CustomerProfiles.CreateCustomerPaymentProfile; import net.authorize.sample.CustomerProfiles.CreateCustomerProfile; import net.authorize.sample.CustomerProfiles.CreateCustomerProfileFromTransaction; @@ -41,6 +39,7 @@ import net.authorize.sample.CustomerProfiles.DeleteCustomerPaymentProfile; import net.authorize.sample.CustomerProfiles.DeleteCustomerProfile; import net.authorize.sample.CustomerProfiles.DeleteCustomerShippingAddress; +import net.authorize.sample.AcceptSuite.GetAcceptCustomerProfilePage; import net.authorize.sample.CustomerProfiles.GetCustomerPaymentProfile; import net.authorize.sample.CustomerProfiles.GetCustomerProfile; import net.authorize.sample.CustomerProfiles.GetCustomerShippingAddress; @@ -48,6 +47,13 @@ import net.authorize.sample.CustomerProfiles.UpdateCustomerProfile; import net.authorize.sample.CustomerProfiles.UpdateCustomerShippingAddress; import net.authorize.sample.CustomerProfiles.ValidateCustomerPaymentProfile; +import net.authorize.sample.PayPalExpressCheckout.AuthorizationAndCapture; +import net.authorize.sample.PayPalExpressCheckout.AuthorizationAndCaptureContinued; +import net.authorize.sample.PayPalExpressCheckout.AuthorizationOnly; +import net.authorize.sample.PayPalExpressCheckout.AuthorizationOnlyContinued; +import net.authorize.sample.PayPalExpressCheckout.Credit; +import net.authorize.sample.PayPalExpressCheckout.GetDetails; +import net.authorize.sample.PayPalExpressCheckout.PriorAuthorizationCapture; import net.authorize.sample.PaymentTransactions.AuthorizeCreditCard; import net.authorize.sample.PaymentTransactions.CaptureFundsAuthorizedThroughAnotherChannel; import net.authorize.sample.PaymentTransactions.CapturePreviouslyAuthorizedAmount; @@ -56,23 +62,19 @@ import net.authorize.sample.PaymentTransactions.ChargeTokenizedCreditCard; import net.authorize.sample.PaymentTransactions.CreditBankAccount; import net.authorize.sample.PaymentTransactions.DebitBankAccount; +import net.authorize.sample.AcceptSuite.GetAnAcceptPaymentPage; import net.authorize.sample.PaymentTransactions.RefundTransaction; import net.authorize.sample.PaymentTransactions.VoidTransaction; -import net.authorize.sample.PayPalExpressCheckout.AuthorizationAndCapture; -import net.authorize.sample.PayPalExpressCheckout.AuthorizationAndCaptureContinued; -import net.authorize.sample.PayPalExpressCheckout.AuthorizationOnly; -import net.authorize.sample.PayPalExpressCheckout.AuthorizationOnlyContinued; -import net.authorize.sample.PayPalExpressCheckout.Credit; -import net.authorize.sample.PayPalExpressCheckout.GetDetails; -import net.authorize.sample.PayPalExpressCheckout.PriorAuthorizationCapture; import net.authorize.sample.RecurringBilling.CancelSubscription; import net.authorize.sample.RecurringBilling.CreateSubscription; import net.authorize.sample.RecurringBilling.CreateSubscriptionFromCustomerProfile; import net.authorize.sample.RecurringBilling.GetSubscription; import net.authorize.sample.RecurringBilling.GetSubscriptionStatus; import net.authorize.sample.RecurringBilling.UpdateSubscription; +import net.authorize.sample.TransactionReporting.GetAccountUpdaterJobDetails; import net.authorize.sample.TransactionReporting.GetTransactionDetails; + public class TestRunner { String apiLoginId = Constants.API_LOGIN_ID; @@ -539,4 +541,10 @@ public ANetApiResponse TestGetAnAcceptPaymentPage() { return GetAnAcceptPaymentPage.run(apiLoginId, transactionKey, getAmount()); } + /*---Added for GetAccountUpdaterJobDetails---*/ + public ANetApiResponse TestGetAccountUpdaterJobDetails() + { + return GetAccountUpdaterJobDetails.run(apiLoginId, transactionKey); + } + /*---End---*/ }