Автоматическое создание бесплатной пробной версии кассы Stripe

Мы используем Stripe для оформления заказа, и у нас включена бесплатная пробная версия. Поэтому, когда пользователь заходит на сайт, чтобы включить бесплатную пробную версию, он просто вводит свой адрес электронной почты при оформлении заказа.

Что я хотел бы сделать, так это связать начало бесплатной пробной версии с созданием учетной записи на моем сайте. Поскольку я получаю электронную почту пользователя при создании учетной записи, я хотел бы создать бесплатную пробную версию программно и убрать этот шаг. Возможно ли это?

Вот мой код для создания сессии оформления заказа.

def create_checkout_session(request, app_type):
    subscription_plan_duration = SubscriptionPlanDuration.objects.filter().first()

    user_subscription = UserSubscription.objects.create(
                            subscription_plan_duration_id = subscription_plan_duration.id,
                            user_id = request.user.id,
                            app_type = app_type,
                            is_active = False #True - change for 3.
                        )
    
    discount_coupon = DiscountCoupon.objects.filter(subscription_plan_duration_id = subscription_plan_duration.id).first()

    checkout_session = stripe.checkout.Session.create(
        line_items=[
                {
                    'price': subscription_plan_duration.price_id,
                    'quantity': 1,
                },
            ],
        metadata={ 
            "user_subscription_id": user_subscription.id
        },
        mode="subscription",
        # discounts=[{
        #     'coupon': discount_coupon.coupon_id,
        # }],
        subscription_data={
            "trial_period_days": 30,
            "trial_settings": {
                "end_behavior": {
                    "missing_payment_method": "cancel"
                }
            }
        },
        payment_method_collection="if_required",
        allow_promotion_codes=True,
        success_url=settings.APP_END_POINT + '/stripe/success',
        cancel_url=settings.APP_END_POINT + '/stripe/cancel-subscription/' + app_type
    )

    return redirect(checkout_session.url)

Если вы не хотите, чтобы покупатель проходил через сессию оформления заказа, вы можете создать подписку через API: https://docs.stripe.com/api/subscriptions/create

Обратите внимание, что у вас уже должен быть создан клиент, поскольку это обязательное поле в https://docs.stripe.com/api/subscriptions/create#create_subscription-customer

Вернуться на верх