← Главная

DS-798 — Комментарий для Jira

Редактируемый текст · Автосохранение · Копирование в Jira wiki формате

✅ Скопировано!

dp ❌

Все проверки проводились мануально на deploy-preview ветке api-2020.review, данные верифицировались через PgWeb (Teleport). Создано 10 тестовых аккаунтов.

Проверяла по шагам из комментария Марата:


Шаг 1. Новый юзер получает триал — ✅ PASS

Завела трёх юзеров с разными провайдерами и картами. У всех триал активировался корректно:

АккаунтПровайдерКартаЧто в БД
798@mail.comProdamus (RUB)Visa 4242trial_ends_at = 2026-04-02, type=1 ✅
798b@mail.comStripe (USD)Visa 4242trial_ends_at = 2026-04-02, type=1 ✅
798i@mail.comProdamus (RUB)МИР 2200...0004trial_ends_at = 2026-04-02, type=1 ✅

Во всех случаях card_fingerprints, subscription_logs и bot_ownership_history заполнились как надо.


Шаг 2. Unlimited/Club → переход на Pro, триал доступен — ⏭️ SKIPPED

На review-ветке нет возможности переключиться с Premium/Unlimited на Pro — UI для этого не предусмотрен. Проверить не удалось.


Шаг 3. Перенос бота → блокировка триала — ✅ PASS

Сделала цепочку из трёх юзеров:

798@ (триал, бот 8630860407) → передала бота → 798e@ (получил триал с другой картой) → передала бота дальше → 798f@ попробовал триал → заблокирован (type=4, trial_ends_at=NULL).

Также проверила:


Шаг 4. Повторная карта через Stripe → блокировка — ✅ PASS

798b@ активировал триал картой 4242 через Stripe. Завела 798c@ с той же картой — триал заблокирован (type=4, trial_ends_at=NULL). Всё ок.

Ещё проверила:


Шаг 4b. Повторная карта через Prodamus → блокировка — 🐛 BUG (Critical)

Антифрод не работает для 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 одной и той же картой.


Шаг 5. Та же карта + другое устройство → триал разрешён — ⚠️ НЕ УДАЛОСЬ ПРОВЕРИТЬ

user_fingerprint = NULL у всех 10 аккаунтов. Таблица user_fingerprints полностью пустая. Device fingerprint не записывается ни через Stripe, ни через Prodamus — поэтому проверить сценарий с разными устройствами невозможно.


Шаг 6. Та же карта + то же устройство → триал заблокирован — ⚠️ НЕ УДАЛОСЬ ПРОВЕРИТЬ

Та же причина — user_fingerprint нигде не записывается, проверка невозможна.


Шаг 7. Юзер без ботов → триал разрешён — ✅ PASS

798e@ — аккаунт без ботов, триал активировался без проблем. bot_ownership_history пуст, как и ожидалось.


Шаг 8. API поле hasFingerprint — ⚠️ WARNING

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, который потом отменяется, или реальное списание.

Автосохранение активно