Example #1
0
        public async Task <bool> AddOrUpdateCreditCard(CreditCardInfos creditCard, string kountSessionId, bool isUpdate = false)
        {
            try
            {
                await TokenizeCard(creditCard, kountSessionId);
            }
            catch
            {
                return(false);
            }

            var request = new CreditCardRequest
            {
                CreditCardCompany = creditCard.CreditCardCompany,
                CreditCardId      = creditCard.CreditCardId,
                NameOnCard        = creditCard.NameOnCard,
                Last4Digits       = creditCard.Last4Digits,
                Token             = creditCard.Token,
                ExpirationMonth   = creditCard.ExpirationMonth,
                ExpirationYear    = creditCard.ExpirationYear,
                Label             = creditCard.Label,
                ZipCode           = creditCard.ZipCode,
                StreetNumber      = creditCard.StreetNumber,
                StreetName        = creditCard.StreetName,
                Email             = creditCard.Email,
                Phone             = creditCard.Phone,
                Country           = creditCard.Country
            };

            await UseServiceClientAsync <IAccountServiceClient> (client =>
                                                                 !isUpdate
                                                                 ?client.AddCreditCard (request)
                                                                 : client.UpdateCreditCard(request));


            if (isUpdate || CurrentAccount.DefaultCreditCard == null)
            {
                var creditCardDetails = new CreditCardDetails
                {
                    AccountId         = CurrentAccount.Id,
                    CreditCardId      = request.CreditCardId,
                    CreditCardCompany = request.CreditCardCompany,
                    NameOnCard        = request.NameOnCard,
                    Token             = request.Token,
                    Last4Digits       = request.Last4Digits,
                    ExpirationMonth   = request.ExpirationMonth,
                    ExpirationYear    = request.ExpirationYear,
                    IsDeactivated     = false,
                    StreetNumber      = request.StreetNumber,
                    StreetName        = request.StreetName,
                    Email             = request.Email,
                    Phone             = request.Phone,
                    Country           = request.Country
                };
                UpdateCachedAccount(creditCardDetails, ChargeTypes.CardOnFile.Id, false, true);
            }

            return(true);
        }
 //IClonable Override
 public virtual object Clone()
 {
     CreditCardDetails	 instance = new CreditCardDetails() ;
     instance.CCNumber = CCNumber ;
     instance.ExpirationDate = ExpirationDate ;
     instance.Rating = Rating ;
     return instance;
 }
