Skip to content

Imrandeveloper/leo-payment-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Платежная система-агрегатор сервисов

Платежная система предназначена для получения финансовых транзакции с внешней платежной системы и распределения финансовых транзакций на внешние сервисы, подключенные к данной системе.

Порядок работы

  1. Точка входа: POST /api/v1/transactions/
{
  "amount": 0,  # размер платежа в копейках
  "billing": "string",  # system_name биллинга, зерегистрированного в leopay
  "final_url": "string",  # URL, на который необходимо вернуть пользователя после оплаты
  "service_id": 0,  # (не обязательный) id услуги биллинга, на будущее
  "billing_userid": 0  # id пользователя в системе биллинга. Передается as-is обратно при передаче статуса оплаты
}
  1. Leopay формирует url страницы оплаты, регистрируя платеж, и переадресовывает клиента на нее.

! Если страницу оплаты не получается сформировать клиент окажется на странице с текстом ошибки.

В url страницы оплаты встроен адрес страницы подтверждения оплаты (GET /api/v1/transactions/approve/)

  1. После оплаты клиент будет автоматически перенаправлен GET /api/v1/transactions/approve/ и от туда в свою очередь сразу же на final_url.

Затем Leopay запросит подтверждение оплаты от сбербанка и при успешном статусе отправит подписанное подтверждение оплаты биллингу:

{
  "id": 0,  # id платежа leopay
  "account_id": 0,  # аккаунт биллинга
  "amount": 0,  # размер платежа в копейках
  "payment_date": "string",  # время внесения денег в систему сбербанка
  "signature": "string"  # зашифрованный хэш (base64)
}

Данное подтверждение будет отправляться повторно при потере соединения или других ошибках со стороны биллинга.

Примечание

Если по какой-то причине перенправление на шаге 3 не будет выполнено, то система запросит статус оплаты у сбербанка по истечении заданного времени (по умолч. 20 мин)

Возврат оплаты

Система ни как не обрабатывает воврат денег после произведения оплаты (если он возможен)

Развертывание

cp .env_default .env && nano .env
cd leo-payment-docker
docker-compose build
docker-compose up
  • для тестов с биллингом на той же машине (биллинг надо прицепить к leopay-test-net, для Питсунды есть конфиг docker-compose-test)
docker network create -d bridge leopay-test-net
docker-compose -f docker-compose-dev.yml up
  • в контейнере БД
psql -U postgres -c "CREATE USER $POSTGRES_USER PASSWORD '$POSTGRES_PASSWORD'"
psql -U postgres -c "CREATE DATABASE $POSTGRES_DB;"
  • копируем pg_hba.conf в ./pgdata и перезапускаем контейнер бд (и джанги если не хочет подключаться)
  • создаем супер юзера как обычно внутри контейнера джанги
  • делаем роль (группу) Бухгалтер и выдаем права на view_transaction и можно на контрагентов и биллинги
  • при создании биллинга прописываем url вида http://<domen>/api/v1/<add_payment_action>/
  • в ./src/keys/ закинуть rsa_pay_priv.key, а парный rsa_pay_pub.key в соотв директории биллинга(ов)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published