Skip to content

Использование Stripe API вместе с Django для оплаты товаров

Notifications You must be signed in to change notification settings

kurrbanov/stripe_task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Stripe Task

Оглавление

  1. О проекте
  2. Как запустить проект в Docker?
  3. Тестовый датасет
  4. Описание эндпоинтов
  5. Логирование

О проекте

В проекте представлено использование в Django StripeAPI для оплаты товаров.
NOTE: Данные карт для тестирования платёжной системы и промокоды:

Номер карты Статус
4242 4242 4242 4242 Success
4000 0000 0000 9995 Decline
4000 0025 0000 3155 Authentication
Промокод Действует Скидка
STRIPE25 Один раз 25%
RANKS15 В течении 3 месяцев 15%
STRIPE15 В течении 3 месяцев 15%
APP15 В течении 3 месяцев 15%
RANKS Всегда 10%

Как запустить проект в Docker?

Клонируйте репозиторий

Через SSH:

git clone git@github.com:kurrbanov/stripe_task.git

Через HTTPS:

git clone https://github.com/kurrbanov/stripe_task.git

Измените переменные окружения и переименуйте файл .env.example в .env

Note: Если у вас нет Stripe аккаунта, то зарегистрируйте его и укажите приватный и публичный ключ в .env

cp .env.example .env

Запустите приложение через docker-compose

docker-compose up -d --build

Подождите, пока поднимутся контейнеры, накатятся миграции и откройте в браузере http://localhost:8000

Тестовый датасет

В файле server/fill_db.py находится скрипт, который автоматически заполняет приложение тестовыми данными. Он запускается через server/Dockerfile после миграций. Можно изменить в нём значения и заполнить с его помощью БД.
P.S. superuser создаётся там же. Его имя, пароль и email находятся в server/.env

Описание эндпоинтов

1: GET /
Возвращает HTML-страницу со всеми Item, а также кнопку перехода в корзину с товарами.

2: GET /item/&id
Возвращает HTML-страницу с информацией о конкретном Item. В случае, если Item не существует, возвращает 404 Not Found.

3: GET /buy/&id
Создаёт сессию с платёжом и перенаправляет на неё. В случае, если Item не существует, возвращает 404 Not Found.

4: POST /add_to_order
Создаёт Order по сгенерированному uuid. uuid сохраняется в сессии, является идентификатором Order, удаляется через 24 часа.

5: GET /bucket
Возвращает список Item, которые связаны с Order.

6: POST /bucket
Принимает значение country = 'RU' | 'DE' | 'US' устанавливающий юрисдикцию, для последующего определения налоговой ставки.

7: GET /buy-bucket
Создаёт купоны(Discount), промокоды(PromoCode) и налоговые ставки(Tax) из базы данных в Stripe Dashboard. После чего создаёт сессию оплаты для Order, в котором учитываются промокоды и налоговая ставка.

8: GET /success
Возвращает HTML-страницу, уведомляющую об успешной оплате.

9: GET /cancel
Возвращает HTML-страницу, уведомляющую об проблемах с оплатой.

10: POST /clear
Очищает корзину.

Логирование

Все error-логи будут хранится в server/logs/error.log. После запуска проекта в Докере, автоматически создтастся папка logs и файл error.log.

WARNING: Если проект запускается не через Docker, то нужно будет создать папку с логами вручную.

About

Использование Stripe API вместе с Django для оплаты товаров

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors