public void CreditSwipeSale()
        {
            var response = track.Charge(15m)
                           .WithCurrency("USD")
                           .WithAllowDuplicates(true)
                           .Execute();

            Assert.IsNotNull(response);
            Assert.AreEqual("00", response.ResponseCode);
        }
        public void CloseBatch_ActionNotAuthorized()
        {
            ServicesContainer.ConfigureService(new GpApiConfig {
                AppId   = APP_ID,
                AppKey  = APP_KEY,
                Channel = Channel.CardPresent
            });

            var transaction = creditTrackData
                              .Charge(AMOUNT)
                              .WithCurrency(CURRENCY)
                              .Execute();

            AssertTransactionResponse(transaction, TransactionStatus.Captured);

            waitForGpApiReplication();

            var exceptionCaught = false;

            try {
                BatchService.CloseBatch(transaction.BatchSummary.BatchReference);
            } catch (GatewayException ex) {
                exceptionCaught = true;
                Assert.AreEqual("ACTION_NOT_AUTHORIZED", ex.ResponseCode);
                Assert.AreEqual("40212", ex.ResponseMessage);
                Assert.AreEqual("Status Code: Forbidden - Permission not enabled to execute action", ex.Message);
            } finally {
                Assert.IsTrue(exceptionCaught);
            }
        }
        public void Test_026_swipe_sale_product_all()
        {
            track = TestCards.VisaFleetSwipe();
            ProductData productData = new ProductData(ServiceLevel.FullServe, ProductCodeSet.IssuerSpecific);

            productData.Add("01", UnitOfMeasure.Gallons, 1m, 10m, 10m);
            productData.Add("03", UnitOfMeasure.Gallons, 2m, 10m, 20m);
            productData.Add("79", UnitOfMeasure.Quarts, 4m, 10m, 40m);
            productData.Add("45", UnitOfMeasure.Gallons, 1m, 10m, 10m);
            productData.Add("41", UnitOfMeasure.Gallons, 5m, 10m, 50m);
            productData.Add("99", UnitOfMeasure.Gallons, 2m, 15m, 30m);

            Transaction response = track.Charge(160m)
                                   .WithCurrency("USD")
                                   .WithProductData(productData)
                                   .WithFleetData(fleetData)
                                   .Execute();

            Assert.IsNotNull(response);

            // check message data
            PriorMessageInformation pmi = response.MessageInformation;

            Assert.IsNotNull(pmi);
            Assert.AreEqual("1200", pmi.MessageTransactionIndicator);
            Assert.AreEqual("000900", pmi.ProcessingCode);
            Assert.AreEqual("200", pmi.FunctionCode);
            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
            // check response
            Assert.AreEqual("000", response.ResponseCode);
        }
        public void AdjustSaleTransaction()
        {
            var card = new CreditTrackData();

            card.Value = "%B4012002000060016^VI TEST CREDIT^251210118039000000000396?;4012002000060016=25121011803939600000?";

            var tagData = "9F4005F000F0A0019F02060000000025009F03060000000000009F2608D90A06501B48564E82027C005F3401019F360200029F0702FF009F0802008C9F0902008C9F34030403029F2701809F0D05F0400088009F0E0508000000009F0F05F0400098005F280208409F390105FFC605DC4000A800FFC7050010000000FFC805DC4004F8009F3303E0B8C89F1A0208409F350122950500000080005F2A0208409A031409109B02E8009F21030811539C01009F37045EED3A8E4F07A00000000310109F0607A00000000310108407A00000000310109F100706010A03A400029F410400000001";

            card.EntryMethod = EntryMethod.Proximity;

            var transaction = card.Charge(10)
                              .WithCurrency("USD")
                              .WithAllowDuplicates(true)
                              .WithTagData(tagData)
                              .Execute();

            AssertTransactionResponse(transaction, TransactionStatus.Captured);

            var response = transaction.Edit()
                           .WithAmount((decimal)10.01)
                           .WithTagData(tagData)
                           .WithGratuity((decimal)5.01)
                           .Execute();

            AssertTransactionResponse(response, TransactionStatus.Captured);
        }
        public void test_wex_emv_4847_V412_ON_I_WX4_1200_2()
        {
            CreditTrackData card = new CreditTrackData();

            card.Value = "6900460420006149231=27121004847120001";

            FleetData fleetData = new FleetData()
            {
                VehicleNumber   = "123450",
                OdometerReading = "123450"
            };

            ProductData productData = new ProductData(ServiceLevel.Other_NonFuel, ProductCodeSet.Conexxus_3_Digit);

            productData.Add("001", UnitOfMeasure.Gallons, 10.720m, 4.664m, 50m);


            Transaction response = card.Charge(10m)
                                   .WithCurrency("USD")
                                   .WithProductData(productData)
                                   .WithFleetData(fleetData)
                                   .WithTagData("4F07A0000007681010820239008407A00000076810108A025A33950500800080009A032106039B02E8009C01005F24032212315F280208405F2A0208405F3401029F02060000000001009F03060000000000009F0607A00000076810109F07023D009F080201539F090200019F0D05BC308088009F1A0208409F0E0500400000009F0F05BCB08098009F10200FA502A830B9000000000000000000000F0102000000000000000000000000009F2103E800259F2608DD53340458AD69B59F2701809F34031E03009F3501169F3303E0F8C89F360200019F37045876B0989F3901009F4005F000F0A0019F410400000000")
                                   .Execute();

            Assert.IsNotNull(response);
            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
            Assert.AreEqual("000", response.ResponseCode);
        }
        public void CreditSaleWithEntryMethod()
        {
            foreach (EntryMethod entryMethod in Enum.GetValues(typeof(EntryMethod)))
            {
                ServicesContainer.ConfigureService(new GpApiConfig {
                    Environment     = Environment.TEST,
                    AppId           = APP_ID,
                    AppKey          = APP_KEY,
                    SecondsToExpire = 60,
                    Channel         = Channel.CardPresent,
                    RequestLogger   = new RequestConsoleLogger()
                });

                var creditTrackData = new CreditTrackData {
                    TrackData =
                        "%B4012002000060016^VI TEST CREDIT^251210118039000000000396?;4012002000060016=25121011803939600000?",
                    EntryMethod = entryMethod
                };

                var response = creditTrackData.Charge(AMOUNT)
                               .WithCurrency(CURRENCY)
                               .Execute();
                AssertTransactionResponse(response, TransactionStatus.Captured);
            }
        }
        public void Test_021_EMV_sale()
        {
            CreditCardData card = TestCards.MasterCardFleetManual(true, true);

            CreditTrackData track = TestCards.AmexSwipe();

            track.Value = ";374245002741006=241222117101234500000?";

            //track.Value = ";5567630000088409=49126010793608000024?"; //MTip40 Test 01 Scenario 01
            track.PinBlock = "62968D2481D231E1A504010024A00014";

            FleetData fleetData = new FleetData {
                //ServicePrompt = "0",
                //DriverId = "11411",
                VehicleNumber   = "987654",
                OdometerReading = "123456"
            };
            ProductData productData = new ProductData(ServiceLevel.FullServe, ProductCodeSet.Heartland);

            productData.Add("01", Api.Network.Entities.UnitOfMeasure.Gallons, 4m, 5m, 20m);

            Transaction response = track.Charge(31m)
                                   .WithCurrency("USD")
                                   //.WithFleetData(fleetData)
                                   //.WithProductData(productData)
                                   .WithTagData("4F07A0000001523010500A4D617374657243617264820238008407A00000015230108E0A00000000000000001F00950500008080009A031901099B02E8009C01405F24032212315F25030401015F2A0208405F300202015F3401009F01060000000000019F02060000000006009F03060000000000009F0607A00000015230109F0702FF009F090200029F0D05B8508000009F0E0500000000009F0F05B8708098009F10080105A000030000009F120A4D6173746572436172649F160F3132333435363738393031323334359F1A0208409F1C0831313232333334349F1E0831323334353637389F21030710109F26080631450565A30B759F2701809F330360F0C89F34033F00019F3501219F360200049F3704C6B1A04F9F3901059F4005F000A0B0019F4104000000869F4C0865C862608A23945A9F4E0D54657374204D65726368616E74")
                                   .Execute();

            Assert.IsNotNull(response);
            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
            Assert.AreEqual("000", response.ResponseCode);
        }
        public void Test_WFRC_005_bank_card_swipe_inside_void_1420()
        {
            track = TestCards.VisaSwipe(EntryMethod.Swipe);

            Transaction sale = track.Charge(10m)
                               .WithCurrency("USD")
                               .Execute();

            Assert.IsNotNull(sale);
            Assert.AreEqual("000", sale.ResponseCode);

            Transaction response = sale.Void()
                                   .Execute();

            Assert.IsNotNull(response);

            // check message data
            PriorMessageInformation pmi = response.MessageInformation;

            Assert.IsNotNull(pmi);
            Assert.AreEqual("1420", pmi.MessageTransactionIndicator);
            Assert.AreEqual("003000", pmi.ProcessingCode);
            Assert.AreEqual("441", pmi.FunctionCode);
            Assert.AreEqual("4351", pmi.MessageReasonCode);

            // check response
            Assert.AreEqual("400", response.ResponseCode);
            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
        }
