public static ANetApiResponse Run(String ApiLoginID, String ApiTransactionKey, decimal amount) { Console.WriteLine("Charge Encrypted Track Data Sample"); ApiOperationBase <ANetApiRequest, ANetApiResponse> .RunEnvironment = AuthorizeNet.Environment.SANDBOX; // define the merchant information (authentication / transaction id) ApiOperationBase <ANetApiRequest, ANetApiResponse> .MerchantAuthentication = new merchantAuthenticationType() { name = ApiLoginID, ItemElementName = ItemChoiceType.transactionKey, Item = ApiTransactionKey, }; // Track data goes in EncryptedTrack Data Type var cardData = new encryptedTrackDataType(); // KeyManagementScheme corresponds to the encryption settings and data from the reader var scheme = new KeyManagementScheme(); scheme.DUKPT = new KeyManagementSchemeDUKPT { Operation = OperationType.DECRYPT, DeviceInfo = new KeyManagementSchemeDUKPTDeviceInfo { Description = "4649443D4944544543482E556E694D61672E416E64726F69642E53646B7631" }, EncryptedData = new KeyManagementSchemeDUKPTEncryptedData { Value = "02f300801f342600039b252a343237352a2a2a2a2a2a2a2a353637355e332f54455354205e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3f2a3b343237352a2a2a2a2a2a2a2a353637353d2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3f2a521db2603bfe6169fc371211161c4ad6edd7294a8352af1ba8b388c527d8d6335286413ad67521b8be085da998cef7ae3621b0b72eecd6d61953a4a268e02a8cdff3d365216df73646b326d8dac369c11a2a3a4a9336addc4a15ae5d8843e0163bae895b9b4df3253439b4dd885363ad108604ea04f2e4fac701a5a0e65c54e1301a5ed7706eb88762994901000000400015ac1e03" }, Mode = new KeyManagementSchemeDUKPTMode { Data = null, PIN = "1" } }; cardData.FormOfPayment = new KeyBlock { Value = new KeyValue { Encoding = EncodingType.Hex, EncryptionAlgorithm = EncryptionAlgorithmType.TDES, Scheme = scheme } }; //standard api call, simply use cardData in place of creditcard type var paymentType = new paymentType { Item = cardData }; // Add line Items var lineItems = new lineItemType[2]; lineItems[0] = new lineItemType { itemId = "1", name = "t-shirt", quantity = 2, unitPrice = new Decimal(15.00) }; lineItems[1] = new lineItemType { itemId = "2", name = "snowboard", quantity = 1, unitPrice = new Decimal(450.00) }; var transactionRequest = new transactionRequestType { transactionType = transactionTypeEnum.authCaptureTransaction.ToString(), // charge the card amount = amount, payment = paymentType, lineItems = lineItems, // Retail data required for POS transactions retail = new transRetailInfoType { deviceType = "1", marketType = "2" } }; var request = new createTransactionRequest { transactionRequest = transactionRequest }; // instantiate the contoller that will call the service var controller = new createTransactionController(request); controller.Execute(); // get the response from the service (errors contained if any) var response = controller.GetApiResponse(); //validate if (response != null) { if (response.messages.resultCode == messageTypeEnum.Ok) { if (response.transactionResponse.messages != null) { Console.WriteLine("Successfully created transaction with Transaction ID: " + response.transactionResponse.transId); Console.WriteLine("Response Code: " + response.transactionResponse.responseCode); Console.WriteLine("Message Code: " + response.transactionResponse.messages[0].code); Console.WriteLine("Description: " + response.transactionResponse.messages[0].description); Console.WriteLine("Success, Auth Code : " + response.transactionResponse.authCode); } else { Console.WriteLine("Failed Transaction."); if (response.transactionResponse.errors != null) { Console.WriteLine("Error Code: " + response.transactionResponse.errors[0].errorCode); Console.WriteLine("Error message: " + response.transactionResponse.errors[0].errorText); } } } else { Console.WriteLine("Failed Transaction."); if (response.transactionResponse != null && response.transactionResponse.errors != null) { Console.WriteLine("Error Code: " + response.transactionResponse.errors[0].errorCode); Console.WriteLine("Error message: " + response.transactionResponse.errors[0].errorText); } else { Console.WriteLine("Error Code: " + response.messages.message[0].code); Console.WriteLine("Error message: " + response.messages.message[0].text); } } } else { Console.WriteLine("Null Response."); } return(response); }
public static void encryptedTrackDataType(encryptedTrackDataType request) { }
public void SetUp() { MockContext = new MockFactory(); //initialize counter Counter = _random.Next(1, (int)(Math.Pow(2, 24))); CounterStr = GetRandomString(""); _now = DateTime.UtcNow; _nowString = _now.ToString(DateFormat); _pastDate = _now.AddMonths(-1); _nowDate = _now; _futureDate = _now.AddMonths(1); CustomMerchantAuthenticationType = new merchantAuthenticationType { name = ApiLoginIdKey, ItemElementName = ItemChoiceType.transactionKey, Item = TransactionKey, }; // merchantAuthenticationType.setSessionToken(GetRandomString("SessionToken")); // merchantAuthenticationType.setPass_word(GetRandomString("Pass_word")); // merchantAuthenticationType.setMobileDeviceId(GetRandomString("MobileDevice")); // ImpersonationAuthenticationType impersonationAuthenticationType = new ImpersonationAuthenticationType(); // impersonationAuthenticationType.setPartnerLoginId(CnpApiLoginIdKey); // impersonationAuthenticationType.setPartnerTransactionKey(CnpTransactionKey); // merchantAuthenticationType.setImpersonationAuthentication(impersonationAuthenticationType); CustomerProfileType = new customerProfileType { merchantCustomerId = GetRandomString("Customer"), description = GetRandomString("CustomerDescription"), email = CounterStr + "*****@*****.**", }; //make sure these elements are initialized by calling get as it uses lazy initialization var paymentProfiles = CustomerProfileType.paymentProfiles; var addresses = CustomerProfileType.shipToList; CreditCardOne = new creditCardType { cardNumber = "4111111111111111", expirationDate = "2038-12", }; // creditCardOne.setCardCode(""); BankAccountOne = new bankAccountType { accountType = bankAccountTypeEnum.savings, routingNumber = "125000000", accountNumber = GetRandomString("A/C#"), nameOnAccount = GetRandomString("A/CName"), echeckType = echeckTypeEnum.WEB, bankName = GetRandomString("Bank"), checkNumber = CounterStr, }; TrackDataOne = new creditCardTrackType { ItemElementName = ItemChoiceType1.track1, Item = GetRandomString("Track1"), //trackDataOne.setTrack2(GetRandomString("Track2")); }; EncryptedTrackDataOne = new encryptedTrackDataType { FormOfPayment = new KeyBlock(), }; //keyBlock.setValue(value); PayPalOne = new payPalType { successUrl = GetRandomString("https://success.anet.net"), cancelUrl = GetRandomString("https://cancel.anet.net"), paypalLc = GetRandomString("Lc"), paypalHdrImg = GetRandomString("Hdr"), paypalPayflowcolor = GetRandomString("flowClr"), payerID = GetRandomString("PayerId"), }; PaymentOne = new paymentType { Item = CreditCardOne }; //paymentOne.setBankAccount(bankAccountOne); //paymentOne.setTrackData(trackDataOne); //paymentOne.setEncryptedTrackData(encryptedTrackDataOne); //paymentOne.setPayPal( payPalOne); // driversLicenseOne = new DriversLicenseType(); // driversLicenseOne.setNumber(GetRandomString("DLNumber")); // driversLicenseOne.setState(GetRandomString("WA")); // driversLicenseOne.setDateOfBirth(nowString); CustomerAddressOne = new customerAddressType { firstName = GetRandomString("FName"), lastName = GetRandomString("LName"), company = GetRandomString("Company"), address = GetRandomString("StreetAdd"), city = "Bellevue", state = "WA", zip = "98000", country = "USA", phoneNumber = FormatToPhone(Counter), faxNumber = FormatToPhone(Counter + 1), }; CustomerPaymentProfileOne = new customerPaymentProfileType { customerType = customerTypeEnum.individual, payment = PaymentOne, }; // customerPaymentProfileOne.setBillTo(customerAddressOne); // customerPaymentProfileOne.setDriversLicense(driversLicenseOne); // customerPaymentProfileOne.setTaxId(GetRandomString("XX")); CustomerOne = new customerType { type = customerTypeEnum.individual, id = GetRandomString("Id"), email = CounterStr + "*****@*****.**", phoneNumber = FormatToPhone(Counter), faxNumber = FormatToPhone(Counter + 1), driversLicense = DriversLicenseOne, taxId = "911011011", }; CustomerTwo = new customerType(); var interval = new paymentScheduleTypeInterval { length = 1, unit = ARBSubscriptionUnitEnum.months, }; OrderType = new orderType() { //TODO ADD VALIDATION ON INVOICE LENGTH invoiceNumber = GetRandomString("Inv:"), description = GetRandomString("Description"), }; NameAndAddressTypeOne = new nameAndAddressType { firstName = GetRandomString("FName"), lastName = GetRandomString("LName"), company = GetRandomString("Company"), address = GetRandomString("Address"), city = GetRandomString("City"), state = GetRandomString("State"), zip = "98004", country = "USA", }; NameAndAddressTypeTwo = new nameAndAddressType { firstName = GetRandomString("FName"), lastName = GetRandomString("LName"), company = GetRandomString("Company"), address = GetRandomString("Address"), city = GetRandomString("City"), state = GetRandomString("State"), zip = "98004", country = "USA", }; PaymentScheduleTypeOne = new paymentScheduleType { interval = interval, startDate = _nowDate, totalOccurrences = 5, trialOccurrences = 0, }; ArbSubscriptionOne = new ARBSubscriptionType { amount = SetValidSubscriptionAmount(Counter), billTo = NameAndAddressTypeOne, customer = CustomerOne, name = GetRandomString("Name"), order = OrderType, payment = PaymentOne, paymentSchedule = PaymentScheduleTypeOne, shipTo = NameAndAddressTypeOne, trialAmount = SetValidSubscriptionAmount(0), }; CustomerDataOne = new customerDataType { driversLicense = CustomerOne.driversLicense, email = CustomerOne.email, id = CustomerOne.id, taxId = CustomerOne.taxId, type = CustomerOne.type, }; RefId = CounterStr; }
// public static ANetApiResponse Run(String ApiLoginID, String ApiTransactionKey, decimal amount) // { // Console.WriteLine("Charge Encrypted Track Data Sample"); // ApiOperationBase<ANetApiRequest, ANetApiResponse>.RunEnvironment = AuthorizeNET.Environment.SANDBOX; // // define the merchant information (authentication / transaction id) // ApiOperationBase<ANetApiRequest, ANetApiResponse>.MerchantAuthentication = new merchantAuthenticationType() // { // name = ApiLoginID, // ItemElementName = ItemChoiceType.transactionKey, // Item = ApiTransactionKey, // }; // // Track data goes in EncryptedTrack Data Type // var cardData = new encryptedTrackDataType(); // // KeyManagementScheme corresponds to the encryption settings and data from the reader // var scheme = new KeyManagementScheme(); // scheme.DUKPT = new KeyManagementSchemeDUKPT { // Operation = OperationType.DECRYPT, // DeviceInfo = new KeyManagementSchemeDUKPTDeviceInfo { Description = "4649443D4944544543482E556E694D61672E416E64726F69642E53646B7631" }, // EncryptedData = new KeyManagementSchemeDUKPTEncryptedData { Value = "02f300801f342600039b252a343237352a2a2a2a2a2a2a2a353637355e332f54455354205e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3f2a3b343237352a2a2a2a2a2a2a2a353637353d2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3f2a521db2603bfe6169fc371211161c4ad6edd7294a8352af1ba8b388c527d8d6335286413ad67521b8be085da998cef7ae3621b0b72eecd6d61953a4a268e02a8cdff3d365216df73646b326d8dac369c11a2a3a4a9336addc4a15ae5d8843e0163bae895b9b4df3253439b4dd885363ad108604ea04f2e4fac701a5a0e65c54e1301a5ed7706eb88762994901000000400015ac1e03" }, // Mode = new KeyManagementSchemeDUKPTMode { Data = null, PIN = "1" } // }; // cardData.FormOfPayment = new KeyBlock { Value = new KeyValue { Encoding = EncodingType.Hex, EncryptionAlgorithm = EncryptionAlgorithmType.TDES, Scheme = scheme } }; // //standard api call, simply use cardData in place of creditcard type // var paymentType = new paymentType { Item = cardData }; // // Add line Items // var lineItems = new lineItemType[2]; // lineItems[0] = new lineItemType { itemId = "1", name = "t-shirt", quantity = 2, unitPrice = new Decimal(15.00) }; // lineItems[1] = new lineItemType { itemId = "2", name = "snowboard", quantity = 1, unitPrice = new Decimal(450.00) }; // var transactionRequest = new transactionRequestType // { // transactionType = transactionTypeEnum.authCaptureTransaction.ToString(), // charge the card // amount = amount, // payment = paymentType, // lineItems = lineItems, // // Retail data required for POS transactions // retail = new transRetailInfoType { deviceType = "1", marketType = "2" } // }; // var request = new createTransactionRequest { transactionRequest = transactionRequest }; // // instantiate the contoller that will call the service // var controller = new createTransactionController(request); // controller.Execute(); // // get the response from the service (errors contained if any) // var response = controller.GetApiResponse(); // //validate // if (response != null) // { // if (response.messages.resultCode == messageTypeEnum.Ok) // { // if(response.transactionResponse.messages != null) // { // Console.WriteLine("Successfully created transaction with Transaction ID: " + response.transactionResponse.transId); // Console.WriteLine("Response Code: " + response.transactionResponse.responseCode); // Console.WriteLine("Message Code: " + response.transactionResponse.messages[0].code); // Console.WriteLine("Description: " + response.transactionResponse.messages[0].description); //Console.WriteLine("Success, Auth Code : " + response.transactionResponse.authCode); // } // else // { // Console.WriteLine("Failed Transaction."); // if (response.transactionResponse.errors != null) // { // Console.WriteLine("Error Code: " + response.transactionResponse.errors[0].errorCode); // Console.WriteLine("Error message: " + response.transactionResponse.errors[0].errorText); // } // } // } // else // { // Console.WriteLine("Failed Transaction."); // if (response.transactionResponse != null && response.transactionResponse.errors != null) // { // Console.WriteLine("Error Code: " + response.transactionResponse.errors[0].errorCode); // Console.WriteLine("Error message: " + response.transactionResponse.errors[0].errorText); // } // else // { // Console.WriteLine("Error Code: " + response.messages.message[0].code); // Console.WriteLine("Error message: " + response.messages.message[0].text); // } // } // } // else // { // Console.WriteLine("Null Response."); // } // return response; // } public static void ChargeEncryptedTrackDataExec(String ApiLoginID, String ApiTransactionKey) { using (CsvReader csv = new CsvReader(new StreamReader(new FileStream(@"../../../CSV_DATA/ChargeEncryptedTrackData.csv", FileMode.Open)), true)) { Console.WriteLine("Charge Encrypted Track Data Sample"); int flag = 0; int fieldCount = csv.FieldCount; string[] headers = csv.GetFieldHeaders(); //Append data var item1 = DataAppend.ReadPrevData(); using (CsvFileWriter writer = new CsvFileWriter(new FileStream(@"../../../CSV_DATA/Outputfile.csv", FileMode.Open))) { while (csv.ReadNextRecord()) { ApiOperationBase <ANetApiRequest, ANetApiResponse> .RunEnvironment = AuthorizeNET.Environment.SANDBOX; // define the merchant information (authentication / transaction id) ApiOperationBase <ANetApiRequest, ANetApiResponse> .MerchantAuthentication = new merchantAuthenticationType() { name = ApiLoginID, ItemElementName = ItemChoiceType.transactionKey, Item = ApiTransactionKey, }; // Track data goes in EncryptedTrack Data Type var cardData = new encryptedTrackDataType(); // KeyManagementScheme corresponds to the encryption settings and data from the reader var scheme = new KeyManagementScheme(); scheme.DUKPT = new KeyManagementSchemeDUKPT { Operation = OperationType.DECRYPT, DeviceInfo = new KeyManagementSchemeDUKPTDeviceInfo { Description = "4649443D4944544543482E556E694D61672E416E64726F69642E53646B7631" }, EncryptedData = new KeyManagementSchemeDUKPTEncryptedData { Value = "02f300801f342600039b252a343237352a2a2a2a2a2a2a2a353637355e332f54455354205e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3f2a3b343237352a2a2a2a2a2a2a2a353637353d2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3f2a521db2603bfe6169fc371211161c4ad6edd7294a8352af1ba8b388c527d8d6335286413ad67521b8be085da998cef7ae3621b0b72eecd6d61953a4a268e02a8cdff3d365216df73646b326d8dac369c11a2a3a4a9336addc4a15ae5d8843e0163bae895b9b4df3253439b4dd885363ad108604ea04f2e4fac701a5a0e65c54e1301a5ed7706eb88762994901000000400015ac1e03" }, Mode = new KeyManagementSchemeDUKPTMode { Data = null, PIN = "1" } }; cardData.FormOfPayment = new KeyBlock { Value = new KeyValue { Encoding = EncodingType.Hex, EncryptionAlgorithm = EncryptionAlgorithmType.TDES, Scheme = scheme } }; //standard api call, simply use cardData in place of creditcard type var paymentType = new paymentType { Item = cardData }; // Add line Items var lineItems = new lineItemType[2]; lineItems[0] = new lineItemType { itemId = "1", name = "t-shirt", quantity = 2, unitPrice = new Decimal(15.00) }; lineItems[1] = new lineItemType { itemId = "2", name = "snowboard", quantity = 1, unitPrice = new Decimal(450.00) }; string amount = null; string TestCaseId = null; for (int i = 0; i < fieldCount; i++) { switch (headers[i]) { case "TestCaseId": TestCaseId = csv[i]; break; case "amount": amount = csv[i]; break; default: break; } } CsvRow row = new CsvRow(); try { if (flag == 0) { row.Add("TestCaseId"); row.Add("APIName"); row.Add("Status"); row.Add("TimeStamp"); writer.WriteRow(row); flag = flag + 1; //Append Results foreach (var item in item1) { writer.WriteRow(item); } } var transactionRequest = new transactionRequestType { transactionType = transactionTypeEnum.authCaptureTransaction.ToString(), // charge the card amount = Convert.ToDecimal(amount), payment = paymentType, lineItems = lineItems, // Retail data required for POS transactions retail = new transRetailInfoType { deviceType = "1", marketType = "2" } }; var request = new createTransactionRequest { transactionRequest = transactionRequest }; // instantiate the contoller that will call the service var controller = new createTransactionController(request); controller.Execute(); // get the response from the service (errors contained if any) var response = controller.GetApiResponse(); //validate if (response != null) { if (response.messages.resultCode == messageTypeEnum.Ok) { if (response.transactionResponse.messages != null) { /*****************************/ try { //Assert.AreEqual(response.Id, customerProfileId); //Console.WriteLine("Assertion Succeed! Valid customerProfileId fetched."); CsvRow row1 = new CsvRow(); row1.Add("CETD_00" + flag.ToString()); row1.Add("ChargeEncryptedTrackData"); row1.Add("Pass"); row1.Add(DateTime.Now.ToString("yyyy/MM/dd" + "::" + "HH:mm:ss:fff")); writer.WriteRow(row1); // Console.WriteLine("Success " + TestcaseID + " CustomerID : " + response.Id); flag = flag + 1; Console.WriteLine("Successfully created transaction with Transaction ID: " + response.transactionResponse.transId); Console.WriteLine("Response Code: " + response.transactionResponse.responseCode); Console.WriteLine("Message Code: " + response.transactionResponse.messages[0].code); Console.WriteLine("Description: " + response.transactionResponse.messages[0].description); Console.WriteLine("Success, Auth Code : " + response.transactionResponse.authCode); } catch { CsvRow row1 = new CsvRow(); row1.Add("CETD_00" + flag.ToString()); row1.Add("ChargeEncryptedTrackData"); row1.Add("Assertion Failed!"); row1.Add(DateTime.Now.ToString("yyyy/MM/dd" + "::" + "HH:mm:ss:fff")); writer.WriteRow(row1); //Console.WriteLine("Assertion Failed! Invalid CustomerPaymentProfile fetched."); flag = flag + 1; } /*******************/ } else { Console.WriteLine("Failed Transaction."); CsvRow row2 = new CsvRow(); row2.Add("CETD_00" + flag.ToString()); row2.Add("ChargeEncryptedTrackData"); row2.Add("Fail"); row2.Add(DateTime.Now.ToString("yyyy/MM/dd" + "::" + "HH:mm:ss:fff")); writer.WriteRow(row2); flag = flag + 1; //if (response.transactionResponse.errors != null) //{ // Console.WriteLine("Error Code: " + response.transactionResponse.errors[0].errorCode); // Console.WriteLine("Error message: " + response.transactionResponse.errors[0].errorText); //} } } else { Console.WriteLine("Failed Transaction."); CsvRow row2 = new CsvRow(); row2.Add("CETD_00" + flag.ToString()); row2.Add("ChargeEncryptedTrackData"); row2.Add("Fail"); row2.Add(DateTime.Now.ToString("yyyy/MM/dd" + "::" + "HH:mm:ss:fff")); writer.WriteRow(row2); flag = flag + 1; //if (response.transactionResponse != null && response.transactionResponse.errors != null) //{ // Console.WriteLine("Error Code: " + response.transactionResponse.errors[0].errorCode); // Console.WriteLine("Error message: " + response.transactionResponse.errors[0].errorText); //} //else //{ // Console.WriteLine("Error Code: " + response.messages.message[0].code); // Console.WriteLine("Error message: " + response.messages.message[0].text); //} } } else { Console.WriteLine("Null Response."); CsvRow row2 = new CsvRow(); row2.Add("CETD_00" + flag.ToString()); row2.Add("ChargeEncryptedTrackData"); row2.Add("Fail"); row2.Add(DateTime.Now.ToString("yyyy/MM/dd" + "::" + "HH:mm:ss:fff")); writer.WriteRow(row2); flag = flag + 1; } //return response; } //return response; catch (Exception e) { CsvRow row2 = new CsvRow(); row2.Add("CETD_00" + flag.ToString()); row2.Add("ChargeEncryptedTrackData"); row2.Add("Fail"); row2.Add(DateTime.Now.ToString("yyyy/MM/dd" + "::" + "HH:mm:ss:fff")); writer.WriteRow(row2); flag = flag + 1; //Console.WriteLine(TestCaseId + " Error Message " + e.Message); } } } } }