Редактируемый текст · Автосохранение · Копирование в Jira wiki формате
dp ❌
Все проверки проводились мануально на deploy-preview ветке api-2020.review, данные верифицировались через PgWeb (Teleport). Создано 10 тестовых аккаунтов.
Проверяла по шагам из комментария Марата:
Завела трёх юзеров с разными провайдерами и картами. У всех триал активировался корректно:
| Аккаунт | Провайдер | Карта | Что в БД |
|---|---|---|---|
| 798@mail.com | Prodamus (RUB) | Visa 4242 | trial_ends_at = 2026-04-02, type=1 ✅ |
| 798b@mail.com | Stripe (USD) | Visa 4242 | trial_ends_at = 2026-04-02, type=1 ✅ |
| 798i@mail.com | Prodamus (RUB) | МИР 2200...0004 | trial_ends_at = 2026-04-02, type=1 ✅ |
Во всех случаях card_fingerprints, subscription_logs и bot_ownership_history заполнились как надо.
На review-ветке нет возможности переключиться с Premium/Unlimited на Pro — UI для этого не предусмотрен. Проверить не удалось.
Сделала цепочку из трёх юзеров:
798@ (триал, бот 8630860407) → передала бота → 798e@ (получил триал с другой картой) → передала бота дальше → 798f@ попробовал триал → заблокирован (type=4, trial_ends_at=NULL).
Также проверила:
798b@ активировал триал картой 4242 через Stripe. Завела 798c@ с той же картой — триал заблокирован (type=4, trial_ends_at=NULL). Всё ок.
Ещё проверила:
Антифрод не работает для Prodamus! Проверила на двух разных картах:
1) Visa 4242: 798@ получил триал → 798d@ использовал ту же карту → триал активировался! В БД type=1, trial_ends_at заполнен. При этом card_hash у обоих аккаунтов одинаковый — бэкенд видит что карта та же, но не блокирует.
2) МИР 2200 0000 0000 0004: 798i@ получил триал → 798j@ использовал ту же МИР-карту → триал снова активировался! card_hash тоже одинаковый.
Итого: через Stripe блокировка работает, через Prodamus — нет. Пользователь может бесконечно получать триалы через Prodamus одной и той же картой.
user_fingerprint = NULL у всех 10 аккаунтов. Таблица user_fingerprints полностью пустая. Device fingerprint не записывается ни через Stripe, ни через Prodamus — поэтому проверить сценарий с разными устройствами невозможно.
Та же причина — user_fingerprint нигде не записывается, проверка невозможна.
798e@ — аккаунт без ботов, триал активировался без проблем. bot_ownership_history пуст, как и ожидалось.
hasFingerprint = false у всех юзеров, даже у тех, кто уже активировал триал. По плану ожидалось true после активации.
🐛 Фронтенд показывает «You've activated the Pro plan» при заблокированном триале
Когда триал блокируется (type=4), фронтенд всё равно показывает страницу успеха с зелёной галочкой и текстом «You've activated the Pro plan». Пользователь думает что триал работает, а на самом деле в БД — trial_ends_at=NULL. Воспроизвела на 798c@ и 798f@.
⚠️ Разные провайдеры — разные хеши одной карты. Одна и та же карта 4242 даёт разный card_hash через Stripe и Prodamus. Это значит, что даже если починить Prodamus, юзер сможет обойти антифрод: получить триал через Stripe (USD), а потом через Prodamus (RUB) с той же картой — хеши не совпадут.
⚠️ При блокировке триала Stripe списывает $20. В Transaction history заблокированного юзера видна авторизация $20. Нужно проверить — это hold, который потом отменяется, или реальное списание.