Диагностика ошибки "Identity Verification Required" при оплате через Stripe в WooCommerce
Ошибка "Stripe Payment Failed: Identity Verification Required" возникает, когда платеж не может быть завершён из-за необходимости дополнительной верификации клиента в соответствии с требованиями PSD2 и SCA (Strong Customer Authentication). Это частая проблема для магазинов WooCommerce с подключённым платежным шлюзом Stripe, особенно при оплате картами европейских банков.
Для диагностики ошибки:
- Проверьте логи платежей в WooCommerce (WooCommerce > Статус > Логи) — ищите сообщения с "requires_action" или "authentication_required".
- Войдите в панель управления Stripe и найдите соответствующие попытки платежей — там будет причина отказа и указание на необходимость аутентификации.
- Убедитесь, что на сайте установлен и корректно работает плагин «WooCommerce Stripe Payment Gateway» последней версии.
Почему возникает ошибка и как её решить: пошаговое руководство
1. Обновите плагин Stripe и WooCommerce
Устаревшие версии плагинов могут не поддерживать новые требования PSD2/SCA. Обновите WooCommerce и Stripe Payment Gateway до последних стабильных версий.
2. Включите поддержку SCA в настройках Stripe
Перейдите в настройки WooCommerce > Платежи > Stripe и убедитесь, что опция «Включить поддержку 3D Secure / SCA» активирована.
3. Используйте Payment Intents API вместо Charges API
Stripe рекомендует использовать Payment Intents API для поддержки SCA. Плагин WooCommerce Stripe уже реализует это, но если вы кастомизируете интеграцию, убедитесь, что используется именно Payment Intents.
4. Добавьте обработку 3D Secure на стороне фронтенда
Плагин автоматически вызывает Stripe.js и обрабатывает 3D Secure, но при кастомных решениях нужно реализовать следующий код:
const stripe = Stripe('pk_test_...');
stripe.confirmCardPayment(clientSecret).then(function(result) {
if (result.error) {
// Обработка ошибки
} else if (result.paymentIntent.status === 'succeeded') {
// Платёж прошёл успешно
}
});5. Проверьте правильность webhook-ов Stripe
Webhook-ы необходимы для получения статуса платежа после прохождения аутентификации. В панели Stripe в разделе Developers > Webhooks:
- Проверьте, что URL webhook настроен и доступен.
- Он должен принимать события
payment_intent.succeeded,payment_intent.payment_failed,charge.succeededиcharge.failed.
Проверка результата после внедрения решений
После внесения изменений следует проверить, что ошибка исчезла:
- Сделайте тестовый заказ с картой, требующей 3D Secure (например, Stripe предоставляет тестовые карты с необходимостью аутентификации).
- Убедитесь, что появляется окно 3D Secure для подтверждения платежа.
- После успешного подтверждения заказ должен завершиться без ошибки «Identity Verification Required».
- Проверьте логи WooCommerce и Stripe — платежи должны иметь статус
succeeded.
Частые ошибки и как их исправить
- Ошибка: Сайт не вызывает 3D Secure аутентификацию
Причина: Используется устаревший API Charges или отключена поддержка SCA.
Решение: Обновить плагин и включить Payment Intents в настройках. - Ошибка: Webhook Stripe не настроен или не работает
Причина: Stripe не получает уведомления о статусе платежа.
Решение: Проверьте URL webhook-а, его доступность и правильную обработку событий. - Ошибка: Кэширование мешает прохождению платежа
Причина: Статические страницы или кеширующие плагины блокируют динамическую работу Stripe.js.
Решение: Исключите страницы оформления заказа и оплаты из кеширования.
Практические советы по безопасности и производительности
- Всегда используйте HTTPS для страницы оплаты — Stripe требует защищённое соединение.
- Регулярно обновляйте плагины WooCommerce и Stripe для поддержания совместимости и безопасности.
- Отключите кеширование для страниц корзины и оформления заказа, чтобы не мешать работе AJAX и Stripe.js.
- Для тестирования используйте тестовые ключи Stripe и тестовые карты, чтобы не создавать реальные транзакции.
Сравнение вариантов решения проблемы с оплатой в WooCommerce через Stripe
| Метод | Плюсы | Минусы |
|---|---|---|
| Использование официального плагина WooCommerce Stripe | Полная поддержка SCA, автоматическая обработка 3D Secure, регулярные обновления | Зависимость от обновлений плагина, возможные конфликты с другими плагинами |
| Кастомная интеграция Stripe с Payment Intents API | Гибкость, возможность тонкой настройки под задачи | Требует глубоких знаний API Stripe, больше шансов допустить ошибку |
| Использование сторонних плагинов для Stripe | Могут иметь дополнительные функции | Риск отсутствия поддержки PSD2/SCA, несовместимость |