GithubHelp home page GithubHelp logo

stripe_api's Introduction

Задание по созданию API сервиса

Реализовать Django + Stripe API бэкенд со следующим функционалом и условиями:

  • Django Модель Item с полями (name, description, price)
  • API с двумя методами:
  1. GET /buy/{id}, c помощью которого можно получить Stripe Session Id для оплаты выбранного Item. При выполнении этого метода c бэкенда с помощью python библиотеки stripe должен выполняться запрос stripe.checkout.Session.create(...) и полученный session.id выдаваться в результате запроса
  2. GET /item/{id}, c помощью которого можно получить простейшую HTML страницу, на которой будет информация о выбранном Item и кнопка Buy. По нажатию на кнопку Buy должен происходить запрос на /buy/{id}, получение session_id и далее с помощью JS библиотеки Stripe происходить редирект на Checkout форму stripe.redirectToCheckout(sessionId=session_id)

Копирование репозитория и установка зависимостей

Установить environment variables в папке project_api_stripe

создать файл .env и заполнить eго ключами

  1. STRIPE_SK = <stripe_sk>

  2. SECRET_KEY = <secret_key>

  3. STRIPE_PUBLIC_KEY = <your_public_key>

Применение миграций, создания суперпользователя и запуск проекта

  • python manage.py migrate

  • python manage.py createsuperuser

  • python manage.py runserver

Команда для запуска через docker

docker-compose up --build

тесты

pytest

Эндпоинты

GET /buy/1 Ответ: {"sessionId" : "cs_test_a11vg19jNPJzFfyK5gQ4qys6JiaxsapbCHD8R3D5mSPxvlGv0tQ1BEPAxN"} GET /item/1 Ответ:

<html>
<head>
    <title>Buy Item {{ product.id }}</title>
</head>
<body>
<h1>Item 1 </h1>
<p>Description of Item 1 </p>
<p> test </p>
<button id="buy-button">Buy</button>
<script src="https://js.stripe.com/v3/"></script>
<script type="text/javascript">
      const stripe = Stripe("{{ STRIPE_PUBLIC_KEY }}");
      var buyButton = document.getElementById("buy-button");
        buyButton.addEventListener('click', function() {
    fetch("/buy/1/", {method: 'GET'})
    .then((result) => { return result.json(); })
    .then((data) => {
            console.log(data);
            // Redirect to Stripe Checkout
            return stripe.redirectToCheckout({sessionId: data.sessionId})
          })
          });

    </script>
</body>
</html>

stripe_api's People

Contributors

battal99 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.