Как подключить платежную систему в django?

Я новичок во фреймворке Django и не совсем понимаю, как подключить платежную систему к сайту, при этом, чтобы часть оплаты за товар шла на баланс пользователя, который его выставил, а 10%-20% от суммы шло на баланс сервиса. И как лучше всего подключить платежную систему для физ.лиц?

Итак, вам нужно ответить себе на несколько вопросов, таких как:

  1. Какой платежный провайдер мне нужен? Это должен быть paypal, stripe или...
  2. .
  3. Если я знаю, какой платежный провайдер мне нужен, есть ли пакет для django (или python) для него?
  4. Если да, то насколько он актуален?
  5. Если нет, то были ли обновления API или решений, описанных в документации платежного провайдера?
  6. Лучше ли они в каком-либо смысле?
  7. В зависимости от этих ответов, вы можете перейти к реализации платежей с помощью внешней библиотеки (например, https://django-paypal.readthedocs.io/en/latest/) или просто реализовать это самостоятельно. В моей ситуации, когда я реализовал платежи paypal в магазине e_commerce, я просто выбрал кнопки paypal, потому что они выглядели лучше, и они, пока что, работают более приятно.

    В основном вы должны реализовать то, что Paypal называет IPN (мгновенные уведомления о платежах). Stripe и, например, TPay также имеют IPN-подобные механизмы. IPN - это просто представление (функциональное или общее), которое обрабатывает платежи, используя данные с обычно md5 проверкой, где вы обновляете статус заказа до COMPLETED или и так далее.

    Отсутствие проверки безопасности может сделать конечную точку уязвимой для пользовательских запросов, выполняемых postman, curl или любым другим инструментом HTTP-тестирования.

    Что касается моделей - вы должны написать их сами или использовать предоставленные пакетом. Обычно это означает, что при нескольких платежах вы храните одну модель для каждого провайдера с ForeignKey к Order глобальной модели, которая собирает все данные. Вы также можете использовать abstract модели для реализации нескольких моделей с одинаковыми полями, но это вызывает некоторые проблемы с запросами к базе данных для дополнительной обработки логики (вы не можете запрашивать абстрактные модели, поэтому вам нужно разбирать материал с помощью циклов forloops, когда вам это нужно, вместо использования фильтров).

    Frontend также зависит от того, что вы будете использовать, но помните о том, что цена не должна быть скрытым входом :)

    Нить намного больше, как кажется, но я надеюсь, что дал вам представление о теме.

Вернуться на верх