Руководство по сбору повторяющихся платежей с помощью Stripe

Stripe Billing — это самый быстрый способ для вашего бизнеса выставлять счета клиентам с подписками и принимать повторяющиеся платежи. В этой серии статей вы узнаете об основах настройки интеграции для приема повторяющихся платежей. Мы рассмотрим такие вопросы, как запуск подписки, прием клиентов, сбор платежей, управление жизненным циклом клиента, а также способы отмены и перехода между уровнями тарифного плана.

Существует несколько способов сочетать API Stripe и инструменты для настройки повторяющихся платежей, некоторые из них практически не требуют кода, другие — очень индивидуальны. Я буду придерживаться своего любимого подхода при использовании Rails — промежуточного, когда мы пишем достаточно кода, чтобы получить индивидуальный опыт, но при этом используем всю мощь Checkout и портала для клиентов.

В этой серии мы не будем рассматривать более сложные детали, такие как дозированные/пользовательские или многоуровневые подписки, но вы уйдете с основными строительными блоками и пониманием, на которое вы сможете опираться. Ознакомьтесь с официальной документацией для моделирования более сложных случаев использования.

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

Посадочная страница

Когда клиент впервые заходит на ваш сайт, его обычно встречает целевая страница. Чаще всего именно здесь мы просим клиента зарегистрироваться, записаться или присоединиться.

Onboarding

Когда клиент подписывается на ваши услуги, вы, вероятно, собираете его адрес электронной почты, а также другие данные, такие как дата рождения, адрес доставки или другие предпочтения по продуктам, чтобы привлечь клиента к вашему бизнесу. Мы будем называть этот шаг «онбординг».

Страница ценообразования

Все мы знакомы со страницами ценообразования, где мы узнаем о том, какие продукты и по каким ценам предлагаются. В следующей статье этого цикла мы поговорим о том, как смоделировать свой бизнес с помощью продуктов и цен, чтобы вы могли воспользоваться всеми лучшими возможностями портала Checkout и Customer. Оказывается, правильная настройка продуктов и цен с первого раза может быть очень полезной в долгосрочной перспективе.

Эту страницу с ценами мы создадим с помощью Tailwind UI, платного набора компонентов пользовательского интерфейса. Если вы предпочитаете подход без кода, вы можете создать эти страницы с ценами с помощью встраиваемой таблицы цен.

Форма оплаты

Форма оплаты собирает имя и информацию о платеже. Stripe размещает эту форму, если вы используете Checkout или Payment Links. В качестве альтернативы вы можете разместить свою собственную форму оплаты и использовать элемент PaymentElement для сбора платежных данных от клиента.

Каждый из этих вариантов отличается по сложности интеграции:

Платежные ссылки без кода
Оформление заказа вызов API на стороне сервера и перенаправление
PaymentElement вызов API на стороне сервера и интеграция на стороне клиента с Stripe.js

Мы будем использовать Checkout, который позволяет нам связать сессию оформления заказа и, в конечном счете, подписку с конкретным клиентом Stripe. Затем мы сохраним ссылку на клиента Stripe в базе данных вместе с нашим аутентифицированным Rails-пользователем Devise.

Предоставление доступа

Предоставление доступа — это когда вы предоставляете доступ к продуктам и функциям, за которые клиент только что заплатил. Это происходит за кулисами с помощью веб-крючка. Если вы не знакомы с веб-крючками, есть несколько ресурсов, которые подробно рассказывают о них. Если вы используете гем pay в своем Rails-приложении, он абстрагирует всю работу по созданию или обновлению подписок в вашей базе данных — очень удобно!

Ключевые термины

Давайте перейдем к основным ресурсам, которые вы захотите понять.

Клиент
Объекты Stripe Customer позволяют вам собирать повторяющиеся платежи для одного и того же клиента и отслеживать несколько платежей.

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

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

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

Подписка
Подписки — это сведения о продукте, связанные с планом, на который подписывается клиент, что позволяет взимать плату с клиента на периодической основе.

Счет-фактура
Счет-фактура — это выписка сумм, причитающихся клиенту. Подписки автоматически генерируют счета-фактуры для вас. Мне нравится думать о подписках как о «двигателях» или «генераторах» для счетов-фактур. Счета-фактуры относятся к другому, более примитивному объекту под названием PaymentIntent, но для целей этого руководства мы останемся на более высоком уровне. Просто знайте, что PaymentIntent — это то, что находится под капотом счета-фактуры, а PaymentIntent — это объект, который перемещает деньги.

Сеанс кассы
Сессия Checkout Session представляет собой сессию вашего клиента, когда он начинает подписку. Мы рекомендуем создавать новую сессию каждый раз, когда ваш клиент пытается оформить подписку. После успешной оплаты или начала пробного периода сессия Checkout Session будет содержать ссылку на клиента и связанную с ним подписку.

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

Обзор

Запуск подписки с помощью Checkout и управление выставлением счетов с помощью портала клиента — это мощное сочетание. Именно такой подход я рекомендую большинству SaaS-компаний, поскольку вы избежите написания большого количества шаблонов для управления биллингом, работы с локализацией и других сложных рабочих процессов.

Поток

  1. Когда новый пользователь регистрируется в нашем SaaS-приложении, мы создаем клиента.
  2. Когда он попытается получить доступ к платным функциям, мы откроем страницу ценообразования, построенную со ссылками на продукты и цены.
  3. Когда клиент выберет уровень тарифного плана для подписки, мы создадим сессию Checkout Session со ссылкой на клиента и цену для этого уровня.
  4. Затем мы перенаправим клиента на URL сессии Checkout Session. В платежной форме пользователь введет свои платежные данные и нажмет кнопку «Подписаться». Это создаст новый метод оплаты и подписку для клиента.
  5. Поскольку мы не начинаем подписку с пробного периода, генерируется новый счет-фактура и производится попытка оплаты первого интервала.
  6. Затем пользователь перенаправляется обратно в наше приложение, и срабатывает событие webhook, уведомляющее наше приложение о вновь созданной подписке. Пользователь увидит страницу благодарности, а наш обработчик webhook обновит базу данных, чтобы отразить новый активный статус пользователя.
  7. Пользователь получает доступ к платным функциям. 🎉

Следующие шаги

Следите за следующей статьей, в которой вы узнаете, как моделировать повторяющийся SaaS-бизнес с помощью продуктов и цен.

Об авторе

CJ Avilla (@cjav_dev) — представитель разработчиков в Stripe, разработчик Ruby on Rails и YouTuber. Он любит изучать и преподавать новые языки программирования и веб-фреймворки. Когда он не за компьютером, он проводит время с семьей или катается на велосипеде 🚲.

Оцените статью
devanswers.ru
Добавить комментарий