Тестовое Django-приложение с интеграцией Stripe Checkout.
Приложение позволяет просматривать товары и заказы, создавать Stripe Checkout Session и переходить на страницу оплаты Stripe.
Приложение развернуто на Railway:
https://web-production-b54a0.up.railway.app/
Django Admin:
https://web-production-b54a0.up.railway.app/admin/
Данные для входа в админку: username: user
password: 123
- Django модель Item
- API с GET /buy/{id} и GET /item/{id}
- Решение есть на Github, а readme.md сейчас открыт)
- Решение опупликовано онлайн, а логпас к админке указан выше
- Запуск через Docker
- Использование env
- Просмотр моделей в админке
- Модели Order, Discount и Tax
В тестовом задании для перенаправления пользователя на страницу оплаты просят использовать stripe.redirectToCheckout() с session_id.
В документации я нашел, что redirectToCheckout больше не поддерживается в актуальной версии Stripe.js. Поэтому сделал как в документации Stripe сейчас:
- backend создаёт
Checkout Sessionи возвращает еёidиurl; - frontend получает данные с помощью
fetch(); - переход на Stripe Checkout выполняется через
window.location.href = session.url.
Получилось, что требование тестового задания сохранено, но устаревший способ перенаправления заменён на актуальный.
Клонируйте репозиторий и перейдите в папку проекта.
Создайте файл .env на основе .env.example и укажите необходимые переменные окружения.
docker compose up --build
Приложение будет доступно по адресу:
Установите зависимости:
pip install -r requirements.txt
Примените миграции и запустите сервер:
python manage.py migrate
python manage.py runserver
Спасибо большое за такое интересное тестовое задание! В целом, небольшие проблемы возникли только с Docker и деплоем так как раньше ни того, ни того делать не приходилось, хотя знал, что рано или поздно придется. Постарался максимально глубоко разобраться в той части документации Stripe, которая требуется для выполнения задания, а над Docker и деплоем (в частности Railway) пришлось попотеть, но сейчас все работает. Жду Вашего фидбека)