Exemple #9
0
        public void Vision()
        {
            var autoSub = new AutoSubstantiation {
                MerchantVerificationValue = "12345",
                RealTimeSubstantiation    = false,
                VisionSubTotal            = 150m
            };

            var response = track.Charge(215m)
                           .WithCurrency("USD")
                           .WithAllowDuplicates(true)
                           .WithAutoSubstantiation(autoSub)
                           .Execute();

            Assert.IsNotNull(response);
            Assert.AreEqual("00", response.ResponseCode);
        }
        public void Sale_Swiped()
        {
            var response = track.Charge(Amount)
                           .WithCurrency("USD")
                           .Execute();

            Assert.IsNotNull(response);
            Assert.AreEqual("00", response.ResponseCode, response.ResponseMessage);
        }
        public void Test_007_swipe_sale()
        {
            Transaction response = track.Charge(100m)
                                   .WithCurrency("USD")
                                   .Execute();

            Assert.IsNotNull(response);
            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
            // check message data
            PriorMessageInformation pmi = response.MessageInformation;

            Assert.IsNotNull(pmi);
            Assert.AreEqual("1200", pmi.MessageTransactionIndicator);
            Assert.AreEqual("003000", pmi.ProcessingCode);
            Assert.AreEqual("200", pmi.FunctionCode);
            // check response
            Assert.AreEqual("000", response.ResponseCode);
        }
        public void Test_WFRC_010_discover_balance_return()
        {
            track = TestCards.DiscoverSwipe(EntryMethod.Swipe);

            Transaction response = track.Charge(100m)
                                   .WithCurrency("USD")
                                   .Execute();

            Assert.IsNotNull(response);
            //Assert.AreEqual("000", response.ResponseCode);

            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
        }
