PHPackages                             oplati-by/php-acquiring - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. oplati-by/php-acquiring

ActiveLibrary[Payment Processing](/categories/payments)

oplati-by/php-acquiring
=======================

PHP library for integration with Oplati payment system

02PHP

Since Jun 12Pushed 11mo agoCompare

[ Source](https://github.com/oplati-by/php-acquiring)[ Packagist](https://packagist.org/packages/oplati-by/php-acquiring)[ RSS](/packages/oplati-by-php-acquiring/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Oplati Acquiring PHP Library
============================

[](#oplati-acquiring-php-library)

PHP библиотека для интеграции с платежной системой Oplati. Позволяет легко интегрировать платежи в ваше PHP приложение.

Требования
----------

[](#требования)

- PHP 8.1 или выше
- Расширение JSON
- Расширение cURL

Установка
---------

[](#установка)

```
composer require oplati-by/php-acquiring
```

Использование
-------------

[](#использование)

### Инициализация клиента

[](#инициализация-клиента)

```
use Oplati\Acquiring\Client;

$client = new Client(
    'https://oplati-cashboxapi.lwo-dev.by/ms-pay', // URL API
    'OPL000011111',                               // Регистрационный номер кассы
    '11111'                                // Пароль кассы
);
```

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

[](#создание-платежа)

```
use Oplati\Acquiring\Dto\Payment;
use Oplati\Acquiring\Dto\PaymentItem;
use Oplati\Acquiring\PaymentItemType;

$payment = new Payment(
    '14092001',                    // Смена (например, дата в формате ДДММГГГГ)
    'AA-1111',                     // Уникальный номер заказа
    [
        new PaymentItem(
            PaymentItemType::PaymentItemTypeService,
            'Консультация продавца',
            499                     // 4.99 BYN (сумма в копейках)
        ),
        new PaymentItem(
            PaymentItemType::PaymentItemTypeProduct,
            'Товар',
            5999                    // 59.99 BYN (сумма в копейках)
        )
    ],
    'Спасибо за покупку!',          // Текст в конце чека
    'https://my.shop.by/success',   // URL для перехода после успешной оплаты
    'https://my.shop.by/failed',    // URL для перехода после неуспешной оплаты
    'https://my.shop.by/webhook'    // URL для уведомлений об оплате
);

try {
    $result = $client->createPayment($payment);
    echo "Платеж создан успешно:\n";
    print_r($result);
} catch (\Oplati\Acquiring\Exception\ServerException $e) {
    echo "Ошибка от сервера Оплати:\n";
    print_r($e->getErrorData());
    echo "\nКод ошибки: " . $e->getCode() . "\n";
}
```

### Получение информации о платеже

[](#получение-информации-о-платеже)

```
$paymentInfo = $client->getPaymentInfo($paymentId);
```

### Отмена платежа

[](#отмена-платежа)

```
use Oplati\Acquiring\Dto\PaymentRevers;

$reversal = new PaymentRevers(
    '14092001',    // Смена
    'AA-1111',     // Номер заказа
    [              // Список позиций для отмены
        new PaymentItem(
            PaymentItemType::PaymentItemTypeProduct,
            'Товар',
            5999
        )
    ],
    'Отмена заказа' // Текст в конце чека
);

$result = $client->reversePayment($paymentId, $reversal);
```

### Получение списка платежей за смену

[](#получение-списка-платежей-за-смену)

```
$payments = $client->getPaymentsOnShift('14092001');
```

Типы позиций в чеке
-------------------

[](#типы-позиций-в-чеке)

- `PaymentItemType::PaymentItemTypeProduct` (1) - товар
- `PaymentItemType::PaymentItemTypeService` (2) - услуга

Обработка ошибок
----------------

[](#обработка-ошибок)

Библиотека использует исключения для обработки ошибок. Основной класс исключений - `Oplati\Acquiring\Exception\ServerException`.

```
try {
    $result = $client->createPayment($payment);
} catch (\Oplati\Acquiring\Exception\ServerException $e) {
    // Обработка ошибки от сервера Оплати
    $errorData = $e->getErrorData();
    $errorCode = $e->getCode();
} catch (Exception $e) {
    // Обработка других ошибок
}
```

Логирование
-----------

[](#логирование)

Библиотека предоставляет гибкую систему логирования через интерфейс `LoggerInterface`. По умолчанию используется `FileLogger`, который записывает логи в файл.

### Использование стандартного логгера

[](#использование-стандартного-логгера)

```
use Oplati\Acquiring\Client;

$client = new Client(
    'https://oplati-cashboxapi.lwo-dev.by/ms-pay',
    'OPL000011111',
    '11111'
    // По умолчанию используется FileLogger
);
```

### Использование собственного логгера

[](#использование-собственного-логгера)

```
use Oplati\Acquiring\Client;
use Oplati\Acquiring\Logger\LoggerInterface;

class CustomLogger implements LoggerInterface
{
    public function logRequest(string $method, string $url, array $headers, ?array $body = null): void
    {
        // Ваша логика логирования запросов
    }

    public function logResponse(string $method, string $url, int $statusCode, ?array $body = null): void
    {
        // Ваша логика логирования ответов
    }

    public function logError(string $method, string $url, string $error, int $code): void
    {
        // Ваша логика логирования ошибок
    }
}

$client = new Client(
    'https://oplati-cashboxapi.lwo-dev.by/ms-pay',
    'OPL000011111',
    '11111',
    new CustomLogger()
);
```

### Настройка FileLogger

[](#настройка-filelogger)

```
use Oplati\Acquiring\Client;
use Oplati\Acquiring\Logger\FileLogger;

$logger = new FileLogger(
    '/path/to/your/log/file.log',  // Путь к файлу лога
    true                           // Форматировать JSON (true) или нет (false)
);

$client = new Client(
    'https://oplati-cashboxapi.lwo-dev.by/ms-pay',
    'OPL000011111',
    '11111',
    $logger
);
```

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/1caa63a67e44f483707663e915d5a0ed190636f4c9ab8157b8aef77e914d5a1b?d=identicon)[sten4eg](/maintainers/sten4eg)

---

Top Contributors

[![oplati-by](https://avatars.githubusercontent.com/u/206821950?v=4)](https://github.com/oplati-by "oplati-by (1 commits)")

### Embed Badge

![Health badge](/badges/oplati-by-php-acquiring/health.svg)

```
[![Health](https://phpackages.com/badges/oplati-by-php-acquiring/health.svg)](https://phpackages.com/packages/oplati-by-php-acquiring)
```

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)[omnipay/dummy

Dummy driver for the Omnipay payment processing library

271.2M33](/packages/omnipay-dummy)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
