Платежная система предназначена для получения финансовых транзакции с внешней платежной системы и распределения финансовых транзакций на внешние сервисы, подключенные к данной системе.
- Точка входа:
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 обратно при передаче статуса оплаты
}
- Leopay формирует url страницы оплаты, регистрируя платеж, и переадресовывает клиента на нее.
! Если страницу оплаты не получается сформировать клиент окажется на странице с текстом ошибки.
В url страницы оплаты встроен адрес страницы подтверждения оплаты (GET /api/v1/transactions/approve/)
- После оплаты клиент будет автоматически перенаправлен
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 в соотв директории биллинга(ов)