Exemple #13
0
        public void CloseBatch()
        {
            var chargeTransaction = creditCard.Charge(1.99m)
                                    .WithCurrency(CURRENCY)
                                    .Execute();

            AssertTransactionResponse(chargeTransaction, TransactionStatus.Captured);

            //TODO - remove when api fix polling issue
            Thread.Sleep(1000);

            var batchSummary = BatchService.CloseBatch(chargeTransaction.BatchSummary.BatchReference);

            AssertBatchCloseResponse(batchSummary, 1.99m);
        }
Exemple #14
0
        public void Test_Outdoor_Visa_Test_Case_21()
        {
            CreditTrackData track = new CreditTrackData
            {
                Value = ";4761739001010440=22122011966186589?"
            };

            Transaction response = track.Charge(20m)
                                   .WithCurrency("USD")
                                   .WithTagData("5F280208409F080200029F1101014F07A0000001523010500A4D617374657243617264820238008407A00000015230108E0A00000000000000001F00950500008080009A031901099B02E8009C01405F24032212315F25030401015F2A0208405F300202015F3401119F01060000000000019F02060000000006009F03060000000000009F0607A00000015230109F0702FF009F090200029F0D05B8508000009F0E0500000000009F0F05B8708098009F10080105A000030000009F120A4D6173746572436172649F160F3132333435363738393031323334359F1A0208409F1C0831313232333334349F1E0831323334353637389F21030710109F26080631450565A30B759F2701809F330360F0C89F34033F00019F3501219F360200049F3704C6B1A04F9F3901059F4005F000A0B0019F4104000000869F4C0865C862608A23945A9F4E0D54657374204D65726368616E74")
                                   .Execute("ICR");

            Assert.IsNotNull(response);
            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
            Assert.AreEqual("000", response.ResponseCode);
        }
