Настройка интервала выставления счетов за подписку 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 месяцев