Stripe Checkout: ошибка подписки с пробной версией и дополнительным платежом (add_invoice_items)

Я пытаюсь продать подписку через Stripe, подписка имеет места. Пользователи могут иметь подписку на 4 места без оплаты. По сути, это будет пробная версия до следующего месяца, но если пользователь решит иметь дополнительное место, он должен немедленно заплатить за это дополнительное место.

так что в основном у меня есть подписка с пробной версией на 30 дней, которая может включать дополнительную оплату на месте

я использую сеанс оформления заказа для настройки подписки, потому что не хочу собирать банковскую информацию пользователя

Что касается дополнительной платы, я нашел предмет add_invoice_items, который, я думаю, позволит мне продать подписку с пробной версией и за дополнительную плату.

проблема в том, что полоса не принимает этот параметр, когда я пытаюсь создать его с помощью сеанса оформления заказа

во всех документах по этому элементу используется прямой метод создания подписки со сбором информации о пользователе и созданием подписки через API вместо оформления заказа.

вот мой код

$session =   $client->checkout->sessions->create([
    'success_url' =>  config('front.public_url').'/payment?stat=ok' ,
    'cancel_url'  =>  config('front.public_url').'/payment?stat=cancel',
    'line_items'  => [
        [
            'price' => $price->id ,
            'quantity' => 1,
        ],
    ],
    'mode' => 'subscription',
    'subscription_data' => [
        'trial_period_days' => 30 ,
        'trial_settings' =>['end_behavior' => ['missing_payment_method' => 'pause']] ,
        'add_invoice_items' => ['price' => $price->id , 'quantity' => 1]
    ],
]);

я получаю эту ошибку:

"message": "Received unknown parameter: subscription_data[add_invoice_items]",

Я не уверен, возможно ли это вообще, или, может быть, я неправильно понял документацию и должен создать отдельный сеанс оформления заказа за дополнительную плату

поэтому я должен спросить, возможно ли вообще продать подписку с пробной версией, но добавить к ней дополнительную комиссию, чтобы заплатить сразу за один сеанс оформления заказа?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Массив add_invoice_items подписки используется для добавления разовых цен к подписке. Их можно использовать в этой ситуации, поскольку они будут сняты один раз и до суда.
С помощью Checkout вы можете добавлять в массив line_items как повторяющиеся, так и разовые цены.

Если я правильно понимаю, скажем, место стоит 100 долларов США, вам потребуется единовременная цена 100 долларов США ($price_one) и повторяющаяся цена 100 долларов США ($price_sub).

'line_items'  => [
    [
        'price' => $price_sub->id ,
        'quantity' => 5,
    ],
    [
        'price' => $price_one->id ,
        'quantity' => 1,
    ]
]

Сейчас взимается 100 долларов США, а после пробного периода — 500 долларов США.

Другие вопросы по теме