Lava Payment SDK

Maintainers

Package info

github.com/LavaDevelop/lava-sdk

pkg:composer/lava-payment/lava

Statistics

Installs: 60 204

Dependents: 0

Suggesters: 0

Stars: 9

Open Issues: 0

v2.0.1 2026-04-08 12:20 UTC

README

compatible

SDK для работы с API Lava через фасад Lava\Api\Http\LavaFacade.

Установка

composer require lava-payment/lava

Быстрый старт

Инициализация (только shop-методы)

use Lava\Api\Http\LavaFacade;

$facade = new LavaFacade(
    'shop_secret_key',
    'shop_id',
    'shop_webhook_additional_key' // optional
);

Инициализация для profile/payoff методов

Для методов профиля и вывода (createPayoff, getStatusPayoff, getPayoffTariffs, checkWallet, getProfileBalance, checkPayoffSignature) нужно передать ProfileSecretDto.

use Lava\Api\Dto\Secret\ProfileSecretDto;
use Lava\Api\Http\LavaFacade;

$profileSecret = new ProfileSecretDto(
    'profile_id',
    'profile_secret_key',
    'profile_additional_key' // optional, нужен для checkPayoffSignature
);

$facade = new LavaFacade(
    'shop_secret_key',
    'shop_id',
    'shop_webhook_additional_key',
    null,
    null,
    null,
    $profileSecret
);

Методы фасада

Инвойсы

Создание платежа createInvoice

use Lava\Api\Dto\Request\Invoice\CreateInvoiceDto;

$dto = new CreateInvoiceDto(
    '300.09',
    'order-1001',
    'https://example.com/hook',
    'https://example.com/success',
    'https://example.com/fail',
    300,
    '{"productId":39}',
    'Pay product'
);

$response = $facade->createInvoice($dto);

Возвращает CreatedInvoiceDto.

Статус платежа checkStatusInvoice

use Lava\Api\Dto\Request\Invoice\GetStatusInvoiceDto;

$dto = new GetStatusInvoiceDto(null, $invoiceId); // по invoiceId
$response = $facade->checkStatusInvoice($dto);

Возвращает StatusInvoiceDto.

Доступные тарифы getAvailibleTariffs

$tariffs = $facade->getAvailibleTariffs();

Возвращает массив объектов AvailibleTariffDto.

Возвраты

Создание возврата createRefund

use Lava\Api\Dto\Request\Refund\CreateRefundDto;

$dto = new CreateRefundDto(
    'invoice-id',
    null,
    100.00
);

$response = $facade->createRefund($dto);

Возвращает CreatedRefundDto.

Статус возврата checkStatusRefund

use Lava\Api\Dto\Request\Refund\GetStatusRefundDto;

$dto = new GetStatusRefundDto($refundId);
$response = $facade->checkStatusRefund($dto);

Возвращает StatusRefundDto.

Баланс

Баланс профиля getProfileBalance

$profileBalance = $facade->getProfileBalance();

Возвращает ProfileBalanceDto.

Баланс магазина getShopBalance (deprecated)

$shopBalance = $facade->getShopBalance();

Метод помечен как deprecated. Используйте getProfileBalance().

Выводы (Payoff)

Создание вывода createPayoff

use Lava\Api\Dto\Request\Payoff\CreatePayoffDto;

$dto = new CreatePayoffDto(
    'withdraw-order-1',
    10.00,
    'lava_payoff'
);

$response = $facade->createPayoff($dto);

Возвращает CreatedPayoffDto.

Статус вывода getStatusPayoff

use Lava\Api\Dto\Request\Payoff\GetPayoffStatusDto;

$dto = new GetPayoffStatusDto(null, $payoffId);
$response = $facade->getStatusPayoff($dto);

Возвращает StatusPayoffDto.

Тарифы вывода getPayoffTariffs

$tariffs = $facade->getPayoffTariffs();

Возвращает массив DTO тарифов вывода.

Проверка кошелька checkWallet

use Lava\Api\Dto\Request\Payoff\CheckWalletRequestDto;

$dto = new CheckWalletRequestDto('lava_payoff', 'wallet_value');
$response = $facade->checkWallet($dto);

Возвращает CheckWalletResponseDto.

Вебхуки и подписи

Проверка подписи shop webhook checkSignWebhook

$data = file_get_contents('php://input');
$headers = getallheaders();

if (!isset($headers['Authorization'])) {
    throw new Exception('Authorization header is required');
}

$isValid = $facade->checkSignWebhook($data, $headers['Authorization']);

Проверка подписи payoff webhook checkPayoffSignature

$data = file_get_contents('php://input');
$headers = getallheaders();

if (!isset($headers['Authorization'])) {
    throw new Exception('Authorization header is required');
}

$isValid = $facade->checkPayoffSignature($data, $headers['Authorization']);

Исключения

При ошибках API методы выбрасывают исключения (например, InvoiceException, PayoffException, RefundException, BaseException и другие). Рекомендуется оборачивать вызовы фасада в try/catch и логировать сообщение и код ошибки.