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); }
/// <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); } }
/// <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); } }
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); }
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); } }
/// <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); }
/// <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); }
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); } }
/// <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)); }
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); }
/// <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)); }
/// <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)); }
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); } }
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); } }
/// <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)); }
/// <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)); }