public void Test_Idempotency_PayinsCardDirectCreate()
        {
            string         key    = DateTime.Now.Ticks.ToString();
            UserNaturalDTO john   = this.GetJohn();
            WalletPostDTO  wallet =
                new WalletPostDTO(new List <string> {
                john.Id
            }, "WALLET IN EUR WITH MONEY", CurrencyIso.EUR);
            var johnsWallet = this.Api.Wallets.Create(wallet);
            CardRegistrationPostDTO cardRegistrationPost =
                new CardRegistrationPostDTO(johnsWallet.Owners[0], CurrencyIso.EUR);
            CardRegistrationDTO    cardRegistration    = this.Api.CardRegistrations.Create(cardRegistrationPost);
            CardRegistrationPutDTO cardRegistrationPut = new CardRegistrationPutDTO();

            cardRegistrationPut.RegistrationData = this.GetPaylineCorrectRegistartionData(cardRegistration);
            cardRegistration = this.Api.CardRegistrations.Update(cardRegistrationPut, cardRegistration.Id);
            CardDTO card = this.Api.Cards.Get(cardRegistration.CardId);
            PayInCardDirectPostDTO payIn = new PayInCardDirectPostDTO(cardRegistration.UserId, cardRegistration.UserId,
                                                                      new Money {
                Amount = 1000, Currency = CurrencyIso.EUR
            },
                                                                      new Money {
                Amount = 0, Currency = CurrencyIso.EUR
            },
                                                                      johnsWallet.Id, "http://test.com", card.Id);

            payIn.CardType = card.CardType;
            Api.PayIns.CreateCardDirect(key, payIn);

            var result = Api.Idempotency.Get(key);

            Assert.IsInstanceOf <PayInCardDirectDTO>(result.Resource);
        }
Exemplo n.º 2
0
        /// <summary>Gets registration data from Payline service.</summary>
        /// <param name="cardRegistration">CardRegistration instance.</param>
        /// <returns>Registration data.</returns>
        protected async Task <string> GetPaylineCorrectRegistartionData(CardRegistrationDTO cardRegistration)
        {
            RestClient client = new RestClient(cardRegistration.CardRegistrationURL);

            RestRequest request = new RestRequest(Method.POST);

            request.AddParameter("data", cardRegistration.PreregistrationData);
            request.AddParameter("accessKeyRef", cardRegistration.AccessKey);
            request.AddParameter("cardNumber", "4972485830400056");
            request.AddParameter("cardExpirationDate", "1224");
            request.AddParameter("cardCvx", "123");

            // Payline requires TLS
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            IRestResponse response = await client.ExecuteAsync(request);

            String responseString = response.Content;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                return(responseString);
            }
            else
            {
                throw new Exception(responseString);
            }
        }
Exemplo n.º 3
0
        /// <summary>Gets registration data from Payline service.</summary>
        /// <param name="cardRegistration">CardRegistration instance.</param>
        /// <returns>Registration data.</returns>
        protected String GetPaylineCorrectRegistartionData(CardRegistrationDTO cardRegistration)
        {
            RestClient client = new RestClient(cardRegistration.CardRegistrationURL);

            RestRequest request = new RestRequest(Method.POST);

            request.AddParameter("data", cardRegistration.PreregistrationData);
            request.AddParameter("accessKeyRef", cardRegistration.AccessKey);
            request.AddParameter("cardNumber", "4970100000000154");
            request.AddParameter("cardExpirationDate", "1218");
            request.AddParameter("cardCvx", "123");

            IRestResponse response = client.Execute(request);

            String responseString = response.Content;

            if (response.StatusCode == HttpStatusCode.OK)
            {
                return(responseString);
            }
            else
            {
                throw new Exception(responseString);
            }
        }
