Віртуальний гаманець у Laravel

Перекладено ШІ 3 Laravel News 03 червня, 2026

Віртуальний гаманець Laravel – це простий у використанні пакет, який дозволяє ефективно керувати віртуальними гаманцями в рамках вашого проекту на Laravel. Дізнайтеся, як реалізувати підтримку кількох гаманців та зручно відстежувати транзакції у цій статті!

Laravel Virtual Wallet — це легкий пакет для Laravel, створений Ніраджем Сайні, який дозволяє управляти віртуальними гаманцями, підтримує різні типи гаманців і веде облік транзакцій. Пакет легко інтегрується з будь-якою моделлю користувача Laravel. Хоча він не обробляє платежі, користувачі можуть відстежувати віртуальні кошти у своєму гаманці після завершення оплати через інший процесор або використовувати віртуальну валюту в іграх.

# Основні функції

  • Підтримка кількох гаманців: Створюйте та керуйте кількома типами гаманців для кожного користувача.
  • Управління транзакціями: Усі операції з гаманцем фіксуються для повної прозорості.
  • Обробка платежів: Легко здійснюйте платежі між гаманцями або зовнішніми системами.
  • Управління внесками: Приймайте та фіксуйте внески від користувачів або третіх осіб.
  • Підтримка кількох валют: Легко управляйте балансами гаманців у різних валютах.
  • Моніторинг статусу гаманців: Слідкуйте та оновлюйте статуси гаманців: активний, заморожений або закритий.
  • Безпечно та надійно: Реалізовано на базі Eloquent Laravel, enum, morphs та з підтримкою політик.
  • Висока конфігурованість: Налаштуйте моделі, назви таблиць та інше через конфігурацію.
  • Проста інтеграція: Додайте трейт до вашої моделі, і все готово до використання.
  • Управління балансом: Легкі API для кредитування, дебетування, переказів і перевірки балансу.

# Приклад використання

Встановіть пакет через Composer і запустіть міграції:

composer require haxneeraj/laravel-virtual-wallet
php artisan vendor:publish --provider="Haxneeraj\LaravelVirtualWallet\LaravelVirtualWalletServiceProvider"
php artisan migrate

Переконайтеся, що ваша модель User реалізує WalletInterface і використовує трейт HasVirtualWallet.

use Haxneeraj\LaravelVirtualWallet\Interfaces\WalletInterface;
use Haxneeraj\LaravelVirtualWallet\Traits\HasVirtualWallet;

class User extends Authenticatable implements WalletInterface
{
    use HasVirtualWallet;
}

Тепер ви можете створити гаманець:

$user->wallets()->create([
    'wallet_type' => 'main',
    'currency' => 'usd',
    'balance' => 0, // початковий баланс
    'currency_type' => 'fiat_currency',
    'status' => 'active'
]);

Нарешті, почніть робити внески або платежі у гаманець:

$paymentData = new PaymentData([
    'owner_type' => User::class,
    'owner_id' => $this->user->id,
    'txid' => '306f086a-c7ab-4c89-94b8-209653934aaf',
    'amount' => 150,
    'description' => 'Перший переказ з зовнішнього рахунку',
    'wallet_type' => 'main',
    'method' => 'automatic',
    'transaction_type' => 'deposit',
    'status' => 'approved',
    'currency' => 'usd',
    'currency_type' => 'fiat_currency'
]);
$user->deposit($paymentData);

Для платежу створіть подібний об'єкт PaymentData, змініть transaction_type на withdraw, а потім використовуйте метод pay().

Ви можете перевірити баланс у своєму гаманці за допомогою $user->getBalance('main') та перевірити наявність достатніх коштів перед здійсненням платежу з $user->hasSufficientBalance(50, 'main').

Дізнайтеся більше про цей пакет та перегляньте вихідний код на GitHub.

Популярні

Інше, що варто прочитати

14 Оновлено 02 червня, 2026

Claude Agent тепер інтегрований в AI Assistant для PhpStorm

Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання

84 Оновлено 02 червня, 2026

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?

11 Оновлено 02 червня, 2026

Локальні моделі та їх скоупи в Laravel за допомогою атрибута Scope

В Laravel 12 ми отримали можливість використовувати новий підхід для визначення локальних скоупів у моделях Eloquent. Дізнайтеся, як новий атрибут #[Scope] спрощує цей процес і зберігає ваші назви методів незмінними