public void UpdateSubscription(StripeChargeRequest req) { var newPlan = GetById(req.TenantId, req.SubscriptionLevel); var info = GetByBusinessId(req.BusinessId); var items = new List <SubscriptionItemUpdateOption> { new SubscriptionItemUpdateOption { PlanId = newPlan.StripePlanId } }; var options = new SubscriptionUpdateOptions { Items = items, Prorate = false }; var service = new SubscriptionService(); Subscription subscription = service.Update(info.StripeSubscriptionId, options); dataProvider.ExecuteNonQuery( "Subscriptions_Update", (parameters) => { parameters.AddWithValue("@SubscriptionLevel", req.SubscriptionLevel); parameters.AddWithValue("@StripeSubscriptionId", info.StripeSubscriptionId); parameters.AddWithValue("@BusinessId", req.BusinessId); } ); }
public HttpResponseMessage Update(StripeChargeRequest req) { if (!ModelState.IsValid) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } stripeService.UpdateSubscription(req); return(Request.CreateResponse(HttpStatusCode.OK)); }
public HttpResponseMessage SignUp(StripeChargeRequest request) { if (!ModelState.IsValid) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } //int userId = User.Identity.GetId().Value; int userId = 3; stripeService.Subscribe(request, userId); return(Request.CreateResponse(HttpStatusCode.Created)); }
public void CancelSubscription(StripeChargeRequest req) { var info = GetByBusinessId(req.BusinessId); var service = new SubscriptionService(); Subscription subscription = service.Cancel(info.StripeSubscriptionId, null); dataProvider.ExecuteNonQuery( "Subscriptions_Cancel", (parameters) => { parameters.AddWithValue("@BusinessId", req.BusinessId); } ); }
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 ActionResult <StripeResult> Get([FromBody] StripeChargeRequest request) { StripeConfiguration.ApiKey = StripeApiKey; StripeResult result = new StripeResult(); PaymentIntentService service = new PaymentIntentService(); try { PaymentIntent charge = service.Get(request.Id); result.Data = charge; result.Success = true; } catch (StripeException exception) { result.Success = false; result.Error = _stripeErrorHandler.ErrorHandler(exception); } return(result); }
public IHttpActionResult Charge(StripeChargeRequest request) { var myCharge = new StripeChargeCreateOptions(); // always set these properties myCharge.Amount = request.OrderAmount; myCharge.Currency = "usd"; // set this if you want to myCharge.Description = request.Description; myCharge.SourceTokenOrExistingSourceId = request.Token; var chargeService = new StripeChargeService(); StripeCharge stripeCharge = chargeService.Create(myCharge); if (stripeCharge.Paid) { return(Ok(new { stripeCharge.Amount, stripeCharge.Created, stripeCharge.Currency, stripeCharge.FailureCode, stripeCharge.FailureMessage, stripeCharge.Id, stripeCharge.LiveMode, stripeCharge.Paid, stripeCharge.ReceiptEmail, stripeCharge.StatementDescriptor, stripeCharge.Status })); } else { return(BadRequest("Could not complete transaction")); } }