Exemplo n.º 4
0
        protected PayInCardDirectPostDTO GetPayInCardDirectPost(String userId, string idempotencyKey)
        {
            WalletDTO wallet = this.GetJohnsWalletWithMoney();

            if (userId == null)
            {
                UserNaturalDTO user = this.GetJohn();
                userId = user.Id;
            }

            CardRegistrationPostDTO cardRegistrationPost = new CardRegistrationPostDTO(userId, CurrencyIso.EUR);

            CardRegistrationDTO cardRegistration = this.Api.CardRegistrations.Create(idempotencyKey, cardRegistrationPost);

            CardRegistrationPutDTO cardRegistrationPut = new CardRegistrationPutDTO();

            cardRegistrationPut.RegistrationData = this.GetPaylineCorrectRegistartionData(cardRegistration);
            cardRegistration = this.Api.CardRegistrations.Update(cardRegistrationPut, cardRegistration.Id);

            CardDTO card = this.Api.Cards.Get(cardRegistration.CardId);

            // create pay-in CARD DIRECT
            PayInCardDirectPostDTO payIn = new PayInCardDirectPostDTO(cardRegistration.UserId, cardRegistration.UserId,
                                                                      new Money {
                Amount = 10000, Currency = CurrencyIso.EUR
            }, new Money {
                Amount = 0, Currency = CurrencyIso.EUR
            },
                                                                      wallet.Id, "http://test.com", card.Id);

            // payment type as CARD
            payIn.CardType = card.CardType;

            return(payIn);
        }
