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