Merge pull request #24600 from CodeAnimal/stripe-subscription

[stripe] Add prorate option to subscription creation options
This commit is contained in:
Nathan Shively-Sanders
2018-03-29 06:04:26 -07:00
committed by GitHub
2 changed files with 13 additions and 2 deletions

View File

@@ -4470,6 +4470,12 @@ declare namespace Stripe {
* with month or year intervals, the day of the month for subsequent invoices.
*/
billing_cycle_anchor?: number;
/**
* Boolean (default true). Use with a billing_cycle_anchor timestamp to determine whether the customer will be invoiced a prorated amount until
* the anchor date. If false, the anchor period will be free (similar to a trial).
*/
prorate?: boolean;
}
interface ISubscriptionCreationOptions extends ISubscriptionCustCreationOptions {
@@ -4556,6 +4562,11 @@ declare namespace Stripe {
* String, unchanged (default) or now. This allows you to reset the billing cycle of a subscription.
*/
billing_cycle_anchor?: "unchanged" | "now";
/**
* Boolean indicating whether this subscription should cancel at the end of the current period.
*/
cancel_at_period_end?: boolean;
}
interface ISubscriptionCancellationOptions extends IDataOptions {

View File

@@ -252,14 +252,14 @@ stripe.customers.create({
customer.cards.del("card_17xMvXBoqMA9o2xkq6W5gamx").then(function (confirmation) {});
customer.subscriptions.create({ items: [{ plan: "gold" }], trial_period_days: 7 }).then(function (subscription) { });
customer.subscriptions.create({ items: [{ plan: "gold" }], trial_end: "now", billing_cycle_anchor: 1516881177 }).then(function (subscription) { });
customer.subscriptions.create({ items: [{ plan: "gold" }], trial_end: "now", billing_cycle_anchor: 1516881177, prorate: true }).then(function (subscription) { });
customer.subscriptions.create({ items: [{ plan: "gold" }], trial_end: 1516881177, billing: "send_invoice", days_until_due: 7 }).then(function (subscription) { });
customer.subscriptions.create({ items: [{ plan: "gold" }], billing: "charge_automatically" }).then(function (subscription) { });
customer.subscriptions.retrieve("sub_8Eluur5KoIKxuy").then(function (subscription) {
customer.subscriptions.update("sub_8Eluur5KoIKxuy", { items: [{ id: subscription.items.data[0].id, plan: "silver" }] }).then(function (subscription) { });
});
customer.subscriptions.update("sub_8Eluur5KoIKxuy", { trial_end: "now", billing_cycle_anchor: "now" });
customer.subscriptions.update("sub_8Eluur5KoIKxuy", { trial_end: 1516881177, billing: "send_invoice", days_until_due: 7, billing_cycle_anchor: "unchanged" });
customer.subscriptions.update("sub_8Eluur5KoIKxuy", { trial_end: 1516881177, billing: "send_invoice", days_until_due: 7, billing_cycle_anchor: "unchanged", cancel_at_period_end: false });
customer.subscriptions.list().then(function (subscriptions) { });
customer.subscriptions.del("sub_8Eluur5KoIKxuy").then(function (subscription) { });
customer.subscriptions.deleteDiscount("sub_8Eluur5KoIKxuy").then(function (confirmation) { });