Search
Write a publication
Pull to refresh

Мифы и правда про 3DS и Stripe Radar: что реально влияет на прохождение платежа

Stripe — один из самых популярных платёжных шлюзов в мире. Он прост в интеграции, но часто вызывает головную боль у разработчиков из-за "невидимого" антифрода и внезапных запросов 3DS.

В этой статье я разберу:

  • когда и почему включается 3DS;

  • как работает Stripe Radar;

  • что реально влияет на прохождение платежа, а что — миф;

  • и почему не только карта, но и браузер может быть причиной отклонения.

Что такое 3DS и зачем он нужен?

3D Secure (3DS) — это дополнительный уровень аутентификации от банка-эмитента. По факту, это либо ввод кода из SMS, либо редирект на страницу подтверждения.

Stripe может запрашивать 3DS, даже если карта его не требует. Почему?

Потому что решение об этом может принять Stripe Radar — встроенная антифрод-система, анализирующая поведение клиента, fingerprint браузера, страну, IP, тип карты, и ещё десятки метрик.

🧠 Как Stripe решает, нужен ли 3DS?

Stripe собирает сигналы из:

  • JS SDK (m.stripe.com/6)

  • Локального fingerprint (__stripe_mid, __stripe_sid)

  • Поведения: focus/blur, тайминг ввода, размер окна, устройства ввода

  • IP-геолокации

  • BIN-категории карты (например, debit USA ≠ credit EU)

Эти данные передаются в Radar, который на их основе применяет правила — автоматические или кастомные.

📌 Даже если у карты нет обязательного 3DS, Radar может всё равно форсировать challenge, если сессия кажется подозрительной.

🧪 Разоблачение популярных мифов

❌ Миф 1: Если карта валидная, Stripe не запрашивает 3DS

Факт: Stripe может запросить 3DS по поведенческим причинам, даже если карта настоящая.

❌ Миф 2: Всё решает только банк

Факт: В случае с Radar, Stripe может “настоять” на challenge. Stripe ≠ просто прокси.

❌ Миф 3: Можно отключить 3DS через настройки

Факт: Нет. Stripe использует "динамический 3DS" и самостоятельно определяет необходимость.

Что реально влияет на 3DS и проход платежа

✅ Страна карты и гео пользователя
✅ Поведение пользователя (движение мыши, тайминг, взаимодействие)
✅ Наличие navigator.webdriver = true
✅ Fingerprint: canvas/audio/webgl + размер окна
✅ Использование TOR/VPN
✅ Чистота IP
✅ Тип браузера (обычный vs headless)

Где об этом говорят?

Официальная документация Stripe объясняет только базовые вещи. За деталями приходится идти глубже — в коммьюнити.

Что мы проверили руками

Мы провели 40+ тестов с разными конфигурациями:

  • обычный Chrome vs undetected-chromedriver

  • реальное поведение vs instant fill

  • IP USA vs ротационный мобильный

  • карта Visa debit США vs MasterCard Prepaid EU

Результат: при headless + instant + VPN вероятность 3DS → 83%.
А при "живом" поведении + clean IP + debit USA → 3DS не запрашивался вообще.

💡 Вывод

3DS — это не "банковская заглушка", а часть более широкой системы оценки сессии.
Radar — не только антифрод, но и UX-страж.

Чтобы понять, почему Stripe блокирует платёж, нужно не только проверять карту, но и анализировать поведение сессии и окружение браузера.

✉️ В следующей статье — подробный анализ, как m.stripe.com и r.stripe.com собирают fingerprint и какие JS-фичи наиболее критичны.

Если интересны конфиги undetected Chrome или примеры DevTools-логов — дайте знать в комментариях.

На техническом форуме bfd cash обсуждают реальные кейсы, когда Stripe режет сессии без объяснения, как именно работают JS-ловушки, и как SDK "опрашивает" окружение. Там же есть примеры с DevTools и HAR-записями поведения Stripe в разных условиях.

Tags:
+7
Comments0

Articles