定制 vladchornyi/mono 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

vladchornyi/mono

最新稳定版本:v1.2.0

Composer 安装命令:

composer require vladchornyi/mono

包简介

acquiring mono

README 文档

README

Бібліотека Monobank Acquiring дозволяє легко взаємодіяти з API Monobank для управління рахунками, отримання виписок і проведення транзакцій через інвойси.

Встановлення

Для встановлення через Composer використовуйте:

composer require vladchornyi/mono

Використання

Ініціалізація клієнта

Створіть екземпляр клієнта MonoClient, передавши API-ключ, який ви отримали в налаштуваннях Monobank:

use Vladchornyi\Mono\MonoClient;
use Vladchornyi\Mono\Models\InvoiceData;

$apiKey = 'ВАШ_API_КЛЮЧ';
$monoClient = new MonoClient($apiKey);

Отримання публічного ключа

Відкритий ключ використовується для верифікації підписів Monobank.

try {
    $pubKey = $monoClient->pubkey()->get();
    echo "Public Key: " . $pubKey;
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

Створення інвойсу для оплати

Для створення нового інвойсу, вкажіть суму, URL для редиректу після оплати та URL для отримання callback від Monobank.

$redirectUrl = 'https://test.com?payment=success';
$webHookUrl = 'https://test.com/mono/callback';
$params = ['saveCard' => true];
$discountValue = 10.00;
$sum = 59000; // 590 грн у копійках
$amount = 58000;

$globalDiscount = new DiscountItem(
    type: 'DISCOUNT',
    mode: 'VALUE',
    value: $discountValue
);

// Товар у кошику
$basketItem = new BasketOrderItem(
    name: 'Товар 1',
    qty: 1,
    sum: $sum,                
    code: 'SV-SUB-001',        // код товару (required)
    icon: null,
    unit: null,
    barcode: null,
    header: null,
    footer: null,
    tax: null,
    uktzed: '4901990000',      // опційно
    discounts: []              // локальні знижки на позицію (якщо треба)
);

// Дані для фіскалізації
$merchantPaymInfo = new MerchantPaymInfoItem(
    reference: 'ORDER-12345',
    destination: 'Оплата товарів',
    comment: 'Товари',
    customerEmails: ['author.od@gmail.com'],
    discounts: [$globalDiscount], // знижка на весь чек
    basketOrder: [$basketItem]
);

$invoiceData = new InvoiceData(
    amount: $amount,
    redirectUrl: 'https://svitylo.com?ret=123',
    webHookUrl: 'https://svitylo.com/mono/callback',
    saveCardData: ['saveCard' => true],
    merchantPaymInfo: $merchantPaymInfo
);

try {
    $invoice = $monoClient->invoices()->createInvoice($invoiceData);
    $invoiceId = $invoice['invoiceId'] ?? false;
    if($invoiceId !== false) {
        echo "Invoice Created: " . $invoiceId;
    }
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

Перевірка статусу інвойсу

Отримайте статус інвойсу за його ідентифікатором, щоб дізнатися, чи була транзакція успішною.

$invoiceId = 'ВАШ_INVOICE_ID';

try {
    $invoiceStatus = $monoClient->invoices()->getInvoiceStatus($invoiceId);
    $status = $invoice['status'] ?? false;
    if($status !== false) {
        echo "Invoice Status: " . $status;
    }
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

Отримання виписки

Отримайте виписку по рахунку за вказаний період.

$fromTime = 1609459200; // початок періоду в форматі Unix timestamp
$toTime = 1612137600; // кінець періоду в форматі Unix timestamp

try {
    $statement = $monoClient->statements()->getStatement($fromTime, $toTime);
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

Параметри

  • apiKey - ваш унікальний ключ для доступу до Monobank API.
  • redirectUrl - URL для редиректу після успішної оплати.
  • webHookUrl - URL для отримання callback від Monobank про статус платежу.
  • InvoiceData - об'єкт з даними інвойсу, що містить:
    • amount - сума оплати в копійках.
    • redirectUrl - URL редиректу.
    • webHookUrl - URL для webhook.
    • saveCardData - параметри для збереження картки (необов'язково).

Обробка помилок

Обробка помилок згодом. Рекомендується використовувати try-catch для роботи з методами API, щоб ловити можливі помилки.

try {
    // Ваш код тут
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

Ліцензія

Ця бібліотека має ліцензію MIT.

统计信息

  • 总下载量: 17
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: proprietary
  • 更新时间: 2024-08-24