composer require lava-payment/lava
Для работы нужно получить секретный ключ магазина.
use Lava\Api\Http\LavaFacade;
$facade = new LavaFacade('your secret key', 'shopId', 'your additional key');
$response = $facade->getShopBalance();
При успешном запросе вы получаете объект, который содержит balance и freezeBalance.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод createInvoice на вход принимает объект createInvoiceDto, который в свою очередь имеет 2 обязательных параметра sum и orderId.
use Lava\Api\Dto\Request\Invoice\CreateInvoiceDto;
$createInvoiceDto = new CreateInvoiceDto(
300.09,
'orderId',
'https://exaple.com',
'https://exaple.com',
'https://exaple.com',
300,
'{productId: 39}',
'Pay product'
);
$response = $facade->createInvoice($createInvoiceDto);
При успешном запросе вы получаете объект, который содержит invoiceId, amount, expired, status, shopId, url.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод checkStatusInvoice на вход принимает объект GetStatusInvoiceDto, который принимает 2 параметра 1 из них обязателен.
invoiceId - id который получили после создания платежа
orderId - id платежа в вашей системе
use Lava\Api\Dto\Request\Invoice\GetStatusInvoiceDto;
$statusInvoice = new GetStatusInvoiceDto(null, $invoiceId); //проверка платежа по invoiceId
$response = $facade->checkStatusInvoice($statusInvoice);
При успешном запросе вы получаете объект StatusInvoiceDto.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод createPayoff на вход принимает объект CreatePayoffDto, который принимает 3 обязательных параметра:
orderId - id вывода в вашей системе, amount - сумма вывода и service - вывод на какой сервис будет произведен.
use Lava\Api\Dto\Request\Payoff\CreatePayoffDto;
$payoffCreate = new CreatePayoffDto('1234', 10, 'lava_payoff');
$response = $facade->createPayoff($payoffCreate);
При успешном запросе вы получаете объект CreatedPayoffDto который содержит 2 параметра:
refundId - id вывода в нашей системе и status - текущий статус вывода.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод getStatusPayoff на вход принимает объект GetPayoffStatusDto, который принимает 2 параметра 1 из них обязателен.
payoffId - id который получили после создания вывода
orderId - id платежа в вашей системе
use Lava\Api\Dto\Request\Payoff\GetPayoffStatusDto;
$payoffStatus = new GetPayoffStatusDto(null, $payoffId);
$response = $facade->getStatusPayoff($payoffStatus);
При успешном запросе вы получаете объект StatusPayoffDto который содержит всю информацию о выводе.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод createRefund на вход принимает объект CreateRefundDto, который принимает 1 обязательный параметр invoiceId - id платежа в нашей системе. Для частичного возврата вместе с invoiceId передается сумма возврата.
use Lava\Api\Dto\Request\Refund\CreateRefundDto;
$refundCreate = new CreateRefundDto('5b7d4464-d375-41d4-95b1-bb9786fbbac7', null, 100);
$response = $facade->createRefund($refundCreate);
При успешном запросе вы получаете объект CreatedRefundDto.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод checkStatusRefund на вход принимает объект GetStatusRefundDto, который принимает 1 обязательный параметр refundId - id возврата в нашей системе.
use Lava\Api\Dto\Request\Refund\GetStatusRefundDto;
$refundGetStatus = new GetStatusRefundDto($refundId);
$response = $facade->checkStatusRefund($refundGetStatus);
При успешном запросе вы получаете объект StatusRefundDto.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод createH2hInvoice на вход принимает объект CreateH2hInvoiceDto, который принимает 6 обязательных параметров amount - cумма на которую выставляется счет, orderId - id в вашей системе, cvv - cvv карты, month - месяц до которого действительна карта, year - год до которого действительна карта, cardNumber - номер карты
use Lava\Api\Dto\Request\H2h\CreateH2hInvoiceDto;
$h2hCreate = new CreateH2hInvoiceDto(
100,
"orderId",
701,
11,
30,
'5536914283728079'
);
$response = $facade->createH2hInvoice($h2hCreate);
При успешном запросе вы получаете объект CreatedH2hInvoiceDto.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод createH2hInvoice на вход принимает объект CreateH2hInvoiceDto, который принимает 6 обязательных параметров amount - cумма на которую выставляется счет, orderId - id в вашей системе, ip - ip пользователя
use Lava\Api\Dto\Request\H2h\CreateSBPH2HDto;
$h2hCreate = new CreateSBPH2HDto(
100,
$orderId,
'127.0.0.1'
);
$response = $facade->createH2HSpbInvoice($h2hCreate);
При успешном запросе вы получаете объект CreatedSBPH2hDto.
При не успешном запросе возникает исключение с сообщением и кодом ответа.
Метод checkSignWebhook принимает 2 параметра тело запроса в формате json и подпись с заголовка 'Authorization'.
$data = file_get_contents('php://input');
$hookSignature = getallheaders();
if(!isset($hookSignature['Authorization'])) {
throw new Exception();
}
$facade->checkSignWebhook($data, $hookSignature['Authorization']);