Когда в WooCommerce не работает оплата, нужно разделить два сценария: переход к шлюзу не происходит или деньги списываются, но заказ не получает подтверждение.
Во втором случае ручная смена статуса не устраняет причину — необходимо восстановить callback или webhook от платёжной системы.
Как проявляется проблема
- ошибка при «Оформить заказ»
- платёжная страница не открывается
- деньги списаны, статус Pending
- работает только один шлюз
- ошибка для отдельных сумм или валют
Основные причины
1. Неверные API-ключи
Тестовые и боевые credentials часто путают после переноса.
2. Callback заблокирован
WAF, Basic Auth или maintenance не пропускает уведомление шлюза.
3. SSL или домен
Провайдер отклоняет callback на неверный адрес или проблемный сертификат.
4. JS checkout
Фронтенд-ошибка мешает создать заказ и передать данные шлюзу.
5. Старый модуль
API провайдера изменился, а плагин использует старый контракт.
Пошаговая диагностика
Шаг 1. Проверить журнал WooCommerce
Многие шлюзы записывают запрос и ответ API.
Шаг 2. Посмотреть заметки заказа
Transaction ID и notes показывают, дошёл ли платёж.
Шаг 3. Проверить webhook у провайдера
Смотрите HTTP-код последней доставки.
Шаг 4. Сделать контролируемый тест
Проведите один заказ на небольшой сумме и фиксируйте каждый шаг.
Шаг 5. Проверить checkout без кеша
Исключите страницу из кеша и агрессивной JS-оптимизации.
Как исправить
Синхронизировать режим и ключи
Production должен использовать боевые endpoints и credentials.
Разрешить callback точечно
Не отключайте WAF целиком, добавьте исключение только для нужного маршрута.
Обновить модуль
Проверьте release notes и совместимость перед обновлением.
Проверить идемпотентность
Повторный webhook не должен создавать дубль оплаты или заказа.
Что важно не делать
- Не меняйте сразу несколько настроек: после каждого действия проверяйте результат.
- Перед правками файлов и базы сделайте резервную копию.
- Не отключайте защиту, кеш или обновления навсегда только ради временного обхода ошибки.
- На интернет-магазине проверяйте решение не только под администратором, но и как обычный посетитель.
Когда нужна помощь разработчика
Если проблема повторяется, затрагивает продажи, заявки или индексацию, сохраните время ошибки и журналы сервера. Это позволяет найти первопричину вместо временного обхода.
Нужна диагностика? Можно обратиться за технической поддержкой WooCommerce.
Связанные статьи
Часто задаваемые вопросы
Почему деньги списались, а заказ не оплачен?
Webhook не дошёл до сайта или не был обработан.
Что проверить первым?
Логи шлюза в WooCommerce и журнал webhook у провайдера.
Нужен CSRF для webhook?
Обычно шлюзы используют собственную подпись запроса; следуйте документации конкретного провайдера.