Создание расписаний подписки с помощью Stripe: методы и примеры кода

Создание расписания подписки с помощью Stripe

Расписания подписки в Stripe позволяют компаниям настраивать индивидуальные планы выставления счетов для своих клиентов. С помощью графиков подписки вы можете определить частоту, продолжительность и стоимость регулярных платежей, обеспечивая большую гибкость и контроль над вашей бизнес-моделью на основе подписки. В этой статье мы рассмотрим несколько методов создания расписания подписки с помощью Stripe API, а также примеры кода.

Метод 1: использование Stripe Billing API

import stripe
stripe.api_key = 'YOUR_STRIPE_SECRET_KEY'
def create_subscription_schedule(plan_id, start_date, interval, interval_count):
    schedule = stripe.SubscriptionSchedule.create(
        customer='CUSTOMER_ID',
        start_date=start_date,
        end_behavior='cancel',
        phases=[{
            'plans': [{
                'price': plan_id,
                'quantity': 1,
            }],
            'iterations': interval_count,
            'interval': interval,
        }],
    )

    return schedule.id
# Example usage
plan_id = 'YOUR_PLAN_ID'
start_date = 1645545600  # UNIX timestamp for the start date (e.g., February 23, 2022)
interval = 'month'
interval_count = 3
schedule_id = create_subscription_schedule(plan_id, start_date, interval, interval_count)
print(f'Subscription schedule created with ID: {schedule_id}')

Метод 2. Использование интерфейса командной строки Stripe

  1. Установите интерфейс командной строки Stripe, следуя инструкциям в документации Stripe.
  2. Откройте интерфейс командной строки и выполните аутентификацию с помощью своей учетной записи Stripe:
    stripe login
  3. Используйте команду create, чтобы создать расписание подписки:
    stripe subscription-schedules create \
     --customer CUSTOMER_ID \
     --start-date 2022-02-23 \
     --phases plans[0].price=YOUR_PLAN_ID,iterations=3,interval=month \
     --end-behavior cancel

Метод 3. Использование Stripe SDK (например, Node.js)

const stripe = require('stripe')('YOUR_STRIPE_SECRET_KEY');
async function createSubscriptionSchedule(planId, startDate, interval, intervalCount) {
  const schedule = await stripe.subscriptionSchedules.create({
    customer: 'CUSTOMER_ID',
    start_date: startDate,
    end_behavior: 'cancel',
    phases: [{
      plans: [{
        price: planId,
        quantity: 1,
      }],
      iterations: intervalCount,
      interval,
    }],
  });
  return schedule.id;
}
// Example usage
const planId = 'YOUR_PLAN_ID';
const startDate = Math.floor(new Date('2022-02-23').getTime() / 1000);
const interval = 'month';
const intervalCount = 3;
createSubscriptionSchedule(planId, startDate, interval, intervalCount)
  .then(scheduleId => console.log(`Subscription schedule created with ID: ${scheduleId}`));