Как обрабатывать «неполные» пробные подписки

#stripe-payments

Вопрос:

В настоящее время мы используем Stripe, чтобы предложить услугу подписки с 30-дневной бесплатной пробной версией. Поскольку мы не хотим, чтобы клиент мог начать бесплатную пробную версию без авторизации одного способа оплаты, мы используем SetupIntent созданную подписку, чтобы предоставить нашему клиенту ввод карты. Теперь проблема в том, что еще до того, как клиенту будет показана карта, подписка уже создана и «оплачена», потому что это бесплатная пробная версия.

Это означает, что мы не можем прослушать первоначальный invoice.paid веб-крючок для активации учетной записи, а вместо этого должны его прослушать setup_intent.succeeded . Это кажется немного странным и требует, чтобы мы связали SetupIntent его с a Subscription . Это также означает, что, когда клиент отменяет процесс подписки до ввода данных своей карты, эта полоса все еще создает активную пробную подписку.

Есть ли что-то, что мы можем сделать по-другому, или мы должны просто согласиться с тем, что подписки, в которых SetupIntent был прерван, будут неактивны на стороне полосы, как только он попытается оплатить следующие (не пробные) счета-фактуры?

Комментарии:

1. Разрешаете ли вы своим клиентам предоставлять платежные реквизиты в любой момент во время пробной версии или хотите потребовать, чтобы они предоставили их заранее?

2. @karbi Нет. Я хочу, чтобы они предоставили действительные платежные реквизиты, прежде чем разрешить им использовать пробную подписку. Вот почему текущий процесс немного неудобен, так как подписка сразу же существует при ее создании (чтобы использовать SetupIntent для проверки платежных реквизитов).

Ответ №1:

В документах Stripe используется Намерение настройки, созданное с помощью пробной подписки, для получения способа оплаты клиента, но в вашем случае может быть более разумным заранее создать собственное Намерение настройки и не создавать Подписку, если только Намерение настройки не будет успешным. Это выглядело бы примерно так:

  1. Создайте намерение настройки
  2. Подтвердите намерение установки после сбора подробной информации
  3. В случае успеха создайте пробную подписку

В качестве альтернативы вы можете попробовать использовать Checkout, который требует, чтобы пользователи отправляли способ оплаты даже после проверки подписок

Комментарии:

1. Спасибо. Вот что я сделал сейчас. Если это пробная версия, она возвращает секрет для a SetupIntent и создает подписку в полосе только в том случае, если SetupIntent она была успешной.