Диагностика проблемы с оплатой через QIWI в WooCommerce
После обновления WooCommerce или плагина для оплаты через QIWI могут возникать ошибки, из-за которых платежи не проходят или заказы остаются в состоянии "ожидание оплаты". Чтобы понять источник проблемы, необходимо проверить несколько ключевых моментов:
- Логи платежей и ошибок WooCommerce в разделе
WooCommerce > Статус > Логи. - Консоль браузера при оформлении заказа на предмет JavaScript-ошибок.
- Совместимость версии плагина QIWI с текущей версией WooCommerce и PHP.
- Настройки callback URL и секретных ключей в личном кабинете QIWI и в настройках плагина.
Проверка лога ошибок
Для активации логирования платежей перейдите в WooCommerce > Настройки > Платежи > QIWI > Включить логирование. После проведения попытки оплаты перейдите в WooCommerce > Статус > Логи и выберите последний файл с логами QIWI. В логах ищите такие ошибки как:
- Ошибка авторизации (401 Unauthorized)
- Неверный callback URL
- Ошибка проверки подписи запроса
Пошаговое решение проблемы с оплатой через QIWI
Шаг 1. Проверка и обновление плагина QIWI
Убедитесь, что используемый плагин QIWI поддерживает текущую версию WooCommerce и PHP. Если плагин устарел, скачайте актуальную версию с официального репозитория или сайта разработчика. Обновите плагин через админку WordPress или вручную через FTP.
Шаг 2. Настройка параметров API QIWI
Проверьте, что в настройках плагина указаны корректные:
- Номер кошелька QIWI
- Токен API (секретный ключ)
- Callback URL, который должен совпадать с URL, зарегистрированным в кабинете QIWI
Пример правильного callback URL:
https://ваш_домен.ru/?wc-api=qiwiЗамените ваш_домен.ru на домен вашего сайта.
Шаг 3. Проверка и исправление callback URL в личном кабинете QIWI
Войдите в личный кабинет QIWI API, найдите настройку webhook/callback URL и убедитесь, что он совпадает с тем, что указан в настройках плагина. Если URL не совпадает, платежи не будут подтверждаться.
Шаг 4. Обработка webhook и проверка подписи
В файле плагина должен быть корректный код для обработки callback от QIWI и проверки подписи. Если вы используете кастомный плагин, используйте пример проверки подписи:
function verify_qiwi_signature($data, $signature, $secret) {
$calculatedSignature = base64_encode(hash_hmac('sha256', $data, $secret, true));
return hash_equals($calculatedSignature, $signature);
}Убедитесь, что эта проверка вызывается при получении callback и в случае несоответствия оплаты не подтверждается.
Шаг 5. Тестирование оплаты в режиме Sandbox (если доступен)
Используйте тестовый режим QIWI или Sandbox, чтобы проверить прохождение платежей без списания реальных средств.
Проверка результата после внедрения
- Попробуйте оформить заказ с оплатой через QIWI и убедитесь, что статус заказа меняется на "Оплачен" после успешного платежа.
- Проверьте лог в WooCommerce — в нем не должно быть ошибок, связанных с QIWI.
- Убедитесь, что callback от QIWI успешно принимается вашим сайтом (можно отследить по логам или отладчику).
Частые ошибки и как их исправить
- Неверный callback URL: Плагин и QIWI используют разные URL, исправляется синхронизацией URL в настройках.
- Ошибки авторизации API: Неверный токен или истекший ключ, обновите токен в личном кабинете QIWI и плагине.
- Отсутствие SSL: QIWI требует HTTPS для callback, используйте SSL-сертификат на сайте.
- Проблемы с проверкой подписи: Неправильная реализация проверки подписи, используйте рекомендованный алгоритм HMAC SHA-256.
- Проблемы с совместимостью PHP: Плагин может использовать устаревшие функции, обновите или замените плагин.
Практические советы по безопасности и производительности
- Не сохраняйте токены в открытом виде — используйте константы в
wp-config.phpили защищённые настройки плагина. - Ограничьте IP-адреса, с которых принимаются callback от QIWI, если это возможно.
- Включите логирование только на время отладки, чтобы не нагружать сервер.
- Регулярно обновляйте WooCommerce, плагин QIWI и WordPress для устранения уязвимостей.
- Используйте кеширование страниц, исключая страницы оформления заказа, чтобы не мешать работе платежей.
Сравнение вариантов решения проблемы оплаты через QIWI
| Метод | Плюсы | Минусы | Рекомендации |
|---|---|---|---|
| Обновление официального плагина QIWI | Гарантированная совместимость, поддержка разработчика | Зависимость от внешнего разработчика, возможны задержки с обновлениями | Рекомендуется для большинства пользователей |
| Кастомная реализация на основе API QIWI | Полный контроль над функционалом | Требует навыков программирования, риск ошибок в безопасности | Для опытных разработчиков и нестандартных задач |
| Использование сторонних универсальных платежных плагинов | Поддержка нескольких платежных систем | Может не поддерживать все фичи QIWI, сложность настройки | Подходит для мультиплатежных сайтов |