Это реализация тестового задания по интеграции платежной системы Stripe с использованием Django. Проект представляет собой веб-сервис, который позволяет просматривать товары и оплачивать их через Stripe Checkout.
- Модель
Item: Django-модель для товара с полями: название, описание, цена и валюта. - Страница товара: Динамическая страница для каждого товара с кнопкой "Buy".
- Интеграция со Stripe:
- Создание платежной сессии (
Stripe Checkout Session) для выбранного товара. - Редирект на страницу оплаты Stripe.
- Создание платежной сессии (
- Панель администратора: Возможность управлять товарами через стандартную админ-панель Django.
- Поддержка нескольких валют: Оплата происходит в валюте, указанной для товара (USD, EUR, RUB).
- Конфигурация через переменные окружения: Безопасное управление ключами и настройками.
- Запуск с помощью Docker: Проект полностью контейнеризирован для упрощения развертывания и запуска.
- Бэкенд: Python, Django, Gunicorn
- База данных: PostgreSQL
- Платежная система: Stripe API
- Контейнеризация: Docker, Docker Compose
- Управление зависимостями: uv
Перед запуском необходимо сконфигурировать переменные окружения.
-
Скопируйте файл
.env.exampleв.env:cp .env.example .env
-
Откройте файл
.envи заполните его своими данными:SECRET_KEY: Секретный ключ Django. Можно сгенерировать новый.DEBUG:Trueдля разработки,Falseдля продакшена.ALLOWED_HOSTS: Список разрешенных хостов (например,localhost,127.0.0.1).DB_*: Настройки для подключения к PostgreSQL.STRIPE_SECRET_KEY: Секретный ключ Stripe (sk_test_...).STRIPE_PUBLISHABLE_KEY: Публичный ключ Stripe (pk_test_...).
Убедитесь, что у вас установлены Docker и Docker Compose.
-
Склонируйте репозиторий:
git clone https://github.com/github-main-user/django-stripe.git cd django-stripe -
Запустите проект с помощью Docker Compose:
docker commpose up --build
Команда соберет образы, запустит контейнеры с базой данных и веб-приложением, а также применит миграции.
-
Приложение будет доступно по адресу http://localhost:8000.
-
Склонируйте репозиторий и перейдите в директорию проекта.
-
Установите
uvи создайте виртуальное окружение:pip install uv uv venv source .venv/bin/activate -
Установите зависимости:
uv pip install -r requirements.txt
(Примечание: если
requirements.txtотсутствует, используйтеuv pip install django gunicorn "psycopg[binary]" python-decouple stripe) -
Примените миграции:
python manage.py migrate
-
Запустите сервер для разработки:
python manage.py runserver
-
Для доступа к панели администратора необходимо создать суперпользователя:
# Для Docker docker commpose exec web python manage.py createsuperuser # Для локального запуска python manage.py createsuperuser
-
Панель администратора будет доступна по адресу http://localhost:8000/admin/. Здесь вы можете добавлять и редактировать товары.
-
Страница товара:
GET /item/<id>/- Отображает HTML-страницу с информацией о товаре и кнопкой "Buy".
- Пример:
http://localhost:8000/item/1/
-
Создание платежной сессии:
GET /buy/<id>/- Внутренний эндпоинт, который вызывается JavaScript-кодом со страницы товара.
- Возвращает
session_idдля редиректа на страницу оплаты Stripe.