Настройка интервала выставления счетов за подписку Stripe

Я хочу изменить биллинговый интервал подписки в Stripe, чтобы включить одноразовое бесплатное продление на 3 месяца, когда пользователь подписывается на продукт. Обычный биллинговый интервал для плана составляет 1 год, в результате чего с учетом продления биллинговый период составит 15 месяцев. Однако по истечении этого продленного периода следует вернуться к первоначальному интервалу выставления счетов в 1 год. Это не пробный период; это бесплатное 3-месячное продление, за которое я хочу сразу же взимать плату с пользователя.

Ниже приведена моя текущая реализация представления сессии оформления заказа, и я управляю всеми изменениями с помощью веб-хука Stripe

`class CreateCheckoutSessionView(View): def post(self, request, *args, **kwrgs): ...

    checkout_session = stripe.checkout.Session.create(
            success_url=protocol + domain + reverse('payment_success')+'?session_id={CHECKOUT_SESSION_ID}',
            cancel_url = protocol + domain + reverse('payment_failed'),
            payment_method_types=['card'],
            mode='subscription',
            customer=customer.id,
            line_items=[{
                'price': price_id,
                'quantity': 1,
                'metadata': {
                }
            }],
            allow_promotion_codes = True,
            subscription_data={
                'default_tax_rates': [STRIP_TAX_ID],
            },
        )
    return redirect(checkout_session.url, code=303)

`

Вы можете создать сеанс оформления для годовой подписки. Затем, когда вы получите событие checkout.session.completed webhook, сделайте дополнительный вызов API, чтобы обновить подписку и добавить бесплатную пробную версию на 3 месяца.

Таким образом:

  • Пользователь должен внести предоплату
  • Первый биллинговый цикл рассчитан на 15 месяцев (1 год + 3 месяца)
  • Второй биллинговый цикл будет рассчитан на 12 месяцев
Вернуться на верх