Skip to content

Billing сервис для покупки/возврата подписки

Notifications You must be signed in to change notification settings

likeinlife-cinema-project/billing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

db35a70 · Mar 9, 2024

History

49 Commits
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024
Mar 9, 2024

Repository files navigation

Проектная работа: диплом

Выбранная тема: биллинг

Функциональные требования

  1. Однократная оплата подписки
  2. Оплата с автопродлением
  3. Возврат денег за подписку: вычисляется по функции, учитывающей использованное время
  4. Админ-панель
    1. Оплата
    2. Возвраты: одобрение и отклонение
    3. Подписки
    4. Подписки пользователей

Ссылка на репозиторий

https://github.com/likeinlife/graduate_work

Авторы

  • @likeinlife
  • @maxim-zaitsev
  • @jannyss
  • @BenderEg

Запуск и остановка

  • make env - первое, что нужно сделать - сформировать .env файл.

DEV (mock платежный сервис, красивые логи, дебаг, не запускается ELK)

  1. make up - запустить все необходимые компоненты системы в dev-режиме
  2. make create-admin email=<email> password=<password> - создать админ-пользователя. Примечательно, что пароль должен быть больше 6 символов. Например: make create-admin email=123@mail.ru password=123qwe
  3. make downv - удаление контейнеров и volume

PROD (ЮКасса, ELK, логи - json)

  1. см. примечания для prod-режима
  2. make p-up - запустить все необходимые компоненты системы в dev-режиме
  3. make p-create-admin email=<email> password=<password> - создать админ-пользователя. Примечательно, что пароль должен быть больше 6 символов. Например: make create-admin email=123@mail.ru password=123qwe
  4. make p-downv - удаление контейнеров и volume

Тестовый сценарий (dev)

  1. Запустить сервис, создать админа
  2. Залогиниться на http://localhost:8001/api/openapi на ручке api/v1/auth/signin
  3. Перейти на http://localhost:8000/admin, залогиниться, создать объект Subscriptions, скопировать id
  4. Перейти на http://localhost:8000/api/schema/swagger-ui, создать объект payments с помощью ручки /payments/
  5. Вернуть платеж с помощью /payments/refund/
  6. Перейти в админку, модель Refunds, вернуть с помощью actions

Примечание для prod-режима

В dev-режиме используется мок-сервис оплаты, в prod - ЮКасса.

Соответственно, для запуска приложения в prod-режиме необходимо получить ключи ЮКассы и записать в переменные окружения перед запуском (BILLING_SHOP_ID, BILLING_SECRET_KEY) Также нужен публичный ip-адрес для приема вебхука, можно использовать ngrok, прописав соответсвующий ip-адрес в ссылке для вебхука. в поле BILLING_REDIRECT_URL указывается ссылка для возвращения пользователя на сайт после совершенной оплаты (в нашем случае частичного запуска онлайн-кинотеатра указываем http://google.com/)

Основные компоненты сервиса

c4