Beispiel #1
0
        private OrderPaymentModel MapOrderPaymentModel(Order order, Painting painting)
        {
            var model = new OrderPaymentModel
            {
                PaintingId = painting.PaintingId,
                PaintingTitle = painting.Title,
                PaintingThumbnail = painting.Thumbnail,
                FormattedPaintingPrice = order.Total.ToString("C"),
                Email = order.Email,
                FirstName = order.FirstName,
                LastName = order.LastName,
                Address1 = order.Street,
                Address2 = order.Street2,
                City = order.City,
                State = order.State,
                PhoneNumber = order.Phone
            };

            return model;
        }
Beispiel #2
0
        public ActionResult Payment(int orderId, OrderPaymentModel model)
        {
            if (ModelState.IsValid)
            {
                Order order = OrderService.GetOrder(orderId);

                AppendOrderDetails(model, ref order);

                var chargeService = new StripeChargeService();

                StripeCharge stripeCharge = chargeService.Create(
                    new StripeChargeCreateOptions
                    {
                        AmountInCents = (int)(order.Total * 100), // in cents
                        Currency = "usd",
                        TokenId = order.StripeToken
                    });

                if (stripeCharge.Paid.HasValue && stripeCharge.Paid.Value)
                {
                    string confirmationCode = OrderService.GenerateConfirmation();

                    order.ConfirmationCode = confirmationCode;
                    order = OrderService.Scrub(order);
                    order = OrderService.CompleteOrder(order);

                    Utilities.SendOrderEmail(order);
                    Utilities.SendConfirmationEmail(order);

                    return RedirectToAction("Confirmation", new { orderId = order.OrderId, confirmation = order.ConfirmationCode });
                }
                else
                {
                    order.OrderState = Constants.OrderState.ERROR;
                    order.Message = "Card processing error. Please try again.";
                    OrderService.SaveOrder(order);
                }
            }

            return View(model);
        }
Beispiel #3
0
 private void AppendOrderDetails(OrderPaymentModel model, ref Order order)
 {
     order.Email = model.Email;
     order.FirstName = model.FirstName;
     order.LastName = model.LastName;
     order.Street = model.Address1;
     order.Street2 = model.Address2;
     order.City = model.City;
     order.State = model.State;
     order.ZipCode = model.Zipcode;
     order.Phone = model.PhoneNumber;
     order.StripeToken = model.StripeToken;
 }