Как подключить оплату к интернет-магазину: эквайринг, шлюз, статусы и возвраты
Оплата — это не «кнопка на сайте». Это договор, тестовый контур, вебхук, статус заказа и правила страны. Списка «лучших провайдеров» здесь нет: смотрят вашу гео
Подключить оплату — связать checkout магазина с провайдером, который принимает деньги и сообщает магазину результат. Карты, QR, локальные кошельки и рассрочка — разные методы внутри этого контура. Набор методов зависит от страны бизнеса и страны покупателя. Русскоязычные рынки СНГ и Азии не делят одну кассу.
Эквайринг — приём карт и расчёт с банком. Шлюз (gateway) — технический вход: форма, токен, 3-D Secure. Провайдер часто совмещает оба слоя и добавляет методы. Заказ нельзя считать оплаченным по редиректу «успех» без серверного уведомления. Возврат — отдельная операция. Фискализация и чеки — по закону вашей страны, не по универсальному списку. Тарифы и методы сверяйте у провайдера на дату подключения.
Три слоя, которые путают
| Слой | Что делает | Чего не делает |
|---|---|---|
| Эквайринг | Расчёт по картам, мерчант-договор | Сам не рисует ваш каталог |
| Шлюз | Принимает данные платежа, 3DS, токены | Не заменяет юрдоговор и KYC |
| Провайдер / агрегатор методов | Один договор, несколько методов | Не отменяет проверку, какие методы есть в вашей стране |
На витрине клиент видит «оплатить». Внутри: сумма, валюта, идентификатор заказа, идемпотентность, антифрод, ответ шлюза, запись в заказе, письмо клиенту. Если письмо ушло, а статус в админке пустой — контур сломан.
Когда подключать
- Есть товары/услуги, цена, юрлицо или ИП, которые могут заключить договор.
- Понятна география покупателя: одна страна или несколько.
- Есть кто обработает уведомление об оплате и возврат.
Когда ещё рано или не так
Нет офера и доставки — оплата не спасёт конверсию. Не копируйте методы «как у магазина из другой страны». Не обещайте рассрочку, пока нет договора. Не включайте боевые ключи на тестовом каталоге с реальными картами сотрудников без регламента. Не публикуйте рейтинг провайдеров из чужих статей: комиссии, методы и документы меняются.
Методы: карты, QR, локальные
Карты международных схем доступны не везде одинаково. QR и банковские приложения часто доминируют на конкретном рынке. Наложенный платёж и перевод на счёт — тоже методы, но статусы другие: деньги не равны «оплачено онлайн». Для покупателей из нескольких стран нужен либо местный провайдер на рынок, либо провайдер с нужными методами. Проверка одна: тестовый платёж тем способом, которым платит ваша аудитория, не тем, который удобен разработчику.
Как подключать
- Зафиксируйте юрлицо, страны, валюты, кто мерчант.
- Соберите 2–3 провайдера, которые реально работают в вашей стране. Сравните методы, выплату, возвраты, документацию API, не бренд.
- Закройте KYC у выбранного. Сроки — у них, не из чужого блога.
- Ключи теста в магазин. Никогда боевые в фронтенд-код.
- Вебхук на HTTPS вашего домена. Проверка подписи.
- Карта статусов: создан → ожидает → оплачен / неуспех / истек → возврат.
- Тестовый успех, неуспех, повторный вебхук, возврат.
- Боевые ключи. Маленькая реальная сумма. Потом возврат этой суммы.
заказ.оплачен := подтверждение провайдера на сервере (вебхук/query), не редирект браузера и не «клиент сказал, что списал»
Вебхук и статусы
Браузер может закрыться до возврата на success URL. Провайдер шлёт серверное уведомление. Магазин проверяет подпись, сумму, валюту, номер заказа. Повтор вебхука должен быть безопасен: один платёж не создаёт два заказа. Расхождение «в банке есть, в магазине нет» — первым делом лог вебхука, не спор с клиентом вслепую.
Возвраты
Возврат — отдельный вызов API или кабинет провайдера плюс статус в заказе. Частичный возврат должен совпадать с тем, что вы реально возвращаете товаром. Срок зачисления на карту клиента зависит от банка, не от вашего письма. Пока возврат не подтверждён провайдером, заказ нельзя считать закрытым «деньги ушли».
Фискализация зависит от страны
Чек, ККМ, электронный фискальный документ, НДС, маркетплейс как агент — это разные режимы в разных юрисдикциях. Не существует одного списка «подключите кассу вот так» для Казахстана, других стран СНГ и Азии сразу. Для вашей страны: налоговый режим, обязанность выдавать чек при онлайн-оплате, кто оператор фискальных данных, как чек связан с заказом. Это юридическая и бухгалтерская проверка. Интернет-магазин только передаёт данные в тот контур, который вам обязаны настроить по месту регистрации.
Карточные данные не должны проходить через ваш сервер, если вы не сертифицированы под это. Используйте виджет/hosted fields/redirect провайдера. Секретный ключ — только сервер. Админка заказов — не публичный URL. Логи без полного номера карты и CVV.
Тестовый режим
Тестовые карты и QR живут в документации провайдера. Проверьте неуспешный платёж и отмену. Не оставьте test-режим на домене, куда ведёте рекламу. Наоборот: не гоните первый боевой платёж без прошедшего теста вебхука.
Ошибки
- Считать заказ оплаченным по thank-you page.
- Выбрать провайдера по чужому топу без методов вашего рынка.
- Смешать валюты витрины и мерчант-договора.
- Нет процедуры возврата до запуска рекламы.
- Фискализацию «как в соседней стране».
- Ключи в клиентском коде и в чате с подрядчиком.
Чек-лист
- Мерчант-аккаунт компании, не подрядчика.
- Методы совпадают с тем, чем платит аудитория.
- Вебхук с проверкой подписи работает на проде и на тесте.
- Статусы заказа и оплаты не противоречат друг другу.
- Тестовый неуспех и возврат пройдены.
- Боевой микроплатёж и возврат пройдены.
- Фискализация закрыта консультацией по вашей стране, не шаблоном из интернета.
- Комиссия заложена в юнит и TCO, не сюрпризом в конце месяца.
Что дальше
Доставка должна знать, можно ли отгружать: статус оплаты. CRM должна получать тот же статус, иначе менеджер звонит «вы не оплатили» по оплаченному заказу. Для Казахстана отдельные how-to: Kaspi Pay и Halyk Pos / ePay — это конкретные кабинеты, не замена этой статьи про шлюз и статусы. Комиссии входят в TCO магазина, не только в «цену сайта».