Оплата - это не одна кнопка
На сайте оплата проходит через несколько систем: корзина создаёт заказ, сайт отправляет пользователя в платёжный шлюз, банк или эквайринг принимает платёж, потом сайт получает уведомление о статусе и обновляет заказ. После этого могут сработать чек, CRM, склад, 1С и письмо клиенту.
Поэтому фраза "не работает оплата" не говорит, где именно сбой. Нужно понять, на каком участке цепочки клиент или заказ застревает.
Главная развилка
Если клиент вообще не попадает на страницу оплаты - начинайте с сайта и настроек платежного модуля. Если деньги списались, но заказ не обновился - почти всегда нужно смотреть callbacks/webhooks, статусы заказа и логи сайта.
Где может оборваться платёж
| Участок | Что видит клиент | Что проверять |
|---|---|---|
| Корзина / оформление | Кнопка "оплатить" не работает, заказ не создаётся | Ошибки формы, обязательные поля, JS, backend, логи сайта |
| Переход в эквайринг | Платёжная страница не открывается или пишет ошибку | Ключи API, URL магазина, сумма, валюта, подпись запроса |
| Оплата у банка | Карта отклонена, 3-D Secure не проходит | Статус в кабинете эквайринга, лимиты, тестовая/боевая среда |
| Webhook / callback | Деньги списались, но заказ на сайте не оплачен | Доставка события, ответ сайта, id платежа, повторные уведомления |
| Чек / фискализация | Оплата есть, но чек не ушёл или заказ завис | Онлайн-касса, состав заказа, НДС, статусы чеков, ошибки кассы |
| CRM / 1С / склад | Клиент оплатил, менеджер или учётная система не видит заказ | Интеграции, очереди, webhooks, права API, маппинг статусов |
Проверки, которые можно сделать без кода
Эти шаги помогают сузить проблему и не требуют правки сайта. Главное - не делать реальные платежи на крупные суммы без необходимости.
- Создайте тестовый заказ на минимальную сумму или используйте тестовый товар, если он есть.
- Запишите точное время, сумму, email/телефон клиента и номер заказа.
- Проверьте кабинет эквайринга: создан ли платёж, какой у него статус, есть ли ошибка.
- Проверьте сайт: изменился ли статус заказа после оплаты.
- Проверьте чек: появился ли он в кассе, ушёл ли клиенту, нет ли ошибки фискализации.
- Проверьте CRM/1С: дошёл ли заказ, статус оплаты, состав заказа и сумма.
Практично
Если платёж прошёл в кабинете эквайринга, но сайт не изменил статус заказа, проблема часто не в банке. Ищите обработчик уведомлений: webhook, callback, модуль оплаты, логи сайта и ответ сервера на событие.
Типовые симптомы и вероятная зона
| Симптом | Вероятная зона | Что важно сохранить |
|---|---|---|
| Платёжная форма не открывается | Модуль оплаты, ключи API, подпись, настройки магазина | Текст ошибки, URL, время, сумма, номер заказа |
| Деньги списались, заказ "не оплачен" | Webhook/callback, обработчик статуса, повторная доставка | ID платежа, ID заказа, статус в кабинете эквайринга |
| Оплата прошла, чек не пришёл | Онлайн-касса, фискализация, состав заказа, НДС | Статус чека, ошибка кассы, состав корзины |
| Работает одна карта, другая нет | Банк-эмитент, 3-D Secure, лимиты, антифрод | Код отказа в кабинете эквайринга, способ оплаты |
| Сломалось после обновления сайта | Версия модуля, CMS, кеш, конфликт с корзиной | Дата обновления, версия модуля, список изменений |
Как временно не терять продажи
Если оплата сломалась во время рекламы или распродажи, сначала уменьшите потери, а потом чините корень проблемы. Временный обход не должен заменять нормальную интеграцию, но может спасти часть заказов.
- поставьте на странице корзины заметный контакт для ручного оформления заказа;
- если допустимо по процессу, временно принимайте заказ без онлайн-оплаты и выставляйте ссылку вручную;
- сохраните номер заказа, сумму, UTM и контакт клиента, чтобы менеджер не потерял источник;
- предупредите менеджеров, какие статусы считать ручными и как отмечать оплату;
- после исправления сверяйте ручные платежи с заказами, чтобы не продублировать оплату.
Чего не делать в панике
Ошибки оплаты особенно опасны тем, что можно случайно создать двойные списания, потерянные статусы или неправильные чеки.
Важно
Не меняйте боевые ключи, callback URL и настройки кассы без записи текущего состояния. Перед изменениями нужно понимать, какие заказы уже оплачены, какие зависли, а какие ещё можно безопасно отменить.
- не переключайте боевой магазин в тестовый режим на рабочем сайте;
- не меняйте секретные ключи без понимания, где они используются;
- не помечайте оплаченные заказы вручную, пока не сверили платёж в кабинете эквайринга;
- не запускайте повторную отправку webhooks пачкой без проверки дублей;
- не удаляйте "битые" заказы: они часто нужны для диагностики.
Что собрать перед диагностикой
Для платежей важна связка фактов: заказ на сайте, платёж в эквайринге и события в логах. Чем точнее вы соберёте эти данные, тем быстрее станет понятно, где разрыв.
- номер заказа на сайте и время создания;
- сумма, способ оплаты и email/телефон покупателя;
- ID платежа или ссылку на платёж в кабинете эквайринга;
- статус платежа в кабинете банка или платёжного сервиса;
- статус заказа на сайте, в CRM, 1С и кассе;
- скриншот ошибки клиента или текст ошибки из платёжной формы.
Если оплата уже ломает заказы
Проверим цепочку от корзины до эквайринга, webhook, статусов, чека, CRM и 1С. Начинаем с одного конкретного сценария, чтобы не менять всё вслепую. Диагностика одного платежного сценария - от 7 500 ₽.
Что проверить после исправления
"Оплата прошла один раз" - недостаточная проверка. Нужно убедиться, что вся бизнес-цепочка вернулась в нормальное состояние.
- успешная оплата меняет статус заказа на сайте;
- отмена или неуспешная оплата не создаёт ложный оплаченный заказ;
- webhook можно получить повторно без дублей и сломанных статусов;
- чек создаётся с правильной суммой, составом заказа и ставками;
- CRM, 1С, склад и уведомления видят одинаковый статус заказа;
- менеджер понимает, какие заказы были зависшими во время аварии.
Главная мысль
Проблема оплаты - это не только "банк не работает". Чаще всего разрыв находится между заказом, платёжным событием, webhook, статусом, чеком и CRM. Чтобы чинить быстро и безопасно, берите один реальный заказ и проходите всю цепочку по фактам.