Exemple #1
0
        private void ChargeCard(PaymentDetails paymentDetails, Cart cart)
        {
            using (var paymentGateway = new PaymentGateway())
            {
                try
                {
                    paymentGateway.Credentials    = "account credentials";
                    paymentGateway.CardNumber     = paymentDetails.CreditCardNumber;
                    paymentGateway.ExpiresMonth   = paymentDetails.ExpiresMonth;
                    paymentGateway.ExpiresYear    = paymentDetails.ExpiresYear;
                    paymentGateway.NameOnCard     = paymentDetails.CardholderName;
                    paymentGateway.AmountToCharge = cart.TotalAmount;

                    paymentGateway.Charge();
                }
                catch (AvsMismatchException ex)
                {
                    throw new OrderException("The card gateway rejected the card based on the address provided.", ex);
                }
                catch (Exception ex)
                {
                    throw new OrderException("There was a problem with your card.", ex);
                }
            }
        }
Exemple #2
0
        //Cobra online, con tarjeta y en efectivo -> Aplicar soluciones
        public void Checkout(Cart cart, PaymentDetails paymentDetails, bool notifyCustomer)
        {
            if (paymentDetails.PaymentMethod == PaymentMethod.CreditCard)
            {
                ChargeCard(paymentDetails, cart);
            }

            ReserveInventory(cart);

            if (notifyCustomer)
            {
                NotifyCustomer(cart);
            }
        }
Exemple #3
0
 public OrderOnline(ILoggerWrapper loggerWrapper, PaymentDetails paymentDetails)
     : base(new PaymentGatewayWrapper(), new PaymentDetails())
 {
     this.loggerWrapper  = loggerWrapper;
     this.paymentDetails = paymentDetails;
 }
Exemple #4
0
 public OrderByCreditCard(IPaymentGatewayWrapper paymentGatewayWrapper, PaymentDetails paymentDetails) : base(new InventorySystemWrapper())
 {
     this.paymentGatewayWrapper = paymentGatewayWrapper;
     this.paymentDetails        = paymentDetails;
 }