- Django Модель Item с полями (name, description, price, image)
API с двумя методами:
-
GET /buy/{id}, c помощью которого можно получить Stripe Session Id для оплаты выбранного Item. При выполнении этого метода c бэкенда с помощью python библиотеки stripe выполняет запрос stripe.checkout.Session.create(...) и полученный session.id выдаваться в результате запроса
-
GET /item/{id}, c помощью которого можно получить HTML страницу, на которой будет информация о выбранном Item и кнопка Buy. По нажатию на кнопку Buy происходит запрос на /buy/{id}, получение session_id и далее с помощью JS библиотеки Stripe происходить редирект на Checkout форму stripe.redirectToCheckout(sessionId=session_id)
Решение опубликовано чтобы его можно было быстро и легко протестировать.
https://xboxer3003.pythonanywhere.com/
Реализованы следующие задачи:
-
Запуск используя Docker
-
Использование environment variables
-
Просмотр Django Моделей в Django Admin панели
-
Корзина, в которую можно добавить несколько товаров и оплатить их все сразу. После успешной оплаты из корзины удаляются все купленные товары и примененные купоны.
-
Выбор валюты. На главной странице можно выбрать одну из валют, все цены на сайте будут отображаться в выбранной валюте. Платеж будет совершен так же, в выбранной валюте.
-
Система купонов. На странице с содержимым корзины можно ввести код купона, если купон не просрочен и активен, к общей стоимости товаров в корзине будет применена скидка. Купоны имеют дату и время начала действия, дату и время конца действия, а так же флаг "активе/не активен". Купоны можно добавлять и редактировать в панели администратора.
-
Выполнить команду:
docker run --name dsp -it -p 8000:8000 iurij/dgango_stripe_project:v1.0
-
Перейти по адресу:
http://localhost:8000/
-
Клонировать репозиторий
git clone https://github.com/iurij-n/django_stripe.git
-
Создать и запустить виртуальное окружение
python -m venv venv
source venv/Scripts/activate
-
Установить зависимости
pip install -r requirements.txt
-
Перейти в папку 'django_stripe' и выполнить миграции
python manage.py migrate
-
Загрузить данные в базу данных
python manage.py loaddata db.json
-
Создать файл .env по шаблону .env.template и добавить в него публичный и секретные ключи Stripe-API
-
Запустить сервер
python manage.py runserver
-
Перейти по адресу:
http://localhost:8000/