public void Test_VPos_Save_Token_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/SaveToken";

            var vposSaveTokenRequest = new PayFlex.Client.VposRequest()
            {
                PaymentType        = PaymentType.SaveToken,
                ServiceUrl         = serviceUrl,
                ClientMerchantCode = "6A47D5DCC1354C1B92769A8A6F708C15",
                Password           = "******",
                CreditCard         = new CreditCard()
                {
                    Pan         = "4531444531442283",
                    ExpireMonth = "11",
                    ExpireYear  = "2017"
                },
                CustomerId = "hkntspnr"
            };

            var vposSaveTokenResponse = _paymentManager.PostProcess(vposSaveTokenRequest);

            var tokenResponse = JsonConvert.DeserializeObject(vposSaveTokenResponse.Response, typeof(TokenResponse));

            Assert.AreNotEqual("", vposSaveTokenResponse);
        }
        public void Test_VPos_Update_Pan_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/UpdatePan";

            var vposUpdatePanRequest = new PayFlex.Client.VposRequest()
            {
                PaymentType        = PaymentType.UpdatePan,
                ServiceUrl         = serviceUrl,
                ClientMerchantCode = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password           = "******",
                CreditCard         = new CreditCard()
                {
                    Pan         = "4506347011448053",
                    ExpireMonth = "02",
                    ExpireYear  = "2020"
                },
                CustomerId = "platform11",
                Token      = "2b5f2bc7c2f44d61a72ca32100e79605"
            };

            var vposUpdatePanResponse = _paymentManager.PostProcess(vposUpdatePanRequest);

            var tokenResponse = JsonConvert.DeserializeObject(vposUpdatePanResponse.Response, typeof(TokenResponse));

            Assert.AreNotEqual("", vposUpdatePanResponse);
        }
        public void Test_VPos_Save_Card_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/VposClient";

            var vposSaveCardRequest = new PayFlex.Client.VposRequest()
            {
                ServiceUrl         = serviceUrl,
                ClientMerchantCode = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password           = "******",
                TransactionType    = PaymentTransactionType.SaveCard,
                TranscationId      = Guid.NewGuid().ToString(),
                CreditCard         = new CreditCard()
                {
                    Pan             = "4506347011448053",
                    ExpireMonth     = "02",
                    ExpireYear      = "2020",
                    CVV             = "000",
                    CardHolderIp    = "127.0.0.1",
                    CardHolderEmail = "*****@*****.**"
                },
                CurrencyAmount = (decimal)0.01,
                CurrencyCode   = Currency.TRY,
                CustomerId     = "platform11"
            };

            var vposSaveCardResponse = _paymentManager.PostProcess(vposSaveCardRequest);

            Assert.AreNotEqual("", vposSaveCardResponse);
        }
        public void Test_VPos_PreAuthorization_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/VposClient";


            var vposPreAuthorizationRequest = new PayFlex.Client.VposRequest()
            {
                ServiceUrl         = serviceUrl,
                ClientMerchantCode = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password           = "******",
                TransactionType    = PaymentTransactionType.Auth,
                CreditCard         = new CreditCard
                {
                    Pan          = "4543xxxx9699",
                    ExpireMonth  = "10",
                    ExpireYear   = "2020",
                    CardHolderIp = "127.0.0.1"
                },
                Bank           = Bank.IsBank_Innova,
                CurrencyAmount = (decimal)1.25,
                CurrencyCode   = Currency.TRY
            };

            var vposPreAuthorizationResponse = _paymentManager.PostProcess(vposPreAuthorizationRequest);

            Assert.AreNotEqual("", vposPreAuthorizationResponse);
        }
        public void Test_Vpos_Post_Payment_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sp-test.innova.com.tr/VAKIFBANK_V4/VposWeb/v3/Vposreq.aspx";

            var vposRequest = new PayFlex.Client.VposRequest()
            {
                MerchantId      = "655500056",
                Password        = "******",
                TerminalNo      = "1",
                TransactionType = TransactionType.Sale,
                ServiceUrl      = serviceUrl,
                TransactionId   = "b2d71cc5-d242-4b01-8479-d56eb8f74d7c", // opsiyonel
                CurrencyAmount  = (decimal)10.00,
                CurrencyCode    = Currency.TRY,
                CreditCard      = new CreditCard
                {
                    Pan          = "4543600299100712",
                    CVV          = "454",
                    ExpireMonth  = "11",
                    ExpireYear   = "2016",
                    CardHolderIp = "190.20.13.12"
                },
                ECI        = "05",                                           //opsiyonel(TransactionDeviceSource 0 ise zorunlu, 1 ise, olmamalı)
                CAVV       = "asfa435redf",                                  //opsiyonel(TransactionDeviceSource 0 ise zorunlu, 1 ise, olmamalı)
                ExpSign    = "131132451234314132",                           //opsiyonel --> BKM Ekspress işlemleri için, BKM Express ExpSign değeri bu alanda gönderilebilir.
                OrderId    = "z2d71cc5-d242-4b01-8479-d56eb8f74d7c",         //opsiyonel
                Location   = "1",
                Extract    = "090020304",                                    //opsiyonel
                DeviceType = DeviceType.Windows,
                TransactionDeviceSource = TransactionDeviceSource.ECommerce, //opsiyonel
            };

            var result = _paymentManager.PostProcess(vposRequest);

            Assert.AreNotEqual("", result.Response);


            #region XML Response Deserialize
            XmlRootAttribute xRoot = new XmlRootAttribute();
            xRoot.ElementName = "VposResponse";
            xRoot.IsNullable  = true;
            string        cleanXml      = Regex.Replace(result.Response, @"<[a-zA-Z].[^(><.)]+/>", new MatchEvaluator(RemoveText));
            MemoryStream  memoryStream  = new MemoryStream((new UTF8Encoding()).GetBytes(cleanXml));
            XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
            XmlSerializer xmlSerialize  = new XmlSerializer(typeof(VPosResponse), xRoot);
            var           vposResponse  = (VPosResponse)xmlSerialize.Deserialize(memoryStream);
            #endregion
        }
        public void Test_VPos_Reversal_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/VposClient";

            var vposReversalRequest = new PayFlex.Client.VposRequest()
            {
                ServiceUrl             = serviceUrl,
                ClientMerchantCode     = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password               = "******",
                TransactionType        = PaymentTransactionType.Reversal,
                ReferenceTransactionId = "4318FDED5FD44FC3A90BA893",
                TranscationId          = Guid.NewGuid().ToString()
            };

            var vposReversalResponse = _paymentManager.PostProcess(vposReversalRequest);

            Assert.AreNotEqual("", vposReversalResponse);
        }
        public void Test_VPos_Delete_Token_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/DeleteToken";

            var vposGetTokenRequest = new PayFlex.Client.VposRequest()
            {
                PaymentType        = PaymentType.DeleteToken,
                ServiceUrl         = serviceUrl,
                ClientMerchantCode = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password           = "******",
                Token = "2b5f2bc7c2f44d61a72ca32100e79605"
            };

            var vposGetTokenResponse = _paymentManager.PostProcess(vposGetTokenRequest);

            var tokenResponse = JsonConvert.DeserializeObject(vposGetTokenResponse.Response, typeof(TokenResponse));

            Assert.AreNotEqual("", vposGetTokenResponse);
        }
        public void Test_VPos_Sale_Cancellation_Installment_Sale_Cancellation_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/VposClient";

            var vposSaleCancelationRequest = new PayFlex.Client.VposRequest()
            {
                ServiceUrl             = serviceUrl,
                ClientMerchantCode     = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password               = "******",
                TransactionType        = PaymentTransactionType.SaleCancel,
                ReferenceTransactionId = "9B539FAF6A174428B905A893",
                CreditCard             = new CreditCard
                {
                    CardHolderIp = "127.0.0.1"
                }
            };

            var vposSaleCancelationResponse = _paymentManager.PostProcess(vposSaleCancelationRequest);

            Assert.AreNotEqual("", vposSaleCancelationResponse);
        }
        public void Test_VPos_Cancellation_Refund_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sp-test.innova.com.tr/VAKIFBANK_V4/VposWeb/v3/Vposreq.aspx";

            var vposCancelRequest = new PayFlex.Client.VposRequest()
            {
                PaymentType            = PaymentType.VPosCancellationRefund,
                MerchantId             = "655500056",
                Password               = "******",
                TransactionType        = TransactionType.Cancel,
                ServiceUrl             = serviceUrl,
                ReferenceTransactionId = "b2d71cc5-d242-4b01-8479-d56eb8f74d7c", // opsiyonel
                ClientIp               = "127.0.0.1",
                Location               = "1",
                DeviceType             = DeviceType.Android
            };

            var resultCancel = _paymentManager.PostProcess(vposCancelRequest);

            var vposRefundRequest = new PayFlex.Client.VposRequest()
            {
                PaymentType            = PaymentType.VPosCancellationRefund,
                MerchantId             = "655500056",
                Password               = "******",
                CurrencyAmount         = (decimal)90.50,
                CurrencyCode           = Currency.TRY,
                TransactionType        = TransactionType.Refund,
                ServiceUrl             = serviceUrl,
                ReferenceTransactionId = "b2d71cc5-d242-4b01-8479-d56eb8f74d7c", // opsiyonel
                ClientIp               = "127.0.0.1",
                Location               = "1",
                DeviceType             = DeviceType.Android
            };

            var resultRefund = _paymentManager.PostProcess(vposRefundRequest);

            Assert.AreNotEqual("", resultCancel.Response);
        }
        public void Test_VPos_PreAuthorization_Capture_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/VposClient";

            var vposPreAuthorizationCaptureRequest = new PayFlex.Client.VposRequest()
            {
                ServiceUrl             = serviceUrl,
                ClientMerchantCode     = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password               = "******",
                TransactionType        = PaymentTransactionType.Capture,
                ReferenceTransactionId = "4318FDED5FD44FC3A90BA893",
                CreditCard             = new CreditCard
                {
                    CardHolderIp = "127.0.0.1"
                },
                CurrencyAmount = (decimal)1.25,
                Bank           = Bank.IsBank_Innova
            };

            var vposPreAuthorizationCaptureResponse = _paymentManager.PostProcess(vposPreAuthorizationCaptureRequest);

            Assert.AreNotEqual("", vposPreAuthorizationCaptureResponse);
        }
        public void Test_VPos_Sale_Installment_Sale_Token_Sale_Payment_Then_Return_GetAnyResponse()
        {
            string serviceUrl = "https://sanalpos.innova.com.tr/VposClient/VposClientWebApi/api/VposClient";

            //Peşin Satış
            var vposSaleRequest = new PayFlex.Client.VposRequest()
            {
                ServiceUrl         = serviceUrl,
                TransactionType    = PaymentTransactionType.Sale,
                ClientMerchantCode = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password           = "******",
                TranscationId      = Guid.NewGuid().ToString(),
                Bank       = Bank.Finans,
                CreditCard = new CreditCard()
                {
                    Pan          = "5456165456165454",
                    ExpireMonth  = "12",
                    ExpireYear   = "2025",
                    CVV          = "000",
                    CardHolderIp = "127.0.0.1"
                },
                CurrencyAmount = (decimal)7.00,
                CurrencyCode   = Currency.TRY,
            };

            //Taksitli Satış
            var vposSaleInstallmentRequest = new PayFlex.Client.VposRequest()
            {
                ServiceUrl         = serviceUrl,
                ClientMerchantCode = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password           = "******",
                TransactionType    = PaymentTransactionType.Sale,
                TranscationId      = Guid.NewGuid().ToString(),
                Bank       = Bank.IsBank,
                CreditCard = new CreditCard()
                {
                    Pan              = "4938410160702981",
                    ExpireMonth      = "03",
                    ExpireYear       = "2024",
                    CVV              = "243",
                    CardHolderIp     = "127.0.0.1",
                    InstallmentCount = 2
                },
                CurrencyAmount = (decimal)4.00,
                CurrencyCode   = Currency.TRY
            };

            //Token ile Satış
            var vposTokenRequest = new PayFlex.Client.VposRequest()
            {
                ServiceUrl         = serviceUrl,
                ClientMerchantCode = "1B18B80EF00A41C2BC4AF2628EA88600",
                Password           = "******",
                TransactionType    = PaymentTransactionType.Sale,
                TranscationId      = Guid.NewGuid().ToString(),
                Bank           = Bank.IsBank,
                Token          = "0dabdcb7ebf04059979fa89300xxxxxx",
                CurrencyAmount = (decimal)4.01,
                CurrencyCode   = Currency.TRY
            };

            var vposSaleResponse            = _paymentManager.PostProcess(vposSaleRequest);
            var vposSaleInstallmentResponse = _paymentManager.PostProcess(vposSaleInstallmentRequest);
            var vposTokenResponse           = _paymentManager.PostProcess(vposTokenRequest);

            Assert.AreNotEqual("", vposSaleResponse.Response);
            Assert.AreNotEqual("", vposSaleInstallmentResponse.Response);
            Assert.AreNotEqual("", vposTokenResponse.Response);
        }