Если цифровой сервис с самого начала создаётся для международной аудитории, вопрос платёжной инфраструктуры встаёт практически сразу. Как принимать оплату от пользователей из разных стран? Как переводить средства исполнителям, если у каждого — своя валюта? Как сделать так, чтобы всё это работало прозрачно, надёжно и без лишней нагрузки на команду?
На примере международной образовательной платформы расскажем, как работают платёжные инструменты в подобном сервисе, какие задачи они решают — и с какими подводными камнями можно столкнуться при их подключении.
Содержание
Как устроена оплата в сервисе
◦ Получение события об оплате
◦ Учет дохода преподавателей
◦ Выплаты преподавателям
◦ Прозрачность для всех участников
◦ Тестирование
О проекте
Для заказчика это был первый проект, он пришёл к нам с идеей и эскизами, поэтому мы вместе дорабатывали структуру платформы, продумывали пользовательские сценарии и собирали ТЗ. В результате появился мультиязычный цифровой продукт: сайт, мобильные приложения, административная панель.
Преподаватели регистрируются, подтверждают квалификацию, проводят аудио- и видеозанятия. Ученики выбирают формат, язык, оплачивают занятия поурочно, общаются в чатах для письменной практики.
В итоге стартап вышел на рынок, получил первых пользователей и привлёк следующий инвестиционный раунд.
Почему Stripe
Платёжная система — один из самых критичных блоков в таких сервисах. Она должна быть надёжной, прозрачной и простой в использовании как для пользователей, так и для команды, которая будет её сопровождать. Изучили доступные сервисы и выбрали Stripe — это международный платёжный провайдер, который работает с картами, Apple Pay, Google Pay и PayPal и позволяет делать выплаты по всему миру.
Чем он удобен:
Поддержка разных сценариев: разовые платежи, подписки, возвраты, удержание средств, платёжные ссылки.
Масштабируемость: обслуживает как небольшие интернет-магазины, так и гигантов вроде Amazon или Shopify.
Дополнительные сервисы: предлагает инструменты для борьбы с мошенничеством, управления бизнесом и работы с налогами и отчетностью.
С технической стороны Stripe предлагает понятный API, хорошую документацию и гибкость в сценариях. Это особенно важно, если в продукте предусмотрена поурочная или поминутная оплата, как у нас.
Как устроена оплата в сервисе
Когда ученик выбирает занятие и нажимает кнопку оплаты:
Вводит данные своей карты (или использует Apple Pay / Google Pay).
Данные отправляются напрямую в систему Stripe, которая проверяет карту и списывает нужную сумму.
Данные карты не хранятся у нас, их обрабатывает только Stripe.
Stripe сразу возвращает статус оплаты: успешно / ошибка / ожидается подтверждение.
Получение события об оплате
Когда Stripe провёл платёж, он отправляет уведомление о событии — платёж прошёл, не прошёл, отменён и т.д. Мы не проверяем статус вручную, уведомления приходят в нашу очередь сообщений — RabbitMQ. Это компонент, который работает как диспетчер: принимает сообщения от Stripe и передаёт их нужным частям платформы для обработки.
Пример:
Stripe присылает: «Платёж ID123 прошёл успешно»
RabbitMQ передаёт это событие системе оплаты
Система сохраняет этот статус и обновляет баланс преподавателя.

Учет дохода преподавателей
Система автоматически учитывает:
Кто вёл занятие
Сколько длилось занятие
Сколько ученик заплатил
Какую комиссию нужно отдать платформе
На основе этих данных платформа рассчитывает, сколько должен получить преподаватель. Расчёты аккумулируются за месяц — по его итогам преподавателю формируется отчёт.
Выплаты преподавателям
Раз в месяц:
Платформа формирует сводку: кто сколько заработал
Stripe получает команды перевести деньги на счёт преподавателя (если тот подключил Stripe-аккаунт)
Система уведомляет преподавателя о переводе
Это происходит автоматически, администратору не нужно ничего считать и отправлять деньги каждому преподавателю.
Прозрачность для всех участников
Ученик может посмотреть историю оплат и статусы своих занятий
Преподаватель видит баланс и список оплаченных / неоплаченных уроков
Владелец платформы видит отчёты по всем транзакциям, может фильтровать их по пользователям и периодам.
Тестирование
Чтобы не рисковать работающей платформой, мы заранее продумали, как будет устроена среда для разработки и тестирования. Под каждый стенд (то есть отдельную копию системы) мы создавали отдельный бизнес-аккаунт в Stripe. Каждая из этих версий жила своей жизнью, с собственными пользователями и отдельной интеграцией. Это позволяло нам безопасно и гибко проверять разные сценарии: подписка, оплата, сбои, просрочки и так далее.
Например, мы тестировали:
что будет, если на карте нет денег;
как срабатывает продление подписки через месяц;
что происходит, если пользователь не вводит код, который пришел через приложение банка;
как выглядят письма с напоминаниями об оплате;
можно ли оплатить вручную по ссылке, если списание не прошло и т.д.
Stripe предоставляет инструменты для симуляции разных ситуаций — можно перематывать время подписки, чтобы не ждать, когда пройдет месяц, и проверять, что произойдёт в нужный момент. Все эти детали важны для реальных пользователей — мы хотели, чтобы при любых ситуациях процесс был понятным и контролируемым.

Что в итоге
Мы успешно подключили Stripe и реализовали ключевой функционал:
приём оплат
регулярные выплаты преподавателям по всему миру
прозрачную учётную систему
надёжную среду для тестирования и отладки.
Doubletapp помогает запускать и масштабировать цифровые продукты — от проектирования платформы до настройки сложной инфраструктуры.
Ищете команду, которая сможет взять на себя техническую реализацию и интеграции? Давайте обсудим ваш проект.