public ActionResult Charge(string stripeEmail, string stripeToken) { //string secretKey = ConfigurationManager.AppSettings["Stripe:secretKey"]; string secretKey = "sk_test_e3ssfSIQhhvg7DtlMpHLxMKm"; StripeConfiguration.SetApiKey(secretKey); Stripe.CustomerCreateOptions myCustomer = new Stripe.CustomerCreateOptions(); myCustomer.Email = stripeEmail; myCustomer.Source = stripeToken; var customerService = new Stripe.CustomerService(); Stripe.Customer stripeCustomer = customerService.Create(myCustomer); var options = new Stripe.ChargeCreateOptions { Amount = 1000, Currency = "USD", Description = "Buying 10 rubber ducks", Source = stripeToken, ReceiptEmail = stripeEmail }; //and Create Method of this object is doing the payment execution. var service = new Stripe.ChargeService(); //Stripe.Charge charge = service.Create(options); return(RedirectToAction(nameof(Index))); }
public Subscription Subscribe(string email, string name, string source, string monthlyPlanId, string overagePlanId) { var customerService = new Stripe.CustomerService(); var customer = customerService.Create(new CustomerCreateOptions { Email = email, Description = name, Source = source }); var subscriptionService = new Stripe.SubscriptionService(); var items = new List <SubscriptionItemOptions> { new SubscriptionItemOptions { Plan = monthlyPlanId }, new SubscriptionItemOptions { Plan = overagePlanId } }; var subscription = subscriptionService.Create(new SubscriptionCreateOptions { Customer = customer.Id, Items = items, }); return(subscription); }
public IActionResult Payment(string stripeToken) { // retriever order from session var order = HttpContext.Session.GetObject <Models.Order>("Order"); // 1. create Stripe customer var customerService = new Stripe.CustomerService(); var charges = new Stripe.ChargeService(); StripeConfiguration.ApiKey = _iconfiguration["Stripe:SecretKey"]; Stripe.Customer customer = customerService.Create(new Stripe.CustomerCreateOptions { Source = stripeToken, Email = User.Identity.Name }); // 2. create Stripe charge var charge = charges.Create(new Stripe.ChargeCreateOptions { Amount = Convert.ToInt32(order.Total * 100), Description = "COMP2084 Beer Store Purchase", Currency = "cad", Customer = customer.Id }); // 3. save a new order to our db _context.Orders.Add(order); _context.SaveChanges(); // 4. save the cart items as new OrderDetails to our db var cartItems = _context.Carts.Where(c => c.CustomerId == HttpContext.Session.GetString("CartUsername")); foreach (var item in cartItems) { var orderDetail = new OrderDetail { OrderId = order.Id, ProductId = item.ProductId, Quantity = item.Quantity, Cost = item.Price }; _context.OrderDetails.Add(orderDetail); } _context.SaveChanges(); // 5. delete the cart items from this order foreach (var item in cartItems) { _context.Carts.Remove(item); } _context.SaveChanges(); // 6. load an order confirmation page return(RedirectToAction("Details", "Orders", new { @id = order.Id })); }
public IActionResult Payment(string stripeEmail, string stripeToken) { //get secret key from configuration and pass to stripe API StripeConfiguration.ApiKey = _iconfiguration.GetSection("Stripe")["SecretKey"]; var cartUsername = User.Identity.Name; var cartItems = _context.Carts.Where(c => c.Username == cartUsername).ToList(); var order = HttpContext.Session.GetObject <Orders>("Order"); //invoke stripe payment attempt var customerService = new Stripe.CustomerService(); var charges = new Stripe.ChargeService(); Stripe.Customer customer = customerService.Create(new Stripe.CustomerCreateOptions { Source = stripeToken, Email = stripeEmail }); var charge = charges.Create(new Stripe.ChargeCreateOptions { Amount = Convert.ToInt32(order.Total * 100), Description = "Sample Charge", Currency = "cad", Customer = customer.Id }); //save the order _context.Orders.Add(order); _context.SaveChanges(); //save the order details foreach (var item in cartItems) { var orderDetail = new OrderDetails { OrderId = order.OrderId, ProductId = item.ProductId, Quantity = item.Quantity, Price = item.Price }; _context.OrderDetails.Add(orderDetail); } _context.SaveChanges(); //empty the cart foreach (var item in cartItems) { _context.Carts.Remove(item); } _context.SaveChanges(); return(RedirectToAction("Details", "Orders", new { id = order.OrderId })); }
public static stripe.Customer GetOrCreateCustomer(this stripe.CustomerService customerService, Core.Domain.Customers.Customer customer, string stripeCustomerId, StripePaymentSettings paymentSettings) { if (!string.IsNullOrEmpty(stripeCustomerId)) { return(customerService.Get(stripeCustomerId)); } else { return(customerService.Create(customer.CreateCustomerOptions(paymentSettings))); } }
public ActionResult Charge(string stripeEmail, string stripeToken, int?Id) { StripeConfiguration.ApiKey = "sk_test_uOveI2SFAXbU4XnnSunDN8kN00Q2y172o5"; var deals = db.Deals; List <Vehicle> vehicles = db.Vehicles.ToList(); foreach (var d in deals) { var v = d.VehicleId; Vehicle vozilo = vehicles.Where(ve => ve.Id == v).First(); //izbereno vozilo var total = vozilo.Price * (d.DateTo.DayOfYear - d.DateFrom.DayOfYear); } var customers = new Stripe.CustomerService(); var charges = new Stripe.ChargeService(); var customer = customers.Create(new Stripe.CustomerCreateOptions { Email = stripeEmail, Source = stripeToken }); Deal deal = new Deal(); int ivona = Convert.ToInt32(Id); Deal deal1 = db.Deals.Where(de => de.Id == Id).First(); Session["price"] = deal1.TotalPrice; long totalStripes = Convert.ToInt64(Session["price"]); deal1.plateno = true; db.SaveChanges(); deal.plateno = true; var charge = charges.Create(new Stripe.ChargeCreateOptions { Amount = totalStripes * 100, Description = "Description for Stripe implmentation", Currency = "mkd", Customer = customer.Id, ReceiptEmail = stripeEmail, Metadata = new Dictionary <string, string> { { "OrderID", deal.Id.ToString() }, { "PostCode", "2300" } } }); return(View()); }
private Stripe.Customer StripeCustomer([FromBody] CustomerOrder order) { var options = new CustomerCreateOptions { Name = order.customer.first_name + " " + order.customer.last_name, Email = order.customer.email, Phone = order.customer.contact_mobile, PreferredLocales = new List <string> { "nb", "en" } }; var service = new CustomerService(); var customer = service.Create(options); return(customer); }
public static Charge StripePaymentsForm(string Email, string stripeToken, string Price) { var customerService = new Stripe.CustomerService(); var chargeService = new Stripe.ChargeService(); var priceConverted = decimal.Parse(Price) * 100; var customer = customerService.Create(new Stripe.CustomerCreateOptions { Email = Email, Source = stripeToken, }); return(chargeService.Create(new Stripe.ChargeCreateOptions { Amount = (long)priceConverted, Description = "Spartan Boosting", Currency = "EUR", Customer = customer.Id })); }
public void Subscribe(StripeChargeRequest req, int userId) { // do a data provider call for AppUser GetById // that will give you the email address var plan = GetById(req.TenantId, req.SubscriptionLevel); var customers = new Stripe.CustomerService(); var customer = customers.Create(new CustomerCreateOptions { SourceToken = req.StripeToken, Email = req.Email, }); var items = new List <SubscriptionItemOption> { new SubscriptionItemOption { PlanId = plan.StripePlanId } }; var options = new SubscriptionCreateOptions { Items = items, CustomerId = customer.Id }; var service = new SubscriptionService(); Subscription subscription = service.Create(options); dataProvider.ExecuteNonQuery( "Subscriptions_Insert", (parameters) => { parameters.AddWithValue("@TenantId", req.TenantId); parameters.AddWithValue("@BusinessId", req.BusinessId); parameters.AddWithValue("@SubscriptionLevel", req.SubscriptionLevel); parameters.AddWithValue("@StripeToken", req.StripeToken); parameters.AddWithValue("@StripeCustomerId", subscription.CustomerId); parameters.AddWithValue("@StripeSubscriptionId", subscription.Id); parameters.AddWithValue("@StartDate", subscription.CurrentPeriodStart); parameters.AddWithValue("@EndDate", subscription.CurrentPeriodEnd); parameters.Add("@Id", SqlDbType.Int).Direction = ParameterDirection.Output; } ); }
public bool CreateCreditCard(CreaditCardCreateViewModel model) { StripeConfiguration.SetApiKey(SETTING.Value.SecretStripe); var customerTMP = _customerRepository.Get(x => x.Deleted == false && x.Id == model.CustomerId); if (customerTMP.StripeId == null || customerTMP.StripeId == "") { var options = new CustomerCreateOptions { Email = customerTMP.Email, Description = "Customer for " + customerTMP.FullName + " " + customerTMP.Email, SourceToken = model.CardId }; var service = new Stripe.CustomerService(); Stripe.Customer customer = service.Create(options); customerTMP.StripeId = customer.Id; _customerRepository.Update(customerTMP); model.CardId = customer.DefaultSourceId; model.Isdefault = true; } else { var optionsCard = new CardCreateOptions { SourceToken = model.CardId }; var serviceCard = new Stripe.CardService(); var card = serviceCard.Create(customerTMP.StripeId, optionsCard); model.CardId = card.Id; } model.Last4DigitsHash = encrypt(model.Last4DigitsHash); var creditCard = _mapper.Map <CreaditCardCreateViewModel, CreditCard>(model); _creditCardRepository.Add(creditCard); _unitOfWork.CommitChanges(); return(true); }
public static Charge RequestCharge(Transactions transactionModel, decimal payAmount, string description, bool isCapture = true) { // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.SetApiKey(SecretKey); // Create a Customer: var customerOptions = new CustomerCreateOptions { SourceToken = transactionModel.PaymentCardToken, //Email = "*****@*****.**", }; var customerService = new Stripe.CustomerService(); Stripe.Customer customer = customerService.Create(customerOptions); string PaidAmountString = ConvertDecimalAmountToZeroDecimal(payAmount); var options = new ChargeCreateOptions { Amount = Convert.ToInt64(PaidAmountString), Currency = transactionModel.Currency, //SourceId = transactionModel.PaymentCardToken, Description = description, //ReceiptEmail = "*****@*****.**", CustomerId = customer.Id, Capture = isCapture, Metadata = new Dictionary <string, string>() { { "order_id", transactionModel.OrderId }, } }; var service = new ChargeService(); Charge charge = service.Create(options); return(charge); }
public ActionResult Charge(StripeChargeModel model) { // 4242424242424242 string errormessage = ""; bool isvalidemail = false; bool isvalidamount = false; HttpResponseMessage responseMessage = new HttpResponseMessage(); try { var addr = new System.Net.Mail.MailAddress(model.Email); bool emailvalid = (addr.Address == model.Email); isvalidemail = true; } catch { errormessage += "invalid email\r\n"; isvalidemail = false; } if (model.Amount == 0) { isvalidamount = false; errormessage += "invalid amount\r\n"; } else { isvalidamount = true; } if (isvalidamount == true && isvalidemail == true) { try { string Name = model.CardHolderName; string CardNumber = model.CardNum; long ExpirationYear = long.Parse(model.Expyear); long ExpirationMonth = long.Parse(model.ExpMonth); string CVV2 = model.CVV; string Buyer_Email = model.Email; int amount = (int)model.Amount; Stripe.StripeConfiguration.SetApiKey("sk_test_KVelkjylnQQPOkrHSSu8gCft00dODAP1ie"); Stripe.CreditCardOptions card = new Stripe.CreditCardOptions(); card.Name = Name; card.Number = CardNumber; card.ExpYear = ExpirationYear; card.ExpMonth = ExpirationMonth; card.AddressLine1 = model.AddressLine1; card.AddressLine2 = model.AddressLine2; card.AddressState = model.AddressCity; card.AddressCountry = model.AddressCountry; card.AddressZip = model.AddressPostcode; card.Cvc = CVV2; // set card to token object and create token Stripe.TokenCreateOptions tokenCreateOption = new Stripe.TokenCreateOptions(); tokenCreateOption.Card = card; Stripe.TokenService tokenService = new Stripe.TokenService(); Stripe.Token token = tokenService.Create(tokenCreateOption); //create customer object then register customer on Stripe Stripe.CustomerCreateOptions customer = new Stripe.CustomerCreateOptions(); customer.Email = Buyer_Email; var custService = new Stripe.CustomerService(); Stripe.Customer stpCustomer = custService.Create(customer); //create credit card charge object with details of charge var options = new Stripe.ChargeCreateOptions { Amount = (int)(amount * 100), // Amount = (int)(model.Amount * 100), // Currency = "gbp", // Description = "Description for test charge", // Source = model.Token Currency = "gbp", ReceiptEmail = Buyer_Email, Source = model.Token, Description = "Description for test charge" }; //and Create Method of this object is doing the payment execution. var service = new Stripe.ChargeService(); Stripe.Charge charge = service.Create(options); // This will do the Payment } return(new HttpStatusCodeResult(HttpStatusCode.OK, "Success")); } catch { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "error : " + errormessage)); } } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "error : " + errormessage)); } }
public ViewResult makePayment(PaymentInformation cardInfo) { try { Stripe.StripeConfiguration.SetApiKey("sk_test_51HqI05B1UsJ4lZg1agboQSE7i0fWn98619xc2FP5NhREH4igqo1AlKTQO8VWMfsQBUs1OlXNBzBkOqORRQP6ZlPf00E2l0QVhL"); Stripe.CreditCardOptions card = new Stripe.CreditCardOptions(); card.Name = cardInfo.CardOwnerFirstName + " " + cardInfo.CardOwnerLastName; card.Number = cardInfo.CardNumber; card.ExpYear = cardInfo.ExpirationYear; card.ExpMonth = cardInfo.ExpirationMonth; card.Cvc = cardInfo.CVV2; Console.WriteLine(TotalPrice.ToString()); Stripe.TokenCreateOptions token = new Stripe.TokenCreateOptions(); token.Card = card; Stripe.TokenService serviceToken = new Stripe.TokenService(); Stripe.Token newToken = serviceToken.Create(token); Stripe.CustomerCreateOptions myCustomer = new Stripe.CustomerCreateOptions(); myCustomer.Email = cardInfo.Buyer_Email; myCustomer.SourceToken = newToken.Id; var customerService = new Stripe.CustomerService(); Stripe.Customer stripeCustomer = customerService.Create(myCustomer); var t = TempData["totalCost"]; int t1 = (int)Math.Round(Convert.ToDouble(t)) - 1; string total; string input_decimal_number = t.ToString(); var regex = new System.Text.RegularExpressions.Regex("(?<=[\\.])[0-9]+"); if (regex.IsMatch(input_decimal_number)) { string decimal_places = regex.Match(input_decimal_number).Value; total = t1.ToString() + decimal_places; } else { total = t1 + "00"; } System.Diagnostics.Trace.WriteLine(t1.ToString()); var options = new Stripe.ChargeCreateOptions { Amount = Convert.ToInt32(total), Currency = "USD", ReceiptEmail = cardInfo.Buyer_Email, CustomerId = stripeCustomer.Id, }; var service = new Stripe.ChargeService(); Stripe.Charge charge = service.Create(options); return(View("Thanks")); } catch (StripeException e) { switch (e.StripeError.ErrorType) { case "card_error": error = (" Error Message: " + e.StripeError.Message); break; case "api_connection_error": break; case "api_error": break; case "authentication_error": break; case "invalid_request_error": break; case "rate_limit_error": break; case "validation_error": break; default: // Unknown Error Type break; } ViewBag.Greeting = error; return(View("Error")); } }
private async void Button_Clicked(object sender, EventArgs e) { try { StripeConfiguration.SetApiKey("sk_test_51H7Lu7KJ3FKVwUnlPU8EUYuDPU0UMWNajFeHpVYzqwLkpKFRk9480iV54ZvAIPy4J0xYlKoN9IQaGMoyhhcaxOgl003Kz8FIdL"); //This are the sample test data use MVVM bindings to send data to the ViewModel Stripe.CreditCardOptions stripcard = new Stripe.CreditCardOptions(); stripcard.Number = cardNumberEntry.Text; stripcard.ExpYear = Convert.ToInt32(expiryDate.Text.Split('/')[1]); stripcard.ExpMonth = Convert.ToInt32(expiryDate.Text.Split('/')[0]); stripcard.Cvc = cvvEntry.Text; //Step 1 : Assign Card to Token Object and create Token Stripe.TokenCreateOptions token = new Stripe.TokenCreateOptions(); token.Card = stripcard; Stripe.TokenService serviceToken = new Stripe.TokenService(); Stripe.Token newToken = serviceToken.Create(token); // Step 2 : Assign Token to the Source var options = new SourceCreateOptions { Type = SourceType.Card, Currency = "usd", Token = newToken.Id }; var service = new SourceService(); Source source = service.Create(options); //Step 3 : Now generate the customer who is doing the payment Stripe.CustomerCreateOptions myCustomer = new Stripe.CustomerCreateOptions() { Name = nameEntry.Text, Email = emailEntry.Text, Description = "Amare Payment", }; var customerService = new Stripe.CustomerService(); Stripe.Customer stripeCustomer = customerService.Create(myCustomer); mycustomer = stripeCustomer.Id; // Not needed //Step 4 : Now Create Charge Options for the customer. var chargeoptions = new Stripe.ChargeCreateOptions { Amount = 100, Currency = "USD", ReceiptEmail = emailEntry.Text, Customer = stripeCustomer.Id, Source = source.Id }; //Step 5 : Perform the payment by Charging the customer with the payment. var service1 = new Stripe.ChargeService(); Stripe.Charge charge = service1.Create(chargeoptions); // This will do the Payment getchargedID = charge.Id; // Not needed await DisplayAlert("Payment", "Payment Success", "Okay"); await Navigation.PopAsync(); } catch (Stripe.StripeException ex) { await DisplayAlert("Payment Error", ex.Message, "Okay"); } }
public Customer Create(CustomerCreateOptions options) { var service = new Stripe.CustomerService(); return(service.Create(options)); }
public PaymentView(DateTime bookingDate, string centerName, string sportName, string courtName, string startingBookingTime, string endingBookingTime, double TotalPaymentAmount) { InitializeComponent(); //startingBookingTime AND endingBookingTime are TimeSpan not DateTime ...... Done var uname = Preferences.Get("UserName", String.Empty); if (String.IsNullOrEmpty(uname)) { username.Text = "Guest"; } else { username.Text = uname; } centername.Text = centerName; courtname.Text = courtName; //bookingdate.Text = bookingDate.Date.ToString(); cvm = new PaymentViewModel(bookingDate); this.BindingContext = cvm; bookingtime.Text = startingBookingTime.ToString() + " - " + endingBookingTime.ToString(); double RoundedTotalPaymentAmount = Math.Round(TotalPaymentAmount, 1, MidpointRounding.ToEven); totalpaymentamount.Text = "RM " + RoundedTotalPaymentAmount.ToString(); string totalp = totalpaymentamount.Text; DateTime s = Convert.ToDateTime(startingBookingTime); DateTime d = Convert.ToDateTime(endingBookingTime); NewEventHandler.Clicked += async(sender, args) => { // if check payment from Moustafa is true, then add booking to firebase try { //StripeConfiguration.SetApiKey("sk_test_51IpayhGP2IgUXM55te5JbGRu14MOp6AU6GORVFhqpOilEOp96ERDzKCi1VN9rDLrOmOEwNPqgOvQuIyaNg8YKfkL00Qoq8a7QX"); StripeConfiguration.SetApiKey("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"); //This are the sample test data use MVVM bindings to send data to the ViewModel Stripe.TokenCardOptions stripcard = new Stripe.TokenCardOptions(); stripcard.Number = cardnumber.Text; stripcard.ExpYear = Int64.Parse(expiryYear.Text); stripcard.ExpMonth = Int64.Parse(expirymonth.Text); stripcard.Cvc = cvv.Text; //stripcard.Cvc = Int64.Parse(cvv.Text); //Step 1 : Assign Card to Token Object and create Token Stripe.TokenCreateOptions token = new Stripe.TokenCreateOptions(); token.Card = stripcard; Stripe.TokenService serviceToken = new Stripe.TokenService(); Stripe.Token newToken = serviceToken.Create(token); // Step 2 : Assign Token to the Source var options = new SourceCreateOptions { Type = SourceType.Card, Currency = "myr", Token = newToken.Id }; var service = new SourceService(); Source source = service.Create(options); //Step 3 : Now generate the customer who is doing the payment Stripe.CustomerCreateOptions myCustomer = new Stripe.CustomerCreateOptions() { Name = "Moustafa", Email = "*****@*****.**", Description = "Customer for [email protected]", }; var customerService = new Stripe.CustomerService(); Stripe.Customer stripeCustomer = customerService.Create(myCustomer); mycustomer = stripeCustomer.Id; // Not needed //Step 4 : Now Create Charge Options for the customer. var chargeoptions = new Stripe.ChargeCreateOptions { //Amount = (Int64.Parse(RoundedTotalPaymentAmount)) * 100, //(int(RoundedTotalPaymentAmount)) //Amount = Convert.ToInt32(RoundedTotalPaymentAmount) * 100, //Amount = (long?)(double.Parse(RoundedTotalPaymentAmount) * 100), Amount = (long?)(double.Parse(totalp) * 100), Currency = "MYR", ReceiptEmail = "*****@*****.**", Customer = stripeCustomer.Id, Source = source.Id }; //Step 5 : Perform the payment by Charging the customer with the payment. var service1 = new Stripe.ChargeService(); Stripe.Charge charge = service1.Create(chargeoptions); // This will do the Payment getchargedID = charge.Id; // Not needed } catch (Exception ex) { UserDialogs.Instance.Alert(ex.Message, null, "ok"); Console.Write("error" + ex.Message); //await Application.Current.MainPage.DisplayAlert("error ", ex.Message, "OK"); } finally { //if (getchargedID != null) if (getchargedID != null) { var acd = new AddBookingData(sportName, courtName, username.Text, centerName, s, d, bookingDate, RoundedTotalPaymentAmount); await acd.AddBookingDataAsync(); UserDialogs.Instance.Alert("Payment Successed", "Success", "Ok"); Xamarin.Forms.Application.Current.MainPage = new MainTabbedView(); //await Application.Current.MainPage.DisplayAlert("Payment Successed ", "Success", "OK"); } else { UserDialogs.Instance.Alert("Something Wrong", "Faild", "OK"); //await Application.Current.MainPage.DisplayAlert("Payment Error ", "faild", "OK"); } } /* * var acd = new AddBookingData(sportName, courtName, username.Text, centerName, s, d, bookingDate, RoundedTotalPaymentAmount); * await acd.AddBookingDataAsync(); * /* * * * //Application.Current.MainPage = new MainTabbedView(); * * //await Navigation.PopModalAsync(); * //await Navigation.PopToRootAsync(); * /* * Navigation.InsertPageBefore(new NewPage(), Navigation.NavigationStack[0]); * await Navigation.PopToRootAsync(); */ }; /* * public void GetCustomerInformationID(object sender, EventArgs e) * { * var service = new CustomerService(); * var customer = service.Get(mycustomer); * var serializedCustomer = JsonConvert.SerializeObject(customer); * // var UserDetails = JsonConvert.DeserializeObject<CustomerRetriveModel>(serializedCustomer); * * } * * * public void GetAllCustomerInformation(object sender, EventArgs e) * { * var service = new CustomerService(); * var options = new CustomerListOptions * { * Limit = 3, * }; * var customers = service.List(options); * var serializedCustomer = JsonConvert.SerializeObject(customers); * } * * * public void GetRefundForSpecificTransaction(object sender, EventArgs e) * { * var refundService = new RefundService(); * var refundOptions = new RefundCreateOptions * { * Charge = getchargedID, * }; * Refund refund = refundService.Create(refundOptions); * refundID = refund.Id; * } * * * public void GetRefundInformation(object sender, EventArgs e) * { * var service = new RefundService(); * var refund = service.Get(refundID); * var serializedCustomer = JsonConvert.SerializeObject(refund); * * } */ /* * * async Task NewEventHandler(object sender, EventArgs e) * { * // if check payment from Moustafa is true, then * * // add booking to firebase * * var acd = new AddBookingData(sportName, courtName, username.Text, centerName, s, d, bookingDate, TotalPaymentAmount); * await acd.AddBookingDataAsync(); * } */ }
public ViewResult makePayment(PaymentInformation cardInfo) { try { Stripe.StripeConfiguration.SetApiKey("sk_test_51HqI05B1UsJ4lZg1agboQSE7i0fWn98619xc2FP5NhREH4igqo1AlKTQO8VWMfsQBUs1OlXNBzBkOqORRQP6ZlPf00E2l0QVhL"); //Create Card Object to create Token Stripe.CreditCardOptions card = new Stripe.CreditCardOptions(); card.Name = cardInfo.CardOwnerFirstName + " " + cardInfo.CardOwnerLastName; card.Number = cardInfo.CardNumber; card.ExpYear = cardInfo.ExpirationYear; card.ExpMonth = cardInfo.ExpirationMonth; card.Cvc = cardInfo.CVV2; //Assign Card to Token Object and create Token Stripe.TokenCreateOptions token = new Stripe.TokenCreateOptions(); token.Card = card; Stripe.TokenService serviceToken = new Stripe.TokenService(); Stripe.Token newToken = serviceToken.Create(token); Stripe.CustomerCreateOptions myCustomer = new Stripe.CustomerCreateOptions(); myCustomer.Email = cardInfo.Buyer_Email; myCustomer.SourceToken = newToken.Id; var customerService = new Stripe.CustomerService(); Stripe.Customer stripeCustomer = customerService.Create(myCustomer); //Create Charge Object with details of Charge var options = new Stripe.ChargeCreateOptions { Amount = Convert.ToInt32(cardInfo.Amount), Currency = "USD", ReceiptEmail = cardInfo.Buyer_Email, CustomerId = stripeCustomer.Id, }; //and Create Method of this object is doing the payment execution. var service = new Stripe.ChargeService(); Stripe.Charge charge = service.Create(options); // This will do the Payment return(View("Thanks")); } catch (StripeException e) { switch (e.StripeError.ErrorType) { case "card_error": //error = ("Code: " + e.StripeError.Code + "; "); error = (" Error Message: " + e.StripeError.Message); break; case "api_connection_error": break; case "api_error": break; case "authentication_error": break; case "invalid_request_error": break; case "rate_limit_error": break; case "validation_error": break; default: // Unknown Error Type break; } ViewBag.Greeting = error; return(View("Error")); } }
private async Task <string> CreateStripeClient(string email, string name, string cardNumber, int month, int year, string cvv) { var optionstoken = new TokenCreateOptions { Card = new TokenCardOptions { Number = cardNumber, ExpMonth = month, ExpYear = year, Cvc = cvv } }; var servicetoken = new Stripe.TokenService(); Token stripetoken = await servicetoken.CreateAsync(optionstoken); var customer = new CustomerCreateOptions { Email = email, Name = name, Source = stripetoken.Id, }; Console.WriteLine(" stripetoken attributes :" + stripetoken); var services = new CustomerService(); var created = services.Create(customer); var option = new PaymentMethodCreateOptions { Type = "card", Card = new PaymentMethodCardOptions { Number = cardNumber, ExpMonth = month, ExpYear = year, Cvc = cvv, }, }; var service = new PaymentMethodService(); var result = service.Create(option); Console.WriteLine(" PaymentMethodService attributes :" + result); var options = new PaymentMethodAttachOptions { Customer = created.Id, }; var method = new PaymentMethodService(); method.Attach( result.Id, options ); if (created.Id == null) { return("Failed"); } else { return(created.Id); } }