starcevpro/omnipay-unitpay
Composer 安装命令:
composer require starcevpro/omnipay-unitpay
包简介
UnitPay gateway for Omnipay payment processing library
README 文档
README
Платежный шлюз UnitPay для 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)
$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
Основные параметры:
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 может содержать следующие параметры:
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
Не требует дополнительных параметров, все необходимые данные получает из webhook-запроса.
Параметры для формирования чека (cashItems)
Каждая позиция в массиве 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 в репозитории.
starcevpro/omnipay-unitpay 适用场景与选型建议
starcevpro/omnipay-unitpay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 01 月 23 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「payment」 「pay」 「gateway」 「merchant」 「purchase」 「sagepay」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 starcevpro/omnipay-unitpay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 starcevpro/omnipay-unitpay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 starcevpro/omnipay-unitpay 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
repository php library
Payyo Gateway for the Omnipay payment processing library
Библиотека для приема платежей через Альфабанк.
Some pre-defined rules for validation in Omnipay payment processing library.
BluePay gateway for the Omnipay payment processing library
支付宝接口扩展包
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 24
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-01-23