sm9sh/monobank-pay
Composer 安装命令:
composer require sm9sh/monobank-pay
包简介
This is simple library for Monobank Acquiring called "MonoPay" based on REST API (v2304) docs located at https://api.monobank.ua/docs/acquiring.html
README 文档
README
Документація по REST API тут
!!! Це форк plakidan/monobank-pay
Для ведення запитів вам знадобиться токен з особистого кабінету https://fop.monobank.ua/ або тестовий токен з https://api.monobank.ua/
Встановити бібліотеку:
composer require plakidan/monobank-pay
Також зробив варіант для php5.6:
composer require plakidan/monobank-pay:dev-php5.6-adaptation
Мінімальні вимоги:
- php >=7.4
- guzzlehttp/guzzle >= 7.0
- starkbank/ecdsa >= 0.0.5
Приклади використання:
require_once 'vendor/autoload.php'; //створили клієнта - через нього запити будуть слатись $monoClient = new \MonoPay\Client('YOUR_TOKEN_HERE'); //із клієнта можна отримати id та назву мерчанта echo $monoClient->getMerchantId(); echo $monoClient->getMerchantName(); //для створення платежів створюємо цей об'єкт $monoPayment = new \MonoPay\Payment($monoClient); //створення платежу $invoice = $monoPayment->create( 1000, [ //деталі оплати 'merchantPaymInfo' => [ 'reference' => 'my_shop_order_28142', //номер чека, замовлення, тощо; визначається мерчантом (вами) 'destination' => 'Оплата за замовлення #28142', //призначення платежу 'basketOrder' => [ //наповнення замовлення, використовується для відображення кошика замовлення [ 'name' => 'Товар1', //назва товару 'qty' => 2, //кількість 'sum' => 500, //сума у мінімальних одиницях валюти за одиницю товару 'icon' => 'https://example.com/images/product1.jpg', //посилання на зображення товару 'unit' => 'уп.', //назва одиниці вимiру товару ], ], ], 'redirectUrl' => 'https://example.com/order-result', //адреса для повернення (GET) - на цю адресу буде переадресовано користувача після завершення оплати (у разі успіху або помилки) 'webHookUrl' => 'https://example.com/mono-webhook', //адреса для CallBack (POST) – на цю адресу буде надіслано дані про стан платежу при кожній зміні статусу. Зміст тіла запиту ідентичний відповіді запиту “перевірки статусу рахунку” 'validity' => 3600 * 24 * 7, //строк дії в секундах, за замовчуванням рахунок перестає бути дійсним через 24 години 'paymentType' => 'debit', //debit | hold. Тип операції. Для значення hold термін складає 9 днів. Якщо через 9 днів холд не буде фіналізовано — він скасовується ] ); print_r($invoice); //інформація про платіж $invoice = $monoPayment->info('2305046jUBEj8WfyaBdB'); print_r($invoice); //відшкодування $result = $monoPayment->refund('2305046jUBEj8WfyaBdB'); print_r($result); //скасування посилання на оплату $result = $monoPayment->cancel('2305046jUBEj8WfyaBdB'); print_r($result); //деталі успішної оплати $invoiceDetails = $monoPayment->successDetails('2305046jUBEj8WfyaBdB'); print_r($invoiceDetails); //списати заблоковану сумму //зверніть увагу: списати можна тільки таку самму або меншу сумму яку ви заблокували $result = $monoPayment->captureHold('2305046jUBEj8WfyaBdB', 500); print_r($result); //список успішних оплат за останні сутки $list = $monoPayment->items(time() - 60 * 60 * 24); print_r($list);
Отримання вебхуку:
ЗАСТЕРЕЖЕННЯ!!! Обов'язково обгорніть обробку вебхука в try-catch, бо якщо ви відповісте НЕ 200 кодом, а веб-хуків буде багато - ваш IP може потрапити в тимчасовий бан (хз на скільки, в мене було на сутки)
require_once 'vendor/autoload.php'; //створили клієнта - через нього запити будуть слатись $monoClient = new \MonoPay\Client('YOUR_TOKEN_HERE'); //отримання публічного ключа (бажано закешувати) $publicKey = $monoClient->getPublicKey(); //класс для роботи з вебхуком $monoWebhook = new \MonoPay\Webhook($monoClient, $publicKey, $_SERVER['HTTP_X_SIGN']); //отримуємо вхідні дані $body = file_get_contents('php://input'); //валідуємо дані if ($monoWebhook->verify($body)) { echo 'Ці дані прислав монобанк, можна обробляти'; } else { echo 'Дані прислав шахрай, ігноруємо'; }
TODO List:
- Доробити методи стосовно токенізації карт
- Переробити вхідні параметри і вихідні дані на класи з описаними методами
- Попросити в Гороховського баночку пива
P.S. Буду радий вашим pull-реквестам
sm9sh/monobank-pay 适用场景与选型建议
sm9sh/monobank-pay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 10 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 sm9sh/monobank-pay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sm9sh/monobank-pay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2023-10-17