← Главная

DS-798 — Антифрод для триала

Детальный отчёт по кейсам 13–14 апреля 2026 (новый документ)

JiraDS-798
Frontenddeploy-preview-927
Backendapi-2020.review.chatplace.io
Дата отчёта14 апреля 2026
РежимРучной UI + Network JSON
4
PASS
2
FAIL/BLOCKED
2
Observation
7
Ключевых кейсов

🐛 BUG #1 (CloudPayments): success-экран Pro при фактическом Free

Факт: после оплаты показывается «Вы подключили тариф Pro», но в аккаунте остаётся Free.

JSON: hasFingerprint:true, isTrial:false, isFree:true, availableTrialDays:7.

Воспроизведение: повторы на карте 5555 и карте МИР 2200 0000 0000 0004.

Разблюдовка по аккаунтам (текущий прогон)

EmailПровайдерКартаКлючевой итогJSON/план
798a4@mail.comStripe4242Базовый trial (референсный аккаунт)trial выдан
798b4@mail.comStripe4242 (повтор)Антифрод сработалisTrial:false, availableTrialDays:0, paid Pro
798v4@mail.comStripeповтор + AI OFFАнтифрод сработалбез trial, paid Pro
798cp1@mail.comCloudPaymentsCP тестНеконсистентный результатsuccess в UI, но фактически Free
798cp2@mail.comCloudPayments5555 (повтор)FAIL/BLOCKEDhasFingerprint:true, isTrial:false, isFree:true
798cp3@mail.comCloudPayments5555 (повтор)FAIL/BLOCKED (повторяемо)UI success, в аккаунте Free
798mir1@mail.comCloudPaymentsМИР 2200...0004FAIL/BLOCKEDUI success, но activePlan:free, availableTrialDays:7
798mir2@mail.comCloudPaymentsМИР 2200...0004 (повтор)FAIL/BLOCKEDhasFingerprint:true, isTrial:false, isFree:true
798bot1@mail.comStripe4000056655665556Шаг 3 (перенос бота A→B) PASSпосле переноса trial не выдан: isTrial:false, availableTrialDays:0, paid Pro

Примечание: шаг 5 (та же карта + другое устройство) намеренно не тестировали по решению QA; шаг 6 считаем закрытым.

Матрица проверенных кейсов

КейсСтатусЧто получили
Stripe: первый юзер, карта 4242✅ PASSБазовый trial выдан корректно.
Stripe: второй юзер, та же карта 4242✅ PASSTrial заблокирован: isTrial:false, availableTrialDays:0, paid Pro.
Stripe: повтор с AI/Virale OFF✅ PASSПоведение такое же: без trial, платный Pro.
CloudPayments: карта 5555 (повтор)❌ FAILUI success, фактически Free + hasFingerprint:true.
CloudPayments: карта МИР 2200...0004❌ FAILUI success, фактически Free + isTrial:false, availableTrialDays:7.
Шаг 3: перенос бота A→B + карта 4000056655665556✅ PASSTrial не выдан: isTrial:false, availableTrialDays:0, активирован paid Pro.
Шаг 5: та же карта + другое устройство⏭️ НЕ ТЕСТИРОВАЛИОставлен комментарий как бизнес-риск (по решению QA).

Детали по шагу 3 (перенос бота)

PASS
ШагРезультат
У пользователя A подключен @antiantifrod_botДа
Бот отвязан у A и привязан новому владельцу BДа
Оплата у B новой картой 4000056655665556Успешно
Trial после переносаisTrial:false, availableTrialDays:0
Финальное состояниеПлатный Pro (антифрод сработал)
⚠️ UX замечание: при недоступном trial пользователю нужно явное сообщение/модалка с причиной (почему trial не выдан и почему произошло списание).
⚠️ Бизнес-замечание (шаг 5): логика «та же карта + другое устройство = trial разрешён» выглядит уязвимой для обхода антифрода через смену устройства/браузера.

Скриншоты-доказательства (сегодняшние)

CP: success экран
cp success
CP: в аккаунте остаётся Free
cp free
CP JSON: hasFingerprint true + isFree true
cp json
CP JSON: availableTrialDays 7
cp trial days
Перенос бота: подключён у нового владельца
bot connected
После переноса: paid Pro и isTrial false
bot transfer result

DB Evidence (api-2020 review) — только SELECT

Проверено
ПроверкаИтогДетали
usersOKНайдены 9 аккаунтов: 798a4, 798b4, 798v4, 798cp1, 798cp2, 798cp3, 798mir1, 798mir2, 798bot1.
subscription_logsOK / частично798a4 → type=1; 798b4/798v4/798bot1 → type=4. Для 798cp*/798mir* записей в этом наборе нет.
card_fingerprintsWARNINGИз набора запись найдена только у 798a4 (provider=stripe); user_fingerprint = NULL.
paymentsOKЕсть записи для Stripe и CP/МИР. У CP/МИР есть payment-события, но в UI остаётся Free (неконсистентность).
bot_ownership_historyOKПодтверждён перенос bot_id 8276525248: 798a4 → 798bot1.

Важно: выполнялись только SELECT-запросы, без INSERT/UPDATE/DELETE.