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);
        }
Пример #2
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);
        }
Пример #3
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);
            }
        }
Пример #4
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));
        }
Пример #5
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);
        }
Пример #6
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));
        }
Пример #7
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));
        }
Пример #8
0
        public async Task <CardRegistrationDTO> Update(CardRegistrationPutDTO cardRegistration, string cardRegistrationId)
        {
            var targetUrl = $"{_baseUrl}/cardregistrations/{cardRegistrationId}";

            return(await UpdateEntity <CardRegistrationDTO, CardRegistrationPutDTO>(targetUrl, cardRegistration));
        }
 /// <summary>Updates card registration.</summary>
 /// <param name="cardRegistration">Card registration instance to be updated.</param>
 /// <param name="cardRegistrationId">Card registration identifier.</param>
 /// <returns>Card registration object returned from API.</returns>
 public async Task <CardRegistrationDTO> Update(CardRegistrationPutDTO cardRegistration, String cardRegistrationId)
 {
     return(await this.UpdateObject <CardRegistrationDTO, CardRegistrationPutDTO>(MethodKey.CardRegistrationSave, cardRegistration, cardRegistrationId));
 }
 /// <summary>Updates card registration.</summary>
 /// <param name="cardRegistration">Card registration instance to be updated.</param>
 /// <param name="cardRegistrationId">Card registration identifier.</param>
 /// <returns>Card registration object returned from API.</returns>
 public CardRegistrationDTO Update(CardRegistrationPutDTO cardRegistration, String cardRegistrationId)
 {
     return(this.UpdateObject <CardRegistrationDTO, CardRegistrationPutDTO>(MethodKey.CardRegistrationSave, cardRegistration, cardRegistrationId));
 }