Счет-фактура Stripe не создается после предстоящего счета-фактуры

Я работаю с биллинговой системой Stripe Laravel php.

Я создал клиент с подпиской и пробным периодом. Создается счет-фактура с суммой 0. По завершении пробного периода я смогу увидеть предстоящий счет и просмотреть этот счет.

Ниже то, что я вижу в полосе..

Upcoming invoice for $67.50 Preview
Next invoice for subscription to Pro|Will be billed on Mar 19

Проблема в том, что счет-фактура не создается после окончания пробного периода, а предстоящий счет-фактура остается открытым сегодня, 21 марта, и у вас тот же статус.

Что я здесь делаю не так.

Ниже моего кода laravel для создания рассматриваемой подписки с кодом купона и пробным периодом.

//create subscription with calculated trial period
                $subscription = $stripeObj->subscriptions->create([
                    'coupon' => $this->stripe_discount_coupons["$discount_percent"],
                    'customer' => $firmData->stripe_id,
                    'items' => [
                        [
                            'price' => $firmData->commitment->stripe_price_id,
                            'quantity'=> $firmData->number_of_users
                        ],
                    ],
                    'cancel_at_period_end'=> false,
                    'metadata'=>[
                        'firm_id'=>$firmData->id,
                        'firm_name'=>$firmData->firm_name,
                        'subscription_name'=>$firmData->subscription->subscription_type,
                    ],
                    'expand' => ['latest_invoice.payment_intent'],
                    'trial_end' => $final_trial_period
                ]);

Я также попробовал... войти в панель управления Stripe, открыть подписку клиента и отредактировать ее, не внося никаких изменений, и я вижу, что предстоящий счет не преобразуется в счет-фактуру.

Не уверен, что происходит выше. Я создал почти 20 клиентов с различными пробными периодами от 10 минут до 1 дня. Результат тот же, все, что я вижу, это предстоящий счет.

Трудно сказать — в целом код выглядит нормально. Я бы рекомендовал написать в службу поддержки Stripe, указав конкретный идентификатор подписки, или обратиться через их сервер Discord (discord.com/invite/stripe), чтобы получить помощь по конкретному примеру, который вы тестируете.

bismarck 21.03.2024 15:47

Я отправил им электронное письмо и жду их ответа. Я хотел одновременно поделиться ситуацией с сообществом для обсуждения.

surya kumar 21.03.2024 15:50
Стоит ли изучать 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 и хотите разрабатывать...
0
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Здесь есть две проблемы, которые необходимо решить в моей ситуации.

один. Регулярные события, такие как CustomerSubscriptionTrialWillEnd, не будут срабатывать, если продолжительность пробного периода составляет менее 3 дней.

во-вторых, нам нужно указать поведение по умолчанию после окончания пробного периода.

Обновленный код, который работает для меня, представлен ниже. Я использую купон для предоставления скидки, а также использую пробный период. В настройках пробной версии вы можете видеть, что я демонстрирую end_behavior, который предписывает создать_инвойс после истечения срока действия пробной версии.

$subscription = $stripeObj->subscriptions->create([
                'coupon' => $this->stripe_discount_coupons["$discount_percent"],
                'customer' => $firmData->stripe_id,
                'items' => [
                    [
                        'price' => $firmData->commitment->stripe_price_id,
                        'quantity'=> $firmData->number_of_users
                    ],
                ],
                'cancel_at_period_end'=> false,
                'metadata'=>[
                    'firm_id'=>$firmData->id,
                    'firm_name'=>$firmData->firm_name,
                    'subscription_name'=>$firmData->subscription->subscription_type,
                ],
                'expand' => ['latest_invoice.payment_intent'],
                'trial_end' => $final_trial_period,
                'trial_settings' => ['end_behavior' => ['missing_payment_method' => 'create_invoice']],
            ]);

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