PHPackages                             starcevpro/omnipay-unitpay - 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. starcevpro/omnipay-unitpay

ActiveLibrary[Payment Processing](/categories/payments)

starcevpro/omnipay-unitpay
==========================

UnitPay gateway for Omnipay payment processing library

1.0.0(1y ago)14MITPHPPHP ^7.3|^8

Since Jan 23Pushed 1y ago1 watchersCompare

[ Source](https://github.com/starcevpro/omnipay-unitpay)[ Packagist](https://packagist.org/packages/starcevpro/omnipay-unitpay)[ Docs](https://github.com/starcevpro/omnipay-unitpay)[ RSS](/packages/starcevpro-omnipay-unitpay/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (9)Versions (2)Used By (0)

UnitPay для Omnipay
===================

[](#unitpay-для-omnipay)

Платежный шлюз [UnitPay](https://unitpay.ru/) для [Omnipay](https://github.com/thephpleague/omnipay).

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

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

Установка через composer:

```
composer require your-vendor/omnipay-unitpay
```

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

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

### Инициализация шлюза

[](#инициализация-шлюза)

```
use Omnipay\Omnipay;

$gateway = Omnipay::create('UnitPay');

$gateway->setSecretKey('ваш-секретный-ключ');
$gateway->setPublicKey('ваш-публичный-ключ');
```

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

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

```
$response = $gateway->purchase([
    'amount' => '100.00',
    'currency' => 'RUB',
    'transactionId' => '123456', // Ваш уникальный идентификатор платежа
    'description' => 'Оплата заказа №123456',
    'email' => 'customer@example.com' // Опционально
])->send();

if ($response->isRedirect()) {
    // Перенаправляем пользователя на страницу оплаты
    $response->redirect();
}
```

### Обработка уведомления о платеже (webhook)

[](#обработка-уведомления-о-платеже-webhook)

```
$gateway = Omnipay::create('UnitPay');
$gateway->setSecretKey('ваш-секретный-ключ');

$response = $gateway->completePurchase($_POST)->send();

if ($response->isSuccessful()) {
    // Платеж успешно оплачен
    $transactionReference = $response->getTransactionReference();
    $amount = $response->getAmount();
    // Обновите статус заказа в вашей системе
}
```

### Тестовый режим

[](#тестовый-режим)

UnitPay предоставляет тестовый режим для отладки. В тестовом режиме используется отдельный секретный ключ:

```
$gateway->setSecretKey('боевой-секретный-ключ');
$gateway->setTestSecretKey('тестовый-секретный-ключ');
$gateway->setTestMode(true);
```

**Важно**: даже в тестовом режиме подпись запросов генерируется с использованием боевого секретного ключа (особенность UnitPay).

Поддерживаемые методы
---------------------

[](#поддерживаемые-методы)

- `purchase()` - создание платежа
- `completePurchase()` - обработка уведомления о платеже

Поддерживаемые параметры
------------------------

[](#поддерживаемые-параметры)

### Purchase

[](#purchase)

Основные параметры:

- `amount` - сумма платежа в выбранной валюте
- `currency` - валюта платежа (RUB, UAH, BYN, EUR, USD и др. по стандарту ISO 4217)
- `transactionId` - уникальный идентификатор платежа в вашей системе
- `description` - описание платежа
- `email` - email плательщика (обязателен, если не указан телефон)
- `phone` - телефон плательщика в формате 79991234567 (обязателен, если не указан email)
- `cashItems` - позиции чека для фискализации (опционально)

Дополнительные параметры:

- `locale` - язык платежной формы (ru, en)
- `backUrl` - адрес возврата пользователя при отмене платежа. Должен использовать домен проекта
- `subscription` - создание подписки (true/false)

```
// Пример использования дополнительных параметров
$response = $gateway->purchase([
    'amount' => '100.00',
    'currency' => 'RUB',
    'transactionId' => '123456',
    'description' => 'Оплата заказа №123456',
    'email' => 'customer@example.com',

    // Дополнительные параметры
    'locale' => 'ru',
    'backUrl' => 'https://your-domain.com/payment/cancel',
    'subscription' => 'true',

    // Позиции чека
    'cashItems' => [
        [
            'name' => 'Название товара',
            'count' => 1,
            'price' => 100.00,
            'currency' => 'RUB',
            'nds' => 'vat20',
            'type' => 'commodity',
            'paymentMethod' => 'full_payment'
        ]
    ]
])->send();
```

### Параметры для формирования чека (cashItems)

[](#параметры-для-формирования-чека-cashitems)

Каждая позиция в массиве `cashItems` может содержать следующие параметры:

- `name` - название позиции (обязательный, не более 128 символов)
- `count` - количество (обязательный)
- `price` - цена за единицу (обязательный)
- `currency` - валюта (по умолчанию RUB)
- `nds` - ставка НДС:
    - none - без НДС
    - vat0 - НДС 0%
    - vat10 - НДС 10%
    - vat20 - НДС 20%
    - vat110 - НДС 10/110 (для предоплаты)
    - vat120 - НДС 20/120 (для предоплаты)
- `type` - тип позиции (commodity - товар, service - услуга и др.)
- `paymentMethod` - признак способа расчета:
    - full\_payment - полный расчет
    - full\_prepayment - предоплата 100%
    - prepayment - предоплата
    - advance - аванс

### Маркировка товаров

[](#маркировка-товаров)

Для маркированных товаров в позициях `cashItems` доступны дополнительные параметры:

- `markCode` - код маркировки товара
- `measure` - единица измерения:
    - 0 - штуки
    - 10 - грамм
    - 11 - килограмм
    - 12 - тонна
    - 20 - сантиметр
- `markQuantity` - объем маркированной партии: ```
    'markQuantity' => [
        'numerator' => 2,    // числитель
        'denominator' => 10  // знаменатель
    ]
    ```

```
// Пример с маркированным товаром
$gateway->purchase([
    // ... основные параметры ...
    'cashItems' => [
        [
            'name' => 'Маркированный товар',
            'count' => 1,
            'price' => 100.00,
            'nds' => 'vat20',
            'type' => 'commodity',
            'markCode' => 'код маркировки',
            'measure' => 0,
            'markQuantity' => [
                'numerator' => 2,
                'denominator' => 10
            ]
        ]
    ]
]);
```

### CompletePurchase

[](#completepurchase)

Не требует дополнительных параметров, все необходимые данные получает из webhook-запроса.

### Параметры для формирования чека (cashItems)

[](#параметры-для-формирования-чека-cashitems-1)

Каждая позиция в массиве `cashItems` может содержать следующие параметры:

- `name` - название позиции (обязательный, не более 128 символов)
- `count` - количество (обязательный)
- `price` - цена за единицу (обязательный)
- `currency` - валюта (по умолчанию RUB)
- `nds` - ставка НДС (none, vat0, vat10, vat20 и др.)
- `type` - тип позиции (commodity, service и др.)
- `paymentMethod` - признак способа расчета (full\_payment, full\_prepayment и др.)

Тестирование
------------

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

```
composer test
```

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

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

- PHP 8.0 или выше
- PHP JSON extension
- PHP cURL extension

Лицензия
--------

[](#лицензия)

MIT

Поддержка
---------

[](#поддержка)

Если вы обнаружили ошибку или у вас есть предложения по улучшению пакета, пожалуйста, создайте issue в репозитории.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance42

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

472d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/104bd728080a3a18d6a4901d23215beea4881038e9b8b93ec9a386832bba7e18?d=identicon)[starcevpro](/maintainers/starcevpro)

---

Tags

paymentgatewaypaymerchantomnipaypurchasesagepaysage pay

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/starcevpro-omnipay-unitpay/health.svg)

```
[![Health](https://phpackages.com/badges/starcevpro-omnipay-unitpay/health.svg)](https://phpackages.com/packages/starcevpro-omnipay-unitpay)
```

###  Alternatives

[omnipay/sagepay

Sage Pay driver for the Omnipay PHP payment processing library

561.2M7](/packages/omnipay-sagepay)[lokielse/omnipay-alipay

Alipay gateway for Omnipay payment processing library

587421.0k11](/packages/lokielse-omnipay-alipay)

PHPackages © 2026

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