Example #3
0
        public void TestProceessAmount_VerifyMethodCalls(decimal amount, string creditCardNumber, string creditCardHolder, string expiryDate,
                                                         string securityCode, string guid, string status)
        {
            //arrange
            PaymentModel model = new PaymentModel()
            {
                Amount           = amount,
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            CreditCardDetails creditCardDetails = new CreditCardDetails()
            {
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            PaymentState paymentState = new PaymentState()
            {
                Amount            = amount,
                CreditCardNo      = creditCardNumber,
                StateOfTransation = status,
                TransactionId     = Guid.Parse(guid)
            };

            mockMapper.Setup(x => x.Map <CreditCardDetails>(model)).Returns(creditCardDetails);

            mockDataDal.Setup(x => x.InsertCreditCardDetails(creditCardDetails));

            mockPaymentFactory.Setup(x => x.GetPaymentGateway(amount)).Returns(PaymentStatus.Processed);

            mockMapper.Setup(x => x.Map <PaymentState>(model)).Returns(paymentState);

            mockDataDal.Setup(x => x.InsertTransactionDetails(paymentState));

            //act

            sut = new ProcessGateway(mockPaymentFactory.Object, mockMapper.Object, mockDataDal.Object);

            sut.ProceessAmount(model);

            //Verify

            mockMapper.Verify(x => x.Map <CreditCardDetails>(model), Times.Once());

            mockDataDal.Verify(x => x.InsertCreditCardDetails(creditCardDetails), Times.Once());

            mockPaymentFactory.Verify(x => x.GetPaymentGateway(amount), Times.Once());

            mockMapper.Verify(x => x.Map <PaymentState>(model), Times.Once());

            mockDataDal.Verify(x => x.InsertTransactionDetails(paymentState), Times.Once());
        }
Example #4
0
            //IClonable Override
            public virtual object Clone()
            {
                CreditCardDetails instance = new CreditCardDetails();

                instance.CCNumber       = CCNumber;
                instance.ExpirationDate = ExpirationDate;
                instance.Rating         = Rating;
                return(instance);
            }
Example #5
0
        private bool HasValidDate(string month, string year)
        {
            var creditCard = new CreditCardDetails
            {
                ExpirationMonth = month,
                ExpirationYear  = year
            };

            return(!creditCard.IsExpired());
        }
Example #6
0
        public void LauraBuyAndThePurchaseIsValid()
        {
            List <Item>       items             = NewItems("pull rouge", "pantalon noir");
            CreditCardDetails creditCardDetails = new CreditCardDetails("6546597543445912");
            Address           address           = new Address("55 Rue du Faubourg Saint-Honoré");

            PurchaseResult purchaseResult = NewPurchase.Confirm(items, address, creditCardDetails);

            Assert.True(purchaseResult.IsValid);
        }
Example #7
0
        public void JohnBuyButAddressIsInexistant()
        {
            List <Item>       items             = NewItems("pull rouge", "pull violet");
            CreditCardDetails creditCardDetails = new CreditCardDetails("7526215354358945");
            Address           address           = new Address("77 Avenue du Jambon");

            PurchaseResult purchaseResult = NewPurchase.Confirm(items, address, creditCardDetails);

            Assert.False(purchaseResult.IsValid);
            Assert.NotEmpty(purchaseResult.Errors);
            Assert.Equal("adresse inexistante", purchaseResult.Errors.First());
        }
Example #8
0
        public void KevinBuyButOneArticleIsNoLongerAvailable()
        {
            List <Item>       items             = NewItems("tee-shirt rouge", "short blanc", "pull violet");
            CreditCardDetails creditCardDetails = new CreditCardDetails("7895265452543153");
            Address           address           = new Address("1 Avenue du Colonel Henri Rol-Tanguy");

            PurchaseResult purchaseResult = NewPurchase.Confirm(items, address, creditCardDetails);

            Assert.False(purchaseResult.IsValid);
            Assert.NotEmpty(purchaseResult.Errors);
            Assert.Equal("tee-shirt rouge indisponible", purchaseResult.Errors.First());
        }
Example #9
0
        public void AnnaBuyButBankRejectPayment()
        {
            List <Item>       items             = NewItems("chemise verte", "pantalon noir");
            CreditCardDetails creditCardDetails = new CreditCardDetails("9745965412543654");
            Address           address           = new Address("55 Rue du Faubourg Saint-Honoré");

            PurchaseResult purchaseResult = NewPurchase.Confirm(items, address, creditCardDetails);

            Assert.False(purchaseResult.IsValid);
            Assert.NotEmpty(purchaseResult.Errors);
            Assert.Equal("solde insuffisant", purchaseResult.Errors.First());
        }
Example #10
0
        private void UpdateCachedAccount(CreditCardDetails defaultCreditCard, int?chargeTypeId, bool isPayPalAccountLinked, bool shouldUpdateChargeType = false)
        {
            var account = CurrentAccount;

            account.DefaultCreditCard     = defaultCreditCard;
            account.Settings.ChargeTypeId = chargeTypeId;
            account.IsPayPalAccountLinked = isPayPalAccountLinked;
            CurrentAccount = account;

            if (shouldUpdateChargeType)
            {
                UpdateChargeTypes(_marketSettings).FireAndForget();
            }
        }
Example #11
0
        public void MarieBuyButAddressIsInexistantAndOneArticleIsNoLongerAvailableAndBankRejectPayment()
        {
            List <Item>       items             = NewItems("tee-shirt rouge", "pull rose");
            CreditCardDetails creditCardDetails = new CreditCardDetails("1265599754346544");
            Address           address           = new Address("98 Avenue du saucisson");

            PurchaseResult purchaseResult = NewPurchase.Confirm(items, address, creditCardDetails);

            Assert.False(purchaseResult.IsValid);
            Assert.NotEmpty(purchaseResult.Errors);
            Assert.Contains(purchaseResult.Errors, _ => _ == "tee-shirt rouge indisponible");
            Assert.Contains(purchaseResult.Errors, _ => _ == "pull rose indisponible");
            Assert.Contains(purchaseResult.Errors, _ => _ == "adresse inexistante");
            Assert.Contains(purchaseResult.Errors, _ => _ == "solde insuffisant");
        }
Example #12
0
        public void TestProceessAmount_WithStatus(decimal amount, string creditCardNumber, string creditCardHolder, string expiryDate,
                                                  string securityCode, string guid, string status)
        {
            PaymentModel model = new PaymentModel()
            {
                Amount           = amount,
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            CreditCardDetails creditCardDetails = new CreditCardDetails()
            {
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            PaymentState paymentState = new PaymentState()
            {
                Amount            = amount,
                CreditCardNo      = creditCardNumber,
                StateOfTransation = status,
                TransactionId     = Guid.Parse(guid)
            };

            mockMapper.Setup(x => x.Map <CreditCardDetails>(model)).Returns(creditCardDetails);

            mockDataDal.Setup(x => x.InsertCreditCardDetails(creditCardDetails));

            mockPaymentFactory.Setup(x => x.GetPaymentGateway(amount)).Returns(PaymentStatus.Processed);

            mockMapper.Setup(x => x.Map <PaymentState>(model)).Returns(paymentState);

            mockDataDal.Setup(x => x.InsertTransactionDetails(paymentState));

            sut = new ProcessGateway(mockPaymentFactory.Object, mockMapper.Object, mockDataDal.Object);

            var result = sut.ProceessAmount(model);

            Assert.NotNull(result);
            Assert.Equal(paymentState.Amount, result.Amount);
            Assert.Equal(paymentState.CreditCardNo, result.CreditCardNo);
            Assert.Equal(paymentState.TransactionId, result.TransactionId);
            Assert.Equal(paymentState.StateOfTransation, result.StateOfTransation);
        }
Example #13
0
 public void InsertCreditCardDetails(CreditCardDetails creditCardDetails)
 {
     try
     {
         var entity = _appDBContext.CreditCardDetails.FirstOrDefault(x => x.CreditCardNumber == creditCardDetails.CreditCardNumber);
         if (entity == null)
         {
             _appDBContext.CreditCardDetails.Add(creditCardDetails);
             _appDBContext.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         //log erro
     }
 }
Example #14
0
        public async Task <BasePaymentResponse> ValidateTokenizedCard(CreditCardDetails creditCard, string cvv, string kountSessionId, Account account)
        {
            try
            {
                var request = new TokenizeValidateRequest
                {
                    Token             = creditCard.Token,
                    Cvv               = cvv,
                    SessionId         = kountSessionId,
                    Email             = account.Email,
                    BillingFullName   = creditCard.NameOnCard,
                    CustomerIpAddress = _ipAddressManager.GetIPAddress()
                };

                if (creditCard.ZipCode.HasValue())
                {
                    request.ZipCode = creditCard.ZipCode;
                }

                var response = await CmtPaymentServiceClient.PostAsync(request);

                return(new BasePaymentResponse
                {
                    IsSuccessful = response.ResponseCode == 1,
                    Message = response.ResponseMessage
                });
            }
            catch (Exception e)
            {
                _logger.Maybe(x => x.LogMessage("Error during card validation"));
                _logger.Maybe(x => x.LogError(e));

                var message   = e.Message;
                var exception = e as AggregateException;
                if (exception != null)
                {
                    message = exception.InnerException.Message;
                }

                return(new BasePaymentResponse
                {
                    IsSuccessful = false,
                    Message = message
                });
            }
        }
        public bool ProcessPayment(string merchantId,
                                   string cardNumber, string expiration,
                                   decimal amount)
        {
            var provider = new PayPalProvider();

            try
            {
                var cardInfo = new CreditCardDetails(cardNumber, expiration);
                provider.ProcessPayment(merchantId, cardInfo, amount);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
        /// <summary>
        /// Does the parking transaction.
        /// </summary>
        /// <param name="card_string">The card_string.</param>
        /// <param name="swipe">The swipe.</param>
        /// <returns></returns>
        internal bool DoParkingTransaction(KioskMsgType card_string, string swipe)
        {
            bool isValid = false;
            try
            {
                CreditCardDetails creditCard = new CreditCardDetails();
                creditCard.CreditCardNumber = swipe;
                creditCard.ValidTillDate = "1/1";

                isValid = CCManagerSerivceProxy.IsValidCreditCard(creditCard);
            }
            catch (Exception ex)
            {
                //TODO: log exception
            }
            return isValid;
        }
Example #17
0
        /// <summary>
        /// Does the parking transaction.
        /// </summary>
        /// <param name="card_string">The card_string.</param>
        /// <param name="swipe">The swipe.</param>
        /// <returns></returns>
        internal bool DoParkingTransaction(KioskMsgType card_string, string swipe)
        {
            bool isValid = false;

            try
            {
                CreditCardDetails creditCard = new CreditCardDetails();
                creditCard.CreditCardNumber = swipe;
                creditCard.ValidTillDate    = "1/1";

                isValid = CCManagerSerivceProxy.IsValidCreditCard(creditCard);
            }
            catch (Exception ex)
            {
                //TODO: log exception
            }
            return(isValid);
        }
Example #18
0
        // POST: api/CreditCard
        public CreditCard Post(CreditCardDetails creditCardDetails)
        {
            var apiContext = Models.Configuration.GetApiContext();

            // A resource representing a credit card that can be used to fund a payment.
            var card = new CreditCard()
            {
                expire_month = int.Parse(creditCardDetails.ExpirationMonth),
                expire_year  = int.Parse(creditCardDetails.ExpirationYear),
                number       = creditCardDetails.CardNumber,
                type         = "visa",
                cvv2         = creditCardDetails.Cvv,
            };

            var createdCard = card.Create(apiContext);

            return(CreditCard.Get(apiContext, createdCard.id));
        }
Example #19
0
        public void TestProceessAmount_Exception2(decimal amount, string creditCardNumber, string creditCardHolder, string expiryDate,
                                                  string securityCode, string guid, string status)
        {
            PaymentModel model = new PaymentModel()
            {
                Amount           = amount,
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            CreditCardDetails creditCardDetails = new CreditCardDetails()
            {
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            PaymentState paymentState = new PaymentState()
            {
                Amount            = amount,
                CreditCardNo      = creditCardNumber,
                StateOfTransation = status,
                TransactionId     = Guid.Parse(guid)
            };

            mockMapper.Setup(x => x.Map <CreditCardDetails>(model)).Returns(creditCardDetails);

            mockDataDal.Setup(x => x.InsertCreditCardDetails(creditCardDetails));

            mockPaymentFactory.Setup(x => x.GetPaymentGateway(amount)).Returns(PaymentStatus.Processed);

            mockMapper.Setup(x => x.Map <PaymentState>(model)).Returns(paymentState);

            mockDataDal.Setup(x => x.InsertTransactionDetails(paymentState)).Throws(new Exception());

            mockMapper.Setup(x => x.Map <PaymentState>(model)).Returns(paymentState);
            Assert.Equal(amount, paymentState.Amount);
            Assert.Equal(creditCardNumber, paymentState.CreditCardNo);
            Assert.Equal(Guid.Parse(guid), paymentState.TransactionId);
            Assert.Equal(status, paymentState.StateOfTransation);
        }
        protected void BtnUpdateClick(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    long            cardId       = Convert.ToInt64(Request.QueryString["card"]);
                    long            number       = Convert.ToInt64(txtCreditNumber.Text);
                    int             verification = Convert.ToInt32(txtVerificationCode.Text);
                    System.DateTime date         = DateTime.ParseExact(txtExpirationDate.Text, "MM/yy", null);
                    if (date.Year.CompareTo(System.DateTime.Now.Year) < 0 || (date.Year.CompareTo(System.DateTime.Now.Year) == 0 && date.Month.CompareTo(System.DateTime.Now.Month) < 0))
                    {
                        lblDateError.Visible   = true;
                        lblNumberError.Visible = false;
                        return;
                    }

                    CreditCardDetails creditCardDetails =
                        new CreditCardDetails(comboCreditType.SelectedValue, number,
                                              verification, date, 0, SessionManager.GetUserSession(Context).UserProfileId);


                    SessionManager.UpdateCreditCardDetails(Context, cardId, checkDefault.Checked, creditCardDetails);

                    Response.Redirect(
                        Response.ApplyAppPathModifier("~/Pages/User/ListCreditCards.aspx"));
                }
                catch (DuplicateInstanceException)
                {
                    lblNumberError.Visible = true;
                }
                catch (FormatException)
                {
                    lblDateError.Visible   = true;
                    lblNumberError.Visible = false;
                }
            }
        }
Example #21
0
        ///<summary>To add credit card details</summary>
        ///<param name="creditcardmodel">EmpModel class</param>
        /// <returns>Returns success message</returns>
        public string AddCreditCardDetails(CreditCardDetails ccDetails)
        {
            responseMsg = string.Empty;

            try
            {
                this.sqlConn.Open();
                SqlCommand sqlCmd = new SqlCommand("spAddCreditCardDetails", this.sqlConn);
                sqlCmd.CommandType = CommandType.StoredProcedure;
                sqlCmd.Parameters.Add("@EmpID", SqlDbType.Int).Value                      = ccDetails.Emp_ID;
                sqlCmd.Parameters.Add("@CardHolder", SqlDbType.NVarChar).Value            = ccDetails.CardHolder;
                sqlCmd.Parameters.Add("@CardType", SqlDbType.Int).Value                   = ccDetails.CardTypeID;
                sqlCmd.Parameters.Add("@CardNumber", SqlDbType.NVarChar).Value            = ccDetails.CardNumber;
                sqlCmd.Parameters.Add("@CardExpMonth", SqlDbType.Int).Value               = ccDetails.Card_Exp_Month_ID;
                sqlCmd.Parameters.Add("@CardExpYear", SqlDbType.Int).Value                = ccDetails.Card_Exp_Year_ID;
                sqlCmd.Parameters.Add("@CreatedBy", SqlDbType.NVarChar).Value             = ccDetails.Created_By;
                sqlCmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value                  = ccDetails.Name;
                sqlCmd.Parameters.Add("@Address", SqlDbType.NVarChar).Value               = ccDetails.Address;
                sqlCmd.Parameters.Add("@CountryID", SqlDbType.Int).Value                  = ccDetails.Country_ID;
                sqlCmd.Parameters.Add("@PostalCode", SqlDbType.NVarChar).Value            = ccDetails.PostalCode;
                sqlCmd.Parameters.Add("@MobileNumber", SqlDbType.NVarChar).Value          = ccDetails.BillingPhoneNumber;
                sqlCmd.Parameters.Add("@Email", SqlDbType.NVarChar).Value                 = ccDetails.BillingEmail;
                sqlCmd.Parameters.Add("@ResponseMsg", SqlDbType.NVarChar, 2000).Direction = ParameterDirection.Output;
                sqlCmd.ExecuteNonQuery();
                responseMsg = Convert.ToString(sqlCmd.Parameters["@ResponseMsg"].Value);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                this.sqlConn.Close();
                this.sqlConn.Dispose();
            }

            return(responseMsg);
        }
Example #22
0
        public string CreditCardAndBillingDetails(string cardHolderName, int cardType, string cardNumber, int CVV, int cardExpMonth, int cardExpYear,
                                                  string Name, string address, int country, string postalCode, string phoneNumber, string email)
        {
            empDetails  = new EmployeeDetails();
            ccDetails   = new CreditCardDetails();
            repository  = new ICONHRRepository();
            responseMsg = string.Empty;
            int empId = 0;

            try
            {
                //Employee details
                empDetails            = (EmployeeDetails)Session["EmployeeModel"];
                empDetails.Country_ID = Convert.ToInt32(country);
                responseMsg           = repository.AddNewEmpDetails(empDetails);

                string[] arrResponse = responseMsg.Split(',');
                if (response.Length > 1)
                {
                    responseMsg = Convert.ToString(arrResponse[0]);
                    empId       = Convert.ToInt32(arrResponse[1]);
                    if (empId != 0)
                    {
                        // Card Card details
                        repository                  = new ICONHRRepository();
                        ccDetails.Emp_ID            = empId;
                        ccDetails.CardHolder        = cardHolderName;
                        ccDetails.CardTypeID        = cardType;
                        ccDetails.CardNumber        = cardNumber;
                        ccDetails.CVV               = CVV;
                        ccDetails.Card_Exp_Month_ID = cardExpMonth;
                        ccDetails.Card_Exp_Year_ID  = cardExpYear;

                        // Billing details
                        ccDetails.Name               = Name;
                        ccDetails.Address            = address;
                        ccDetails.Country_ID         = country;
                        ccDetails.PostalCode         = postalCode;
                        ccDetails.BillingEmail       = email;
                        ccDetails.BillingPhoneNumber = phoneNumber;
                        ccDetails.Created_By         = empDetails.Created_By;

                        responseMsg = repository.AddCreditCardDetails(ccDetails);

                        if (responseMsg == response)
                        {
                            Session["EmployeeModel"] = null;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
                var    frame          = trace.FrameCount > 1 ? trace.GetFrame(1) : trace.GetFrame(0);
                int    Line           = (int)frame.GetFileLineNumber();
                string methodName     = this.ControllerContext.RouteData.Values["action"].ToString();
                string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                LogClass.CreateLogXml(ex.Message, controllerName, Convert.ToString(ex.InnerException), methodName, Line);
            }

            return(responseMsg);
        }
Example #23
0
 public Task <BasePaymentResponse> ValidateTokenizedCard(CreditCardDetails creditCard, string cvv, string kountSessionId, Account account)
 {
     return(GetClient().ValidateTokenizedCard(creditCard, cvv, kountSessionId, account));
 }
 public PersistedCheckoutContextBuilder WithCreditCard(CreditCardDetails creditCard)
 {
     CreditCard    = creditCard;
     CreditCardSet = true;
     return(this);
 }
 public Task<BasePaymentResponse> ValidateTokenizedCard(CreditCardDetails creditCard, string cvv, string kountSessionId, Account account)
 {
     return Task.FromResult(new BasePaymentResponse { IsSuccessful = true });
 }
Example #26
0
        public override async void BaseStart()
        {
            using (this.Services().Message.ShowProgress())
            {
                IsPayPalAccountLinked = _accountService.CurrentAccount.IsPayPalAccountLinked;

                CreditCardCompanies = new List <ListItem>
                {
                    new ListItem {
                        Display = Visa, Id = 0
                    },
                    new ListItem {
                        Display = MasterCard, Id = 1
                    },
                    new ListItem {
                        Display = Amex, Id = 2
                    },
                    new ListItem {
                        Display = VisaElectron, Id = 3
                    },
                    new ListItem {
                        Display = Discover, Id = 4
                    },
                    new ListItem {
                        Display = CreditCardGeneric, Id = 5
                    }
                };

                ExpirationYears = new List <ListItem>();
                for (var i = 0; i <= 15; i++)
                {
                    ExpirationYears.Add(new ListItem {
                        Id = DateTime.Today.AddYears(i).Year, Display = DateTime.Today.AddYears(i).Year.ToString(CultureInfo.InvariantCulture)
                    });
                }

                ExpirationMonths = new List <ListItem>
                {
                    new ListItem {
                        Display = this.Services().Localize["January"], Id = 1
                    },
                    new ListItem {
                        Display = this.Services().Localize["February"], Id = 2
                    },
                    new ListItem {
                        Display = this.Services().Localize["March"], Id = 3
                    },
                    new ListItem {
                        Display = this.Services().Localize["April"], Id = 4
                    },
                    new ListItem {
                        Display = this.Services().Localize["May"], Id = 5
                    },
                    new ListItem {
                        Display = this.Services().Localize["June"], Id = 6
                    },
                    new ListItem {
                        Display = this.Services().Localize["July"], Id = 7
                    },
                    new ListItem {
                        Display = this.Services().Localize["August"], Id = 8
                    },
                    new ListItem {
                        Display = this.Services().Localize["September"], Id = 9
                    },
                    new ListItem {
                        Display = this.Services().Localize["October"], Id = 10
                    },
                    new ListItem {
                        Display = this.Services().Localize["November"], Id = 11
                    },
                    new ListItem {
                        Display = this.Services().Localize["December"], Id = 12
                    }
                };

                Data = new CreditCardInfos();
                CreditCardDetails creditCard = null;

                try
                {
                    var creditCards = (await _accountService.GetCreditCards()).ToList();
                    _numberOfCreditCards = creditCards.Count;

                    if (!_isAddingNew)
                    {
                        creditCard = _creditCardId == default(Guid)
                                                        ? await _accountService.GetDefaultCreditCard()
                                                        : creditCards.First(c => c.CreditCardId == _creditCardId);
                    }
                }
                catch (Exception ex)
                {
                    Logger.LogMessage(ex.Message, ex.ToString());
                    this.Services().Message.ShowMessage(this.Services().Localize["Error"], this.Services().Localize["PaymentLoadError"]);
                }

                if (creditCard == null)
                {
                    IsAddingNewCard = true;
                    Data.NameOnCard = _accountService.CurrentAccount.Name;
                    Data.Label      = string.Empty;

                    var id = CreditCardCompanies.Find(x => x.Display == CreditCardGeneric).Id;
                    CreditCardType = (int)id;

                                        #if DEBUG
                    if (PaymentSettings.PaymentMode == PaymentMethod.Braintree)
                    {
                        CreditCardNumber = DummyVisa.BraintreeNumber;
                    }
                    else
                    {
                        CreditCardNumber = DummyVisa.CmtNumber;
                    }

                    Data.CCV     = DummyVisa.AvcCvvCvv2 + "";
                    Data.ZipCode = DummyVisa.ZipCode;

                    ExpirationMonth = DummyVisa.ExpirationDate.Month;
                    ExpirationYear  = DummyVisa.ExpirationDate.Year;

                    Data.StreetName   = DummyVisa.StreetName;
                    Data.StreetNumber = DummyVisa.StreetNumber;
                                        #endif

                    Data.Email   = _accountService.CurrentAccount.Email;
                    Data.Phone   = _accountService.CurrentAccount.Settings.Phone;
                    Data.Country = _accountService.CurrentAccount.Settings.Country;
                }
                else
                {
                    IsAddingNewCard = false;

                    Data.CreditCardId      = creditCard.CreditCardId;
                    Data.CardNumber        = "************" + creditCard.Last4Digits;
                    Data.NameOnCard        = creditCard.NameOnCard;
                    Data.CreditCardCompany = creditCard.CreditCardCompany;
                    Data.Label             = creditCard.Label;
                    Data.ZipCode           = creditCard.ZipCode;

                    Data.Email        = creditCard.Email;
                    Data.Phone        = creditCard.Phone;
                    Data.Country      = creditCard.Country;
                    Data.StreetName   = creditCard.StreetName;
                    Data.StreetNumber = creditCard.StreetNumber;

                    ExpirationMonth = creditCard.ExpirationMonth.HasValue() ? int.Parse(creditCard.ExpirationMonth) : (int?)null;
                    ExpirationYear  = creditCard.ExpirationYear.HasValue() ? int.Parse(creditCard.ExpirationYear) : (int?)null;

                    var id = CreditCardCompanies.Find(x => x.Display == creditCard.CreditCardCompany).Id;
                    if (id != null)
                    {
                        CreditCardType = (int)id;
                    }

                    _originalLabel = creditCard.Label;
                }

                RaisePropertyChanged(() => Data);
                RaisePropertyChanged(() => CreditCardNumber);
                RaisePropertyChanged(() => CanDeleteCreditCard);
                RaisePropertyChanged(() => IsPayPalOnly);
                RaisePropertyChanged(() => CanSetCreditCardAsDefault);
                RaisePropertyChanged(() => SelectedCountryCode);
                RaisePropertyChanged(() => Phone);

                if (_hasPaymentToSettle)
                {
                    return;
                }

                if (!_isFromCreditCardListView)
                {
                    await GoToOverduePayment();
                }
            }
        }
 //DeepCopy
 public void DeepCopy(CreditCardDetails from)
 {
     CCNumber = from.CCNumber ;
     ExpirationDate = from.ExpirationDate ;
     Rating = from.Rating ;
 }
        public void PayCreditCard(CreditCardDetails ccDetails)
        {
            this.PaymentMgr.EnterCreditCardNumberInfo(
                ccDetails.Number.ToString(),
                ccDetails.CvvCode,
                ExpirationMonthEntry[ccDetails.ExpirationDate.Month],
                ccDetails.ExpirationDate.Year.ToString());

            this.PaymentMgr.EnterCreditCardNameCountryType(
                ccDetails.CardholderName,
                ccDetails.Country,
                ccDetails.Type.ToString());

            this.PaymentMgr.EnterCreditCardAddressInfo(
                ccDetails.Line1,
                ccDetails.Line2,
                ccDetails.City,
                ccDetails.State,
                ccDetails.PostalCode,
                PaymentManager.DefaultPaymentInfo.BillingPhone);
        }
Example #29
0
 // throws exception if payment is rejected
 public void ProcessPayment(string merchantId, CreditCardDetails cardInfo, decimal amount)
 {
 }
        public static SendReceipt GetSendReceiptCommand(OrderDetail order, AccountDetail account, int?orderId, string vehicleNumber, DriverInfos driverInfos,
                                                        double?fare, double?toll, double?extra, double?surcharge, double?bookingFees, double?tip, double?tax, OrderPaymentDetail orderPayment = null, double?amountSavedByPromotion = null,
                                                        PromotionUsageDetail promotionUsed = null, CreditCardDetails creditCard = null, SendReceipt.CmtRideLinqReceiptFields cmtRideLinqFields = null)
        {
            var command = new SendReceipt
            {
                Id                 = Guid.NewGuid(),
                OrderId            = order.Id,
                EmailAddress       = account.Email,
                IBSOrderId         = orderId ?? 0,
                PickupDate         = order.PickupDate,
                UtcDropOffDate     = order.DropOffDate,
                VehicleNumber      = vehicleNumber,
                DriverInfos        = driverInfos,
                Fare               = fare.GetValueOrDefault(),
                Extra              = extra.GetValueOrDefault(),
                Tip                = tip.GetValueOrDefault(),
                Tax                = tax.GetValueOrDefault(),
                Toll               = toll.GetValueOrDefault(),
                Surcharge          = surcharge.GetValueOrDefault(),
                BookingFees        = bookingFees.GetValueOrDefault(),
                PickupAddress      = order.PickupAddress,
                DropOffAddress     = order.DropOffAddress,
                ClientLanguageCode = order.ClientLanguageCode,
                CmtRideLinqFields  = cmtRideLinqFields
            };

            if (promotionUsed != null)
            {
                command.AmountSavedByPromotion = amountSavedByPromotion.GetValueOrDefault();
                command.PromoCode          = promotionUsed.Code;
                command.PromoDiscountType  = promotionUsed.DiscountType;
                command.PromoDiscountValue = promotionUsed.DiscountValue;
            }

            if (orderPayment != null)
            {
                command.PaymentInfo = new SendReceipt.Payment(
                    orderPayment.Amount,
                    orderPayment.TransactionId,
                    orderPayment.AuthorizationCode,
                    orderPayment.Type == PaymentType.CreditCard ? "Credit Card" : orderPayment.Type.ToString());

                if ((orderPayment.CardToken.HasValue()) && (creditCard != null))
                {
                    command.PaymentInfo.Last4Digits     = creditCard.Last4Digits;
                    command.PaymentInfo.Company         = creditCard.CreditCardCompany;
                    command.PaymentInfo.NameOnCard      = creditCard.NameOnCard;
                    command.PaymentInfo.ExpirationMonth = creditCard.ExpirationMonth;
                    command.PaymentInfo.ExpirationYear  = creditCard.ExpirationYear;
                }
            }
            return(command);
        }
Example #31
0
 //DeepCopy
 public void DeepCopy(CreditCardDetails from)
 {
     CCNumber       = from.CCNumber;
     ExpirationDate = from.ExpirationDate;
     Rating         = from.Rating;
 }
 public bool Process(CreditCardDetails creditCardDetails)
 {
     return(!accountInTheRedNumber.Contains(creditCardDetails.Number));
 }
 public static void UpdateCreditCardDetails(HttpContext context, long cardId, Boolean defaultCard, CreditCardDetails creditCardDetails)
 {
     userService.UpdateCreditCard(cardId, creditCardDetails);
     if (defaultCard)
     {
         AssignDefaultCardToUser(context, cardId, creditCardDetails.cardNumber);
     }
     else
     {
         DesAssignDefaultCardToUser(context, cardId);
     }
 }
        public void PayMoney(PaymentMethod method)
        {
            Assert.IsTrue(OnCheckoutPage());
            Assert.AreEqual(CurrentEmail, CheckoutVerifyValue(CheckoutVerifyColumn.Email, 1));

            switch (method)
            {
                case PaymentMethod.Check:
                    this.SelectPaymentMethod(PaymentMethod.Check);
                    break;

                case PaymentMethod.CreditCard:
                    this.SelectPaymentMethod(PaymentMethod.CreditCard);

                    CreditCardDetails ccDetails = new CreditCardDetails()
                    {
                        Number = PaymentManager.DefaultPaymentInfo.CCNumber,
                        ExpirationDate = DateTime.Parse("12/" + PaymentManager.DefaultPaymentInfo.ExpirationYear),//PaymentManager.DefaultPaymentInfo.ExpirationMonth is "12 - Dec"
                        CardholderName = PaymentManager.DefaultPaymentInfo.HolderName,
                        CvvCode = PaymentManager.DefaultPaymentInfo.CVV,
                        Country = PaymentManager.DefaultPaymentInfo.HolderCountry,
                        Line1 = PaymentManager.DefaultPaymentInfo.BillingAddressLineOne,
                        Line2 = null,
                        City = PaymentManager.DefaultPaymentInfo.BillingCity,
                        State = PaymentManager.DefaultPaymentInfo.BillingState,
                        PostalCode = PaymentManager.DefaultPaymentInfo.ZipCode,
                        Type = PaymentManager.CCType.Visa
                    };
                    PayCreditCard(ccDetails);
                    break;

                default:
                    break;
            }
        }
Example #35
0
        private void SendTripReceipt(Guid orderId, decimal meter, decimal tip, decimal tax, decimal amountSavedByPromotion = 0m,
                                     decimal toll = 0m, decimal extra = 0m, decimal surcharge = 0m, decimal bookingFees = 0m, SendReceipt.CmtRideLinqReceiptFields cmtRideLinqFields = null)
        {
            using (var context = _contextFactory.Invoke())
            {
                var order       = _orderDao.FindById(orderId);
                var orderStatus = _orderDao.FindOrderStatusById(orderId);

                if (orderStatus != null)
                {
                    var account      = context.Find <AccountDetail>(orderStatus.AccountId);
                    var orderPayment = context.Set <OrderPaymentDetail>().FirstOrDefault(p => p.OrderId == orderStatus.OrderId && p.IsCompleted);

                    CreditCardDetails card = null;
                    if (orderPayment != null && orderPayment.CardToken.HasValue())
                    {
                        card = _creditCardDao.FindByToken(orderPayment.CardToken);
                    }

                    // Payment was handled by app, send receipt
                    if (orderStatus.IsPrepaid && orderPayment != null)
                    {
                        // Order was prepaid, all the good amounts are in OrderPaymentDetail
                        meter = orderPayment.Meter;
                        tip   = orderPayment.Tip;
                        tax   = orderPayment.Tax;
                    }

                    var promoUsed  = _promotionDao.FindByOrderId(orderId);
                    var ibsOrderId = order.IBSOrderId;


                    decimal fare;
                    if (order.IsManualRideLinq)
                    {
                        var manualRideLinqDetail = context.Find <OrderManualRideLinqDetail>(orderStatus.OrderId);
                        ibsOrderId = manualRideLinqDetail.TripId;

                        fare = meter;
                    }
                    else
                    {
                        if (cmtRideLinqFields != null)
                        {
                            fare = meter;
                        }
                        else
                        {
                            // Meter also contains toll and surcharge, to send an accurate receipt, we need to remove both toll and surcharge.
                            fare = orderPayment.SelectOrDefault(payment => payment.Meter - payment.Toll - surcharge, meter - toll - surcharge);
                        }
                    }

                    if (cmtRideLinqFields != null && cmtRideLinqFields.DriverId.HasValue())
                    {
                        orderStatus.DriverInfos.DriverId = cmtRideLinqFields.DriverId;
                    }

                    var command = SendReceiptCommandBuilder.GetSendReceiptCommand(
                        order,
                        account,
                        ibsOrderId,
                        orderStatus.VehicleNumber,
                        orderStatus.DriverInfos,
                        Convert.ToDouble(fare),
                        Convert.ToDouble(toll),
                        Convert.ToDouble(extra),
                        Convert.ToDouble(surcharge),
                        Convert.ToDouble(bookingFees),
                        orderPayment.SelectOrDefault(payment => Convert.ToDouble(payment.Tip), Convert.ToDouble(tip)),
                        Convert.ToDouble(tax),
                        orderPayment,
                        Convert.ToDouble(amountSavedByPromotion),
                        promoUsed,
                        card,
                        cmtRideLinqFields);

                    _commandBus.Send(command);
                }
            }
        }