Техническое задание: Модернизация системы подписок
Текущая ситуация
В существующем Android-приложении на Unity реализована система подписок, которая использует разные платёжные шлюзы в зависимости от региона пользователя. Для одного региона используется нативная интеграция с платёжной системой через сервер, для остальных - стандартный механизм Unity In-App Purchases (IAP). В данный момент доступны подписки на 1, 3 и 6 месяцев.
Цели проекта
- Изменение структуры доступных подписок.
- Реализация функции апгрейда подписки для пользователей из определённого региона.
- Сохранение и адаптация логики определения региона.
Основные задачи
1. Реорганизация продуктов подписки
- Удалить из системы (на стороне сервера) подписки на 3 и 6 месяцев.
- Добавить в систему (на стороне сервера) новую подписку сроком на 1 неделю.
- Оставить в итоге только два продукта: недельная подписка и месячная подписка.
2. Реализация апгрейда подписки
- Разработать механизм перехода (апгрейда) пользователя с недельной подписки на месячную.
- Данная функция должна работать только для пользователей из определённого региона, где используется нативная платёжная система.
- Логика работы апгрейда должна быть максимально приближена к стандартному поведению механизма апгрейда в Unity IAP.
3. Работа с регионами
- Сохранить существующую систему определения региона пользователя.
- Обеспечить, чтобы логика апгрейда корректно активировалась только для целевого региона.
- Для всех остальных регионов должна продолжать работать стандартная система Unity IAP с двумя типами подписок (неделя и месяц), но без функции апгрейда.
Технические требования
- Изменения должны быть реализованы как на стороне сервера (продукты, логика), так и в клиентской части приложения (Unity C#).
- Необходимо обеспечить стабильную работу существующей функциональности для пользователей из всех регионов.
- Код должен быть написан чисто и сопровождаться комментариями.