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