ворд-пресс.рф
Решение

Ошибка оплаты WooCommerce: как найти причину без двойного списания

Проверка неуспешной оплаты WooCommerce по заметкам заказа, журналам, шлюзу и webhook — без повторных списаний вслепую.

Когда в WooCommerce не проходит оплата, не просите клиента сразу повторить платёж. Сначала проверьте в кабинете провайдера, не было ли успешного списания или авторизации: сообщение «Ошибка» в браузере не всегда означает, что деньги не ушли.

Порядок безопасной диагностики

  1. Найдите заказ в WooCommerce → Заказы и зафиксируйте его ID, время, сумму и способ оплаты.
  2. Откройте заметки заказа: платежные расширения могут фиксировать коды ошибок, таймауты и изменения статуса.
  3. Найдите транзакцию в кабинете платёжного провайдера. Сверьте валюту и сумму; при необходимости обратитесь в поддержку провайдера.
  4. Если провайдер подтверждает успешную оплату, а WooCommerce держит заказ как Pending, проверьте серверные уведомления и callback/webhook согласно инструкции шлюза.
  5. В WooCommerce → Статус → Журналы просмотрите журнал нужного платежного расширения, если логирование было включено.
  6. Повторите тест в sandbox-режиме на staging, а не на средствах клиента.

Почему оплата ломается

  • Выключен/не настроен метод или он не совместим с Checkout Block.
  • Некорректные секреты API или режим тестовых ключей используется на боевом сайте.
  • Сервер не получает уведомление о результате оплаты; мешает сеть, блокировка, защита или неправильный URL.
  • Кеширование checkout либо конфликт Javascript нарушает последовательность переходов.
  • Истекло время операции у провайдера, а заказ не получил ожидаемый статус.

Какие данные собирать при обращении в поддержку

Соберите ID заказа, точное время (с часовым поясом), идентификатор транзакции, статус шлюза, версию модуля и воспроизводимый сценарий. Не передавайте в тикет полный номер карты, CVV, токены доступа и другие секреты. Перед публикацией скриншотов замаскируйте персональные данные покупателей.

Если оплата прошла, а статус не обновился

Сначала выясните статус транзакции у провайдера и проверьте журнал получения подтверждения. Не делайте ручную замену статуса единственным способом исправления: проблема повторится на следующих заказах. После восстановления webhook протестируйте новый заказ и сверку результата.

Как исключить повторение

Проверьте журнал после обновления плагина, совместимость версии WooCommerce, обработку повторного webhook и корректное обновление заказов. Для кастомной интеграции важны идемпотентность и защита от обработки одного уведомления дважды.

Связанные инструкции: статусы заказов, способы оплаты, вебхуки WooCommerce.

Источник: https://woocommerce.com/document/troubleshooting-payment-errors/

Материал был полезен?

Помогите нам сделать материалы точнее и понятнее.