Exemplo n.º 5
0
        public async Task Test_CardRegistrations_Update()
        {
            try
            {
                CardRegistrationDTO cardRegistration = await this.GetJohnsCardRegistration();

                CardRegistrationPutDTO cardRegistrationPut = new CardRegistrationPutDTO();
                String registrationData = await this.GetPaylineCorrectRegistartionData(cardRegistration);

                cardRegistrationPut.RegistrationData = registrationData;
                cardRegistrationPut.Tag = "DefaultTag - Updated";

                CardRegistrationDTO getCardRegistration = await this.Api.CardRegistrations.UpdateAsync(cardRegistrationPut, cardRegistration.Id);

                Assert.AreEqual(registrationData, getCardRegistration.RegistrationData);
                Assert.IsNotNull(getCardRegistration.CardId);
                Assert.AreEqual("VALIDATED", getCardRegistration.Status);
                Assert.AreEqual("000000", getCardRegistration.ResultCode);
                Assert.AreEqual(cardRegistrationPut.Tag, getCardRegistration.Tag);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
Exemplo n.º 6
0
        /// <summary>Creates card registration object.</summary>
        /// <returns>CardRegistration instance returned from API.</returns>
        protected CardRegistrationDTO GetJohnsCardRegistration()
        {
            if (BaseTest._johnsCardRegistration == null)
            {
                UserNaturalDTO user = this.GetJohn();

                CardRegistrationPostDTO cardRegistration = new CardRegistrationPostDTO(user.Id, CurrencyIso.EUR);

                BaseTest._johnsCardRegistration = this.Api.CardRegistrations.Create(cardRegistration);
            }

            return(BaseTest._johnsCardRegistration);
        }
Exemplo n.º 7
0
        /// <summary>Creates card registration object.</summary>
        /// <param name="cardType">Card type.</param>
        /// <returns>CardRegistration instance returned from API.</returns>
        protected CardRegistrationDTO GetJohnsCardRegistration(CardType cardType = CardType.CB_VISA_MASTERCARD)
        {
            if (BaseTest._johnsCardRegistration == null)
            {
                UserNaturalDTO user = this.GetJohn();

                CardRegistrationPostDTO cardRegistration = new CardRegistrationPostDTO(user.Id, CurrencyIso.EUR, cardType);
                cardRegistration.Tag = "DefaultTag";

                BaseTest._johnsCardRegistration = this.Api.CardRegistrations.Create(cardRegistration);
            }

            return(BaseTest._johnsCardRegistration);
        }
Exemplo n.º 8
0
        public void Test_CardRegistrations_Get()
        {
            try
            {
                CardRegistrationDTO cardRegistration = this.GetJohnsCardRegistration();

                CardRegistrationDTO getCardRegistration = this.Api.CardRegistrations.Get(cardRegistration.Id);

                Assert.IsTrue(getCardRegistration.Id.Length > 0);
                Assert.AreEqual(cardRegistration.Id, getCardRegistration.Id);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
Exemplo n.º 9
0
        /// <summary>Creates wallet for John, if not created yet, or returns an existing one.</summary>
        /// <param name="amount">Initial wallet's money amount.</param>
        /// <returns>Wallet entity instance returned from API.</returns>
        protected WalletDTO GetJohnsWalletWithMoney(int amount)
        {
            if (BaseTest._johnsWalletWithMoney == null)
            {
                UserNaturalDTO john = this.GetJohn();

                // create wallet with money
                WalletPostDTO wallet = new WalletPostDTO(new List <string> {
                    john.Id
                }, "WALLET IN EUR WITH MONEY", CurrencyIso.EUR);

                BaseTest._johnsWalletWithMoney = this.Api.Wallets.Create(wallet);

                CardRegistrationPostDTO cardRegistrationPost = new CardRegistrationPostDTO(BaseTest._johnsWalletWithMoney.Owners[0], CurrencyIso.EUR);
                CardRegistrationDTO     cardRegistration     = this.Api.CardRegistrations.Create(cardRegistrationPost);

                CardRegistrationPutDTO cardRegistrationPut = new CardRegistrationPutDTO();
                cardRegistrationPut.RegistrationData = this.GetPaylineCorrectRegistartionData(cardRegistration);
                cardRegistration = this.Api.CardRegistrations.Update(cardRegistrationPut, cardRegistration.Id);

                CardDTO card = this.Api.Cards.Get(cardRegistration.CardId);

                // create pay-in CARD DIRECT
                PayInCardDirectPostDTO payIn = new PayInCardDirectPostDTO(cardRegistration.UserId, cardRegistration.UserId,
                                                                          new Money {
                    Amount = amount, Currency = CurrencyIso.EUR
                }, new Money {
                    Amount = 0, Currency = CurrencyIso.EUR
                },
                                                                          BaseTest._johnsWalletWithMoney.Id, "http://test.com", card.Id);

                if (card.CardType == CardType.CB || card.CardType == CardType.VISA || card.CardType == CardType.MASTERCARD || card.CardType == CardType.CB_VISA_MASTERCARD)
                {
                    payIn.CardType = CardType.CB_VISA_MASTERCARD;
                }
                else if (card.CardType == CardType.AMEX)
                {
                    payIn.CardType = CardType.AMEX;
                }

                // create Pay-In
                this.Api.PayIns.CreateCardDirect(payIn);
            }

            return(this.Api.Wallets.Get(BaseTest._johnsWalletWithMoney.Id));
        }
Exemplo n.º 10
0
        protected CardPreAuthorizationPostDTO getPreAuthorization(string userId)
        {
            CardRegistrationPostDTO cardRegistrationPost = new CardRegistrationPostDTO(userId, CurrencyIso.EUR);
            CardRegistrationDTO     newCardRegistration  = this.Api.CardRegistrations.Create(cardRegistrationPost);

            CardRegistrationPutDTO cardRegistrationPut = new CardRegistrationPutDTO();
            String registrationData = this.GetPaylineCorrectRegistartionData(newCardRegistration);

            cardRegistrationPut.RegistrationData = registrationData;
            CardRegistrationDTO getCardRegistration = this.Api.CardRegistrations.Update(cardRegistrationPut, newCardRegistration.Id);

            CardPreAuthorizationPostDTO cardPreAuthorization = new CardPreAuthorizationPostDTO(userId, new Money {
                Amount = 10000, Currency = CurrencyIso.EUR
            }, SecureMode.DEFAULT, getCardRegistration.CardId, "http://test.com");

            return(cardPreAuthorization);
        }
Exemplo n.º 11
0
        /// <summary>Creates new wallet for John.</summary>
        /// <param name="amount">Initial wallet's money amount.</param>
        /// <returns>Wallet entity instance returned from API.</returns>
        protected async Task <WalletDTO> GetNewJohnsWalletWithMoney(int amount, UserNaturalDTO user = null)
        {
            UserNaturalDTO john = user;

            if (john == null)
            {
                john = await this.GetJohn();
            }

            // create wallet with money
            WalletPostDTO wallet = new WalletPostDTO(new List <string> {
                john.Id
            }, "WALLET IN EUR WITH MONEY", CurrencyIso.EUR);

            var johnsWalletWithMoney = await this.Api.Wallets.CreateAsync(wallet);

            CardRegistrationPostDTO cardRegistrationPost = new CardRegistrationPostDTO(johnsWalletWithMoney.Owners[0], CurrencyIso.EUR);
            CardRegistrationDTO     cardRegistration     = await this.Api.CardRegistrations.CreateAsync(cardRegistrationPost);

            CardRegistrationPutDTO cardRegistrationPut = new CardRegistrationPutDTO
            {
                RegistrationData = await this.GetPaylineCorrectRegistartionData(cardRegistration)
            };

            cardRegistration = await this.Api.CardRegistrations.UpdateAsync(cardRegistrationPut, cardRegistration.Id);

            CardDTO card = await this.Api.Cards.GetAsync(cardRegistration.CardId);

            // create pay-in CARD DIRECT
            PayInCardDirectPostDTO payIn = new PayInCardDirectPostDTO(cardRegistration.UserId, cardRegistration.UserId,
                                                                      new Money {
                Amount = amount, Currency = CurrencyIso.EUR
            }, new Money {
                Amount = 0, Currency = CurrencyIso.EUR
            },
                                                                      johnsWalletWithMoney.Id, "http://test.com", card.Id);

            payIn.CardType = card.CardType;

            // create Pay-In
            var result = await this.Api.PayIns.CreateCardDirectAsync(payIn);

            return(await this.Api.Wallets.GetAsync(johnsWalletWithMoney.Id));
        }
Exemplo n.º 12
0
        /// <summary>Creates PayIn Card Direct object.</summary>
        /// <param name="userId">User identifier.</param>
        /// <returns>PayIn Card Direct instance returned from API.</returns>
        protected PayInCardDirectDTO GetNewPayInCardDirect(String userId)
        {
            WalletDTO wallet = this.GetJohnsWalletWithMoney();

            if (userId == null)
            {
                UserNaturalDTO user = this.GetJohn();
                userId = user.Id;
            }

            CardRegistrationPostDTO cardRegistrationPost = new CardRegistrationPostDTO(userId, CurrencyIso.EUR);

            CardRegistrationDTO cardRegistration = this.Api.CardRegistrations.Create(cardRegistrationPost);

            CardRegistrationPutDTO cardRegistrationPut = new CardRegistrationPutDTO();

            cardRegistrationPut.RegistrationData = this.GetPaylineCorrectRegistartionData(cardRegistration);
            cardRegistration = this.Api.CardRegistrations.Update(cardRegistrationPut, cardRegistration.Id);

            CardDTO card = this.Api.Cards.Get(cardRegistration.CardId);

            // create pay-in CARD DIRECT
            PayInCardDirectPostDTO payIn = new PayInCardDirectPostDTO(cardRegistration.UserId, cardRegistration.UserId,
                                                                      new Money {
                Amount = 10000, Currency = CurrencyIso.EUR
            }, new Money {
                Amount = 0, Currency = CurrencyIso.EUR
            },
                                                                      wallet.Id, "http://test.com", card.Id);

            // payment type as CARD
            if (card.CardType == CardType.CB || card.CardType == CardType.VISA || card.CardType == CardType.MASTERCARD || card.CardType == CardType.CB_VISA_MASTERCARD)
            {
                payIn.CardType = CardType.CB_VISA_MASTERCARD;
            }
            else if (card.CardType == CardType.AMEX)
            {
                payIn.CardType = CardType.AMEX;
            }

            return(this.Api.PayIns.CreateCardDirect(payIn));
        }
Exemplo n.º 13
0
        public void Test_CardRegistrations_Create()
        {
            try
            {
                CardRegistrationDTO cardRegistration = this.GetJohnsCardRegistration();
                UserNaturalDTO      user             = this.GetJohn();

                Assert.IsNotNull(cardRegistration.Id);
                Assert.IsTrue(cardRegistration.Id.Length > 0);

                Assert.IsNotNull(cardRegistration.AccessKey);
                Assert.IsNotNull(cardRegistration.PreregistrationData);
                Assert.IsNotNull(cardRegistration.CardRegistrationURL);
                Assert.AreEqual(user.Id, cardRegistration.UserId);
                Assert.AreEqual(CurrencyIso.EUR, cardRegistration.Currency);
                Assert.AreEqual("CREATED", cardRegistration.Status);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
Exemplo n.º 14
0
        public async Task Test_CardRegistrations_Create()
        {
            try
            {
                CardRegistrationDTO cardRegistration_visa = await this.GetJohnsCardRegistration();

                UserNaturalDTO user = await this.GetJohn();

                Assert.IsNotNull(cardRegistration_visa.Id);
                Assert.IsTrue(cardRegistration_visa.Id.Length > 0);

                Assert.IsNotNull(cardRegistration_visa.AccessKey);
                Assert.IsNotNull(cardRegistration_visa.PreregistrationData);
                Assert.IsNotNull(cardRegistration_visa.CardRegistrationURL);
                Assert.AreEqual(user.Id, cardRegistration_visa.UserId);
                Assert.AreEqual(CurrencyIso.EUR, cardRegistration_visa.Currency);
                Assert.AreEqual("CREATED", cardRegistration_visa.Status);
                Assert.AreEqual(CardType.CB_VISA_MASTERCARD, cardRegistration_visa.CardType);
                Assert.AreEqual("DefaultTag", cardRegistration_visa.Tag);

                CardRegistrationDTO cardRegistration_maestro = await this.GetNewJohnsCardRegistration(CardType.MAESTRO);

                Assert.IsNotNull(cardRegistration_maestro.Id);
                Assert.IsTrue(cardRegistration_maestro.Id.Length > 0);

                Assert.IsNotNull(cardRegistration_maestro.AccessKey);
                Assert.IsNotNull(cardRegistration_maestro.PreregistrationData);
                Assert.IsNotNull(cardRegistration_maestro.CardRegistrationURL);
                Assert.AreEqual(user.Id, cardRegistration_maestro.UserId);
                Assert.AreEqual(CurrencyIso.EUR, cardRegistration_maestro.Currency);
                Assert.AreEqual("CREATED", cardRegistration_maestro.Status);
                Assert.AreEqual(CardType.MAESTRO, cardRegistration_maestro.CardType);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
Exemplo n.º 15
0
        /// <summary>Creates new card registration object.</summary>
        /// <param name="cardType">Card type.</param>
        /// <returns>CardRegistration instance returned from API.</returns>
        protected CardRegistrationDTO GetNewJohnsCardRegistration(CardType cardType = CardType.CB_VISA_MASTERCARD)
        {
            BaseTest._johnsCardRegistration = null;

            return(GetJohnsCardRegistration(cardType));
        }
Exemplo n.º 16
0
        /// <summary>Creates new card registration object.</summary>
        /// <param name="cardType">Card type.</param>
        /// <returns>CardRegistration instance returned from API.</returns>
        protected async Task <CardRegistrationDTO> GetNewJohnsCardRegistration(CardType cardType = CardType.CB_VISA_MASTERCARD)
        {
            BaseTest._johnsCardRegistration = null;

            return(await GetJohnsCardRegistration(cardType));
        }