public void CreateCharge_Using_Token() { dynamic token = _client.CreateCardToken(_card); dynamic response = _client.CreateChargeWithToken(100M, token.Id); Assert.NotNull(response); Assert.False(response.IsError); Assert.True(response.Paid); }
public ActionResult SubmitPayment(int orderId, CheckoutViewModel model) { var order = db.Orders.SingleOrDefault(o => o.OrderId == orderId); if (order == null) { throw new Exception("Invalid Order"); } order.DeliveryAddress1 = model.DeliveryAddress; order.IsRecurring = false; order.RecurFrequency = RecurFrequency.None; order.ScheduledDeliveryDate = DateTime.Parse($"{model.Day} {model.Time}"); Customer customer = new Customer() { Address1 = model.DeliveryAddress, EmailAddress = model.Email, Phone = model.Phone, FirstName = model.Name.Substring(0, model.Name.IndexOf(' ')), LastName = model.Name.Substring(model.Name.IndexOf(' ') + 1), Orders = new List <Order>() { order } }; db.Customers.Add(customer); db.SaveChanges(); //new StripeClient(db.Store.First().StripeKey) var stripeClient = new StripeClient(db.Store.First().StripePrivateKey.GetDecryptedString(db.Store.First().StripeIV, db.Store.First().StripeKey)); dynamic response = stripeClient.CreateChargeWithToken(order.GrandTotal, model.StripeToken); order.Status = OrderStatus.Paid; db.SaveChanges(); StringBuilder emailBody = new StringBuilder(); emailBody.AppendLine("--Order Details--"); emailBody.AppendLine($"Customer Name: {customer.FirstName} {customer.LastName}"); emailBody.AppendLine($"Phone: {customer.Phone}"); emailBody.AppendLine($"Delivery Address: {order.DeliveryAddress1} {order.DeliveryAddress2} {order.DeliveryAddress3}"); emailBody.AppendLine($"Delivery Time: {order.ScheduledDeliveryDate.Value.ToShortDateString()} {order.ScheduledDeliveryDate.Value.ToShortTimeString()}"); emailBody.AppendLine($"Delivery Charge: ${order.DeliveryCharge}"); foreach (var orderedProducts in order.OrderedProducts) { emailBody.AppendLine($"{orderedProducts.Product.DisplayName} x {orderedProducts.QuantityOrdered} @ ${orderedProducts.Product.BasePrice}"); } emailBody.AppendLine(); emailBody.AppendLine($"Order Total: ${order.GrandTotal}"); var smtpClient = new SmtpClient() { Port = 587, Host = db.Store.First().EmailHost, Credentials = new System.Net.NetworkCredential(db.Store.First().EmailUsername, db.Store.First().EmailPassword.GetDecryptedString(db.Store.First().EmailPasswordIV, db.Store.First().EmailPasswordKey)), }; smtpClient.Send(db.Store.First().OrderConfirmationFromAddress, order.Customer.EmailAddress, $"{db.Store.First().DisplayName} Order Confirmation", emailBody.ToString()); return(View("OrderComplete", model)); }