Exemple #15
0
        private Transaction CreditSale(double amount)
        {
            CreditTrackData track = TestCards.VisaSwipe();

            AuthorizationBuilder builder = track.Charge(new decimal(amount))
                                           .WithCurrency("USD");

            if (configName.Equals("NoBatch"))
            {
                builder.WithBatchNumber(batchProvider.GetBatchNumber(), batchProvider.GetSequenceNumber());
            }

            Transaction response = builder.Execute(configName);

            Assert.IsNotNull(response);
            Assert.AreEqual("000", response.ResponseCode);
            return(response);
        }
Exemple #16
0
        public void Sale_Swiped()
        {
            var response = track.Charge(1.29m)
                           .WithCurrency("USD")
                           .WithCashBack(0m)
                           .WithConvenienceAmount(0m)
                           //.WithTaxAmount(0m)
                           .WithInvoiceNumber("12345")
                           // PoNumber
                           // CustomerCode
                           .WithClientTransactionId("138401")
                           .WithAllowPartialAuth(false)
                           .WithAllowDuplicates(false)
                           .Execute();

            Assert.IsNotNull(response);
            Assert.AreEqual("00", response.ResponseCode);
        }
        public void Test_WFRC_006_visa_chargeback_considerations()
        {
            track = new CreditTrackData
            {
                Value       = ";4761739001010143=241222111478183?",
                EntryMethod = EntryMethod.Swipe
            };

            Transaction response = track.Charge(1m)
                                   .WithCurrency("USD")
                                   .Execute();

            Assert.IsNotNull(response);
            Assert.AreEqual("000", response.ResponseCode);

            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
        }
        public void CreditTrackData_SaleSwipeChip_ExpiredCreditTrackDataDetails()
        {
            var trackData = new CreditTrackData {
                Value       = ";4024720012345671=18125025432198712345?",
                PinBlock    = "AFEC374574FC90623D010000116001EE",
                EntryMethod = EntryMethod.Swipe
            };
            const string tag = "82021C008407A0000002771010950580000000009A031709289C01005F280201245F2A0201245F3401019F02060000000010009F03060000000000009F080200019F090200019F100706010A03A420009F1A0201249F26089CC473F4A4CE18D39F2701809F3303E0F8C89F34030100029F3501229F360200639F370435EFED379F410400000019";

            var response = trackData.Charge(amount)
                           .WithCurrency(currency)
                           .WithTagData(tag)
                           .Execute();

            Assert.IsNotNull(response);
            Assert.AreEqual(DECLINED, response?.ResponseCode);
            Assert.AreEqual(GetMapping(TransactionStatus.Declined), response?.ResponseMessage);
            Assert.AreEqual("54", response.AuthorizationCode);
        }
        public void Test_036_credit_swipe_sale()
        {
            Transaction response = track.Charge(10m)
                                   .WithCurrency("USD")
                                   .Execute();

            Assert.IsNotNull(response);
            Assert.AreEqual("000", response.ResponseCode);

            // reverse the transaction test case #40
            Transaction voidResponse = response.Void().Execute();

            Assert.IsNotNull(voidResponse);
            Assert.AreEqual("400", voidResponse.ResponseCode);

            // reverse the transaction test case #39
            Transaction reverseResponse = response.Reverse().Execute();

            Assert.IsNotNull(reverseResponse);
            Assert.AreEqual("400", reverseResponse.ResponseCode);
        }
Exemple #20
0
        private Transaction CreditSale(decimal amount)
        {
            CreditTrackData track = TestCards.VisaSwipe();

            AuthorizationBuilder builder = track.Charge(amount)
                                           .WithCurrency("USD");

            if (configName.Equals("NoBatch"))
            {
                builder.WithBatchNumber(batchProvider.GetBatchNumber(), batchProvider.GetSequenceNumber());
            }

            Transaction response = builder.Execute(configName);

            Assert.IsNotNull(response);
            System.Diagnostics.Debug.WriteLine("Sale:");
            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
            Assert.AreEqual("000", response.ResponseCode);
            return(response);
        }
        public void Test_001_amex_x416()
        {
            CreditTrackData track = TestCards.AmexSwipe();

            // Product Data
            ProductData productData = new ProductData(ServiceLevel.SelfServe);

            productData.Add(
                ProductCode.Unleaded_Premium_Gas,
                Api.Network.Entities.UnitOfMeasure.Gallons,
                2.64m,
                1.429m,
                3.77m
                );

            Transaction response = track.Charge(10m)
                                   .WithCurrency("USD")
                                   .WithProductData(productData)
                                   .Execute();

            Assert.IsNotNull(response);
            Assert.AreEqual("000", response.ResponseCode);
        }
        public void CreditSaleWithEntryMethod()
        {
            foreach (EntryMethod entryMethod in Enum.GetValues(typeof(EntryMethod)))
            {
                ServicesContainer.ConfigureService(new GpApiConfig
                {
                    Environment     = Entities.Environment.TEST,
                    AppId           = "zKxybfLqH7vAOtBQrApxD5AUpS3ITaPz",
                    AppKey          = "GAMlgEojm6hxZTLI",
                    SecondsToExpire = 60,
                    Channel         = Channel.CardPresent,
                    AccessTokenInfo = new AccessTokenInfo
                    {
                        TransactionProcessingAccountName = "transaction_processing",
                        TokenizationAccountName          = "transaction_processing"
                    },
                    MerchantId    = merchantId,
                    RequestLogger = new RequestConsoleLogger()
                });

                var creditTrackData = new CreditTrackData
                {
                    TrackData =
                        "%B4012002000060016^VI TEST CREDIT^251210118039000000000396?;4012002000060016=25121011803939600000?",
                    EntryMethod = entryMethod
                };

                var response = creditTrackData.Charge(11m)
                               .WithCurrency("USD")

                               .Execute();

                Assert.IsNotNull(response);
                Assert.AreEqual(SUCCESS, response?.ResponseCode);
                Assert.AreEqual("CAPTURED", response?.ResponseMessage);
            }
        }
        public void CreditTrackData_SaleSwipe()
        {
            var response = creditTrackData.Charge(amount)
                           .WithCurrency(currency)
                           .Execute();

            AssertTransactionResponse(response, TransactionStatus.Captured);
        }
        public void Test_006_swipe_void()
        {
            //ProductData productData = new ProductData(ServiceLevel.FullServe, ProductCodeSet.IssuerSpecific);
            //productData.Add("01", UnitOfMeasure.Gallons, 1m, 10m, 10m);

            Transaction sale = track.Charge(10m)
                               .WithCurrency("USD")
                               .WithProductData(productData)
                               .WithFleetData(fleetData)
                               .Execute();

            Assert.IsNotNull(sale);
            Assert.AreEqual("000", sale.ResponseCode);
            //Assert.IsNotNull(sale.ReferenceNumber);

            Transaction response = sale.Void(amount: sale.AuthorizedAmount)
                                   .WithReferenceNumber("12345")
                                   .Execute();

            Assert.IsNotNull(response);

            // check message data
            PriorMessageInformation pmi = response.MessageInformation;

            Assert.IsNotNull(pmi);
            Assert.AreEqual("1420", pmi.MessageTransactionIndicator);
            Assert.AreEqual("000900", pmi.ProcessingCode);
            Assert.AreEqual("441", pmi.FunctionCode);
            Assert.AreEqual("4351", pmi.MessageReasonCode);
            System.Diagnostics.Debug.WriteLine(response.HostResponseDate);
            System.Diagnostics.Debug.WriteLine(response.SystemTraceAuditNumber);
            // check response
            Assert.AreEqual("400", response.ResponseCode);
        }