- Как проверить, что ваш онлайн-платёж прошёл проверку 3-D Secure в режиме «тестовой карты»
- Почему это важно?
- Как работает 3-D Secure в тестовом режиме
- Пошагово: как проверить, что 3-D Secure сработал
- Таблица: тестовые карты и их поведение в 3-D Secure
- Что выбрать в зависимости от ситуации
- Частые ошибки
- Как лучше сделать
- Сценарии: что делать, если что-то пошло не так
- Итог: что делать прямо сейчас
Как проверить, что ваш онлайн-платёж прошёл проверку 3-D Secure в режиме «тестовой карты»
Вы настраиваете платёжную систему — Stripe, PayPal, Яндекс.Касса, или что-то своё — и хотите убедиться, что 3-D Secure работает. Не просто «вроде работает», а действительно: проверка прошла, система увидела ответ от банка, и платёж засчитан как защищённый. Но вы не можете использовать реальную карту. Или боитесь, что случайно спишете деньги. Или просто не хотите рисковать. Поэтому вы используете тестовую карту. И тут возникает вопрос: как понять, что 3-D Secure фактически сработал, а не просто пропустил платёж мимо проверки?
Это не про то, как настроить тестовые ключи. Это про то, как убедиться, что проверка прошла реально, как если бы это была живая карта. И да — это реально можно проверить. Без риска, без денег, без лишних звонков в поддержку.
Почему это важно?
Если 3-D Secure не срабатывает — вы теряете защиту от споров. Платёж может быть признан неподтверждённым, и вы рискуете потерять деньги по спору. Банк клиента может отказать в компенсации, потому что не было подтверждения через 3-D Secure. Это не теория — это реальные потери. Особенно если вы продаете цифровые товары, подписки или услуги, где нет физического возврата.
Но если вы просто вводите тестовую карту и видите «Success» — это не значит, что 3-D Secure сработал. Это значит, что платёж прошёл. Без проверки. И вы об этом даже не узнаете.
Как работает 3-D Secure в тестовом режиме
Тестовые карты — это не просто номера, которые «не снимают деньги». Они эмулируют поведение реальных карт. У каждой платёжной системы есть свои наборы тестовых карт, и каждая из них имитирует определённый сценарий:
- Успешная аутентификация
- Отказ в аутентификации
- Требуется дополнительная верификация (например, SMS-код)
- Платёж отклонён банком
- 3-D Secure не поддерживается
Ключевое: вы должны не просто ввести номер карты, а понять, какой именно сценарий она запускает. И потом — проверить, что ваша система правильно обработала этот сценарий.
Пошагово: как проверить, что 3-D Secure сработал
- Выберите правильную тестовую карту
У каждой платёжной системы — свои карты. Например:
— Stripe:4000002500003155— успешный 3-D Secure
— Stripe:4000002760003184— требует аутентификации (имитирует SMS)
— Adyen:4111111111111111— сработает как 3-D Secure, если включён в настройках
— PayPal: тестовые карты не используются напрямую — вместо этого используется Sandbox с виртуальными аккаунтамиВажно: не используйте карты из старых гайдов. Номера меняются. Всегда сверяйтесь с официальной документацией вашей платёжной системы.
- Запустите платёж в тестовом режиме
Убедитесь, что вы не в продакшене. В Stripe — это флагlive_mode=false. В PayPal — вы в Sandbox. В Яндекс.Кассе — тестовый ключ и режимtest. Если вы не уверены — проверьте URL: если тамapi.stripe.com— это продакшен. Еслиapi.stripe.com/v1/test— это тест. Уточните у своей системы. - Следите за поведением
После ввода номера тестовой карты вы должны увидеть окно 3-D Secure — всплывающее окно, фрейм, или перенаправление на сайт банка (даже если это фейковый банк). Если его нет — 3-D Secure не запущен. Это уже тревожный знак. - Пройдите проверку
Если система требует ввести код — введите любой (например,123456). В тестовом режиме код не проверяется. Важно — вы должны его ввести. Не закрыть окно. Не пропустить. Это симулирует реальный процесс. - Проверьте ответ от платёжной системы
После завершения платёжа — зайдите в панель администратора вашей платёжной системы (Stripe Dashboard, Adyen Customer Area и т.д.). Найдите этот платёж. Откройте его детали. Ищите поле:
—three_d_secure
—authentication_result
—statusЕсли вы видите что-то вроде:
"three_d_secure": { "status": "authenticated" }
— значит, проверка прошла. Если там"status": "not_enrolled"или"status": "failed"— значит, 3-D Secure не сработал, или карта не поддерживает его. - Сравните с ожидаемым результатом
Вернитесь к таблице тестовых карт. Вы использовали4000002500003155— она должна датьauthenticated. Если вы получилиfailed— значит, что-то не так с вашей интеграцией. Возможно, вы не включили 3-D Secure в настройках, или не передаёте нужные параметры (например,payment_method_data[card][three_d_secure]).
Таблица: тестовые карты и их поведение в 3-D Secure
| Платёжная система | Тестовая карта | Ожидаемый результат 3-D Secure | Что проверять в панели |
|---|---|---|---|
| Stripe | 4000002500003155 |
Успешная аутентификация | three_d_secure.status == "authenticated" |
| Stripe | 4000002760003184 |
Требуется аутентификация (имитация SMS) | three_d_secure.status == "authenticated" (после ввода кода) |
| Stripe | 4000008260003178 |
Отказ в аутентификации | three_d_secure.status == "failed" |
| Adyen | 4111111111111111 |
Успешная аутентификация (если 3DS включён) | Проверьте authResult в paymentDetails |
| PayPal | Не используются | Используйте тестовый аккаунт покупателя в Sandbox | Проверьте payment_status и auth_status в вебхуке |
| Яндекс.Касса | 4000000000000002 |
Успешная аутентификация | В ответе API: "three_d_secure": true |
Важно: в Adyen и PayPal поведение может зависеть от настроек терминала. Если вы используете их — убедитесь, что в настройках платёжного аккаунта включён 3-D Secure v2. Без этого даже правильная карта не запустит проверку.
Что выбрать в зависимости от ситуации
- Если вы тестируете интеграцию впервые — начните с
4000002500003155(Stripe) или4000000000000002(Яндекс.Касса). Это самый простой сценарий: «всё прошло успешно». Если он не работает — проблема в базовой настройке. - Если вы проверяете обработку отказов — используйте карту с
failedрезультатом. Убедитесь, что ваша система не просто «падает», а показывает пользователю понятное сообщение: «Платёж не подтверждён банком. Попробуйте другую карту». - Если вы делаете мобильное приложение — проверьте, что 3-D Secure открывается в встроенном браузере, а не в отдельном приложении банка. В iOS и Android это критично: если приложение перекидывает в Safari или Chrome — это может сломать возврат в ваше приложение. Тестовые карты помогут проверить этот сценарий.
- Если вы продаете в ЕС — вам обязательно нужен 3-D Secure v2. Проверьте, что в ответе от платёжной системы есть поле
eci_flagсо значением05или06— это означает, что используется именно v2. Старый v1 уже не соответствует PSD2.
Частые ошибки
- Проверяете только статус «Success». Платёж может быть успешен, а 3-D Secure — не запущен. В Stripe это выглядит как
status: "succeeded"иthree_d_secure: null. Это опасно. - Используете одну и ту же карту для всех тестов. Если вы всегда используете
4000002500003155, вы никогда не узнаете, как ваша система ведёт себя при отказе или требовании кода. - Забываете включить 3-D Secure в настройках. В Stripe это не включено по умолчанию. Нужно зайти в Dashboard → Payments → 3D Secure → включить. Без этого даже правильная карта не запустит проверку.
- Проверяете только в браузере. На мобильном устройстве может быть другое поведение. Проверяйте на iPhone и Android. Особенно если вы используете WebView.
- Думаете, что «тестовая карта» = «без проверки». Нет. Тестовая карта эмулирует проверку. Если вы её не проходите — вы не тестируете 3-D Secure. Вы тестируете обход проверки.
Как лучше сделать
- Создайте чек-лист для тестирования. Заведите таблицу в Google Sheets: карта → ожидаемый результат → что проверили → дата. Это спасёт вас, когда вы будете добавлять новые платежные методы.
- Настройте вебхуки. Не полагайтесь только на панель. Подключите вебхук на событие
payment_intent.succeededи проверяйте, что в теле приходитthree_d_secure.status == "authenticated". Это ваша «автоматическая проверка». - Тестируйте не только «да», но и «нет». Запустите платёж с картой, которая должна отклониться. Убедитесь, что пользователь не видит «Ошибка 500», а видит понятное сообщение. Это критично для конверсии.
- Проверяйте логи сервера. Если вы видите, что платёж прошёл, но в логах нет вызова API к
/v1/payment_intents/{id}/confirmс параметромuse_stripe_sdk=true— значит, вы не запускаете 3-D Secure. Это частая ошибка в кастомных интеграциях.
Сценарии: что делать, если что-то пошло не так
- Ситуация: Вы ввели тестовую карту, но окно 3-D Secure не появилось.
Что делать: Проверьте, включён ли 3-D Secure в настройках платёжной системы. Проверьте, передаёте ли выpayment_method_data[card][three_d_secure]илиuse_stripe_sdk=true. Проверьте, что вы используете новую версию SDK. Старые версии могут не поддерживать v2. - Ситуация: В панели вы видите
three_d_secure.status == "not_enrolled".
Что делать: Это значит, что карта не зарегистрирована в системе 3-D Secure. Это нормально для некоторых тестовых карт. Попробуйте другую — например,4000002760003184. Если и она даётnot_enrolled— возможно, вы не используете правильный тип карты (например, дебетовую вместо кредитной). Или ваша платёжная система не поддерживает 3-D Secure для этого типа карты. - Ситуация: Платёж прошёл, но в логах вы не видите вебхук с подтверждением аутентификации.
Что делать: Убедитесь, что ваш вебхук настроен на правильный URL и имеет статус «Active». Проверьте, что он не блокируется фаерволом. Используйте инструмент вроде webhook.site для временного тестирования.
Итог: что делать прямо сейчас
Вот что вам нужно сделать сегодня:
- Зайдите в панель вашей платёжной системы (Stripe, Яндекс.Касса и т.д.).
- Найдите раздел «Тестовые карты» в документации.
- Возьмите одну тестовую карту, которая должна пройти 3-D Secure (например,
4000002500003155для Stripe). - Запустите платёж в тестовом режиме. Пройдите все шаги — включая ввод кода, если он запрашивается.
- Зайдите в панель администратора. Найдите этот платёж. Проверьте поле
three_d_secure.status. - Если там
authenticated— вы сделали всё правильно. Если нет — ищите ошибку в настройках. - Повторите с картой, которая должна отказать. Убедитесь, что ваша система не ломается.
Если вы это сделаете — вы не просто «проверили». Вы подтвердили, что ваша система защищает платёж. Это значит, что если клиент в будущем спорит с банком — вы будете в безопасности. И не потеряете деньги.
Информация в этой статье носит ознакомительный характер. Настройка платёжных систем требует понимания юридических и технических рисков. Перед внедрением в продакшен проконсультируйтесь с техническим специалистом или платёжным провайдером.
