/// <summary> /// Changes the given subscription to use the new plan /// </summary> /// <param name="subscription"></param> /// <param name="newPlan"></param> public static void ChangeSubscriptionPlan(IStripeUser user, IStripeSubscription subscription, IStripeSubscriptionPlan newPlan) { StripeSubscriptionUpdateOptions options = new StripeSubscriptionUpdateOptions() { PlanId = newPlan.PaymentSystemId }; var subscriptionService = new StripeSubscriptionService(); subscriptionService.Update(user.PaymentSystemId, subscription.PaymentSystemId, options); System.Diagnostics.Trace.TraceInformation("Changed subscription for customer in stripe: '{0}' with new subscription id '{1}", user.Email, subscription.PaymentSystemId); }
/// <summary> /// Unsubscribes the given subscription /// NOTE: Save changes on the underlying context for the model after calling this method /// </summary> /// <param name="subscription"></param> public static void Unsubscribe(IStripeUser user, IStripeSubscription subscription) { if (string.IsNullOrEmpty(subscription.PaymentSystemId) || string.IsNullOrEmpty(user.PaymentSystemId)) { return; } var subscriptionService = new StripeSubscriptionService(); subscriptionService.Cancel(subscription.PaymentSystemId, user.PaymentSystemId); subscription.PaymentSystemId = null; System.Diagnostics.Trace.TraceInformation("Unsuscribed customer in stripe: '{0}' with new subscription id '{1}", user.Email, subscription.PaymentSystemId); }
/// <summary> /// Subscribes the given user to the given plan, using the payment information already in stripe for that user /// NOTE: Save changes on the underlying context for the model after calling this method /// </summary> /// <param name="subscription"></param> public static void Subscribe(IStripeUser user, IStripeSubscription subscription, IStripeSubscriptionPlan plan) { if (!string.IsNullOrEmpty(subscription.PaymentSystemId)) { return; } var subscriptionService = new StripeSubscriptionService(); StripeSubscription stripeSubscription = subscriptionService.Create(user.PaymentSystemId, plan.PaymentSystemId); subscription.PaymentSystemId = stripeSubscription.Id; System.Diagnostics.Trace.TraceInformation("Subscribed customer in stripe: '{0}' with new subscription id '{1}", user.Email, subscription.PaymentSystemId); }
/// <summary> /// Unsubscribes the given subscription /// NOTE: Save changes on the underlying context for the model after calling this method /// </summary> /// <param name="subscription"></param> public static void Unsubscribe(IStripeUser user, IStripeSubscription subscription) { if (string.IsNullOrEmpty(subscription.PaymentSystemId) || string.IsNullOrEmpty(user.PaymentSystemId)) return; var subscriptionService = new StripeSubscriptionService(); subscriptionService.Cancel(subscription.PaymentSystemId, user.PaymentSystemId); subscription.PaymentSystemId = null; System.Diagnostics.Trace.TraceInformation("Unsuscribed customer in stripe: '{0}' with new subscription id '{1}", user.Email, subscription.PaymentSystemId); }
/// <summary> /// Subscribes the given user to the given plan, using the payment information already in stripe for that user /// NOTE: Save changes on the underlying context for the model after calling this method /// </summary> /// <param name="subscription"></param> public static void Subscribe(IStripeUser user, IStripeSubscription subscription, IStripeSubscriptionPlan plan) { if (!string.IsNullOrEmpty(subscription.PaymentSystemId)) return; var subscriptionService = new StripeSubscriptionService(); StripeSubscription stripeSubscription = subscriptionService.Create(user.PaymentSystemId, plan.PaymentSystemId); subscription.PaymentSystemId = stripeSubscription.Id; System.Diagnostics.Trace.TraceInformation("Subscribed customer in stripe: '{0}' with new subscription id '{1}", user.Email, subscription.PaymentSystemId); }