Что такое платёжный шлюз? Как проходят онлайн-платежи
Платёжный шлюз — это сервис, который безопасно принимает платёжные данные клиента на оплате, передаёт их банкам и платёжным системам для одобрения и возвращает ответ «одобрено» или «отклонено», обычно в течение нескольких секунд. Это мост между вашим приложением и финансовой системой. Известные примеры — Stripe, PayPal, Adyen, Square и Braintree.
Сегодня большинство этих компаний объединяют шлюз со всем остальным, что нужно для получения денег, поэтому «платёжный шлюз», «платёжный процессор» и «платёжный провайдер» часто означают одно и то же.
Почему платёжные шлюзы важны при создании с ИИ
«Добавь оплату» — один из самых частых запросов к конструкторам на основе ИИ и один из самых легко сделать с ошибкой. Сам код обычно короткий. Важны решения вокруг него:
- Какой провайдер подходит вашему бизнесу, стране и тому, что вы продаёте.
- Где выполняется код. Секретные платёжные ключи должны оставаться на сервере, а не в браузере.
- Как приложение узнаёт, что оплата прошла. Надёжный способ — вебхук от провайдера, а не переход клиента на страницу «спасибо».
- Ваши юридические и налоговые обязанности, которые зависят от того, кто является торговцем записи.
Понимание того, что делает шлюз, помогает давать ясные инструкции и проверять, что результат безопасен.
Бытовая аналогия
Представьте оплату картой в магазине.
Терминал на кассе — это и есть шлюз: он безопасно считывает вашу карту и отправляет запрос. Сам он ничего не решает — он передаёт вопрос «может ли этот человек заплатить 40 евро?» по цепочке в ваш банк и получает ответ. Решают банк магазина (эквайер) и ваш банк (эмитент), а связывает их платёжная система (Visa, Mastercard).
Онлайн-платёжный шлюз — это тот же терминал, перенесённый в веб, плюс защита для работы с данными карт, которые приходят через интернет.
Как проходит онлайн-платёж картой
Вот что происходит в несколько секунд после того, как клиент нажимает «Оплатить»:
| Шаг | Что происходит | Кто это делает |
|---|---|---|
| 1. Оплата | Клиент вводит данные карты в защищённую форму | Форма или страница провайдера |
| 2. Шифрование | Данные шифруются и отправляются в шлюз | Шлюз |
| 3. Запрос авторизации | Запрос уходит в платёжную систему и в банк клиента | Процессор, платёжная система |
| 4. Проверки | Банк проверяет средства и признаки мошенничества и может запросить дополнительное подтверждение, например 3D Secure | Банк-эмитент |
| 5. Ответ | В ваше приложение приходит «одобрено» или «отклонено» | Шлюз |
| 6. Списание и расчёт | Деньги списываются и, по графику выплат провайдера, переводятся на ваш счёт за вычетом комиссий | Процессор, эквайер |
Стоит знать два момента:
- Авторизация — это не оплата. Сначала деньги резервируются, затем списываются, а потом переходят на ваш счёт, часто через несколько дней.
- Ваше приложение вообще не должно видеть номер карты. Современные провайдеры дают размещённую страницу оплаты или встроенные поля, которые контролируют сами, а приложение получает только ссылку на платёж.
Основные части и кто за что отвечает
| Часть | Что это такое |
|---|---|
| Платёжный шлюз | Безопасно принимает платёжные данные и передаёт их дальше. |
| Платёжный процессор | Передаёт данные о транзакции между банками. |
| Торговый счёт (merchant account) | Счёт, на который приходят деньги за карточные платежи. Провайдеры вроде Stripe объединяют его со шлюзом. |
| Эквайер | Банк на стороне продавца. |
| Эмитент | Банк клиента, который одобряет или отклоняет платёж. |
| Платёжная система | Visa, Mastercard и другие, которые связывают эквайеров и эмитентов. |
| Торговец записи (merchant of record) | Бизнес, который юридически продаёт клиенту и отвечает за налоги, возвраты и споры. |
Некоторые провайдеры (Paddle, Lemon Squeezy) сами выступают торговцем записи: они берут на себя налоги с продаж и НДС за вас, за что взимают более высокие комиссии. Другие (Stripe, PayPal) оставляют торговцем записи вас, при этом есть необязательные налоговые инструменты. Для честного сравнения вариантов см. Stripe vs Paddle vs Lemon Squeezy и Stripe vs PayPal.
Практический пример: продажа онлайн-курса
Вы продаёте онлайн-курс за 99 евро и просите конструктор на основе ИИ добавить кнопку «Купить».
- Клиент нажимает «Купить». Ваш сервер с помощью секретного ключа просит провайдера создать сессию оплаты на 99 евро и получает ссылку.
- Клиента отправляют на размещённую страницу оплаты провайдера, он вводит карту и при необходимости проходит проверку 3D Secure в своём банке.
- Оплата одобрена, и клиента перенаправляют на вашу страницу «успех».
- Отдельно провайдер присылает вебхук на ваш сервер: «оплата по сессии X прошла». Сервер проверяет подпись вебхука, находит заказ, отмечает его оплаченным и открывает курс.
- Через несколько дней деньги за вычетом комиссий поступают на ваш банковский счёт.
Шаг 4 самый важный. Если бы вы открывали курс на странице «успех», любой, кто нашёл бы этот адрес, получил бы курс бесплатно, а клиенты, у которых браузер закрылся раньше времени, заплатили бы и ничего не получили.
Ключевые термины
| Термин | Значение |
|---|---|
| Сессия оплаты (checkout session) | Разовая страница или поток оплаты, который создаёт ваш сервер для конкретной покупки. |
| Тестовый режим | Песочница, где используются тестовые ключи и тестовые номера карт; реальные деньги не движутся. |
| Публичный / секретный ключ | Публичный ключ может появляться в коде браузера; секретный ключ должен оставаться на сервере. |
| 3D Secure | Дополнительный шаг, на котором клиент подтверждает платёж в своём банке; в Европе распространён по правилам SCA (сильная аутентификация клиента). |
| PCI DSS | Стандарт безопасности индустрии платёжных карт для всех, кто работает с данными карт. |
| Чарджбэк | Ситуация, когда клиент оспаривает платёж в своём банке, и деньги возвращаются с вашего счёта. |
| Возврат (refund) | Деньги, которые вы возвращаете клиенту по собственной инициативе. |
| Выплата (payout) | Перевод собранных провайдером денег на ваш банковский счёт. |
Частые заблуждения
- «Чтобы списывать деньги повторно, нужно хранить номера карт». Нет. Провайдеры хранят карту и выдают вам ссылочный токен для повторных списаний и подписок. Номера карт сами хранить нельзя никогда.
- «Страница успеха означает, что платёж прошёл». Подтверждайте платежи вебхуками на сервере. Перенаправления можно пропустить, подделать или они могут вообще не произойти.
- «Все платёжные провайдеры стоят примерно одинаково». Комиссии зависят от провайдера, страны, типа карты и от того, включена ли обработка налогов. Сверяйте актуальные тарифы провайдера для своей страны.
- «Со Stripe я автоматически соответствую PCI». Он сильно упрощает соответствие, потому что данные карт остаются у провайдера, но самооценку (обычно короткую) вы всё равно заполняете.
- «Тестовый и боевой режимы работают одинаково». Они близки, но боевой режим требует полностью подтверждённого аккаунта, настроенных вебхуков для боевой среды и реальных банковских реквизитов.
- «Платёжный шлюз сам решает мои налоги». Только если он выступает торговцем записи или вы включили и настроили его налоговые функции. Проверьте местные правила или проконсультируйтесь со специалистом.
Что попросить у конструктора на основе ИИ
- «Добавь [Stripe] Checkout для [продукта]. Создавай сессию на сервере, используя секретный ключ из переменной окружения.»
- «Отмечай заказы оплаченными только по проверенному вебхуку и проверяй подпись вебхука.»
- «Обрабатывай ситуацию, когда вебхук приходит дважды, без создания дублирующих заказов.»
- «Используй ключи тестового режима и покажи, как тестировать тестовыми картами провайдера, включая отклонённую карту.»
- «Что будет, если клиент закроет вкладку уже после оплаты?»
- «Покажи каждое место, где используется платёжный ключ, и убедись, что секретный ключ никогда не попадает в браузер.»
Платёжные шлюзы в Mythex
В Mythex нет встроенных платежей для создаваемых вами приложений, и кнопки «Подключить Stripe в один клик» нет. Вы создаёте аккаунт у выбранного провайдера, добавляете его тестовые ключи как секреты проекта и просите агента построить оплату на стороне сервера. Тестируйте в предпросмотре тестовыми картами провайдера, затем публикуйте. Документация описывает это в разделе Приём платежей через Stripe, а Вебхуки объясняют шаг подтверждения.
Для пошаговой сборки см. как добавить оплату в приложение, а для регулярных списаний — как добавить подписки через Stripe.
Вопросы
Что такое платёжный шлюз простыми словами?
Платёжный шлюз — это сервис, который безопасно принимает платёжные данные клиента на вашей странице оплаты, передаёт их банкам и платёжным системам для одобрения и возвращает вашему приложению ответ «одобрено» или «отклонено», обычно за несколько секунд.
В чём разница между платёжным шлюзом и платёжным процессором?
Строго говоря, шлюз — это защищённый вход, который принимает и передаёт платёжные данные, а процессор проводит транзакцию между банками. На практике современные провайдеры вроде Stripe, PayPal и Adyen объединяют и то, и другое, а также торговый счёт в один сервис, поэтому эти термины часто используют как синонимы.
Нужно ли соответствовать PCI DSS, чтобы принимать оплату картами?
Любой бизнес, который принимает карты, должен в той или иной форме соответствовать стандарту безопасности PCI DSS. Если вы используете размещённую страницу оплаты или встроенные поля провайдера, номера карт никогда не попадают на ваши серверы, и ваша ответственность существенно снижается. Провайдер подскажет, какая самооценка к вам применима.
Что такое торговец записи (merchant of record)?
Торговец записи — это бизнес, который юридически продаёт клиенту и отвечает за такие вещи, как начисление и уплата налогов с продаж или НДС, а также за возвраты и чарджбэки. Такие сервисы, как Paddle и Lemon Squeezy, выступают торговцем записи вместо вас; при работе со Stripe или PayPal им обычно являетесь вы.
Можно ли добавить оплату в приложение, созданное с ИИ?
Да. Конструктор на основе ИИ может написать код, который подключает ваше приложение к провайдеру вроде Stripe: создание сессий оплаты на сервере, обработку вебхуков и обновление заказов. Вам всё равно нужен собственный аккаунт у провайдера, и всё стоит проверить в его тестовом режиме перед запуском.