aniket/laravel-wallet-system
最新稳定版本:v1.0.0
Composer 安装命令:
composer require aniket/laravel-wallet-system
包简介
A Laravel Wallet System for managing user balances, deposits, withdrawals, and transactions in Laravel applications.
README 文档
README
A Laravel Wallet System package for managing user balances, deposits, withdrawals, credits, debits, and refunds inside any Laravel application.
This package makes it simple to implement a wallet system in Laravel for e-commerce, SaaS platforms, financial apps, or any system requiring digital wallet functionality.
🚀 Features of Laravel Wallet
- 💳 Credit, debit, and refund support out of the box
- 📄 Tracks all transactions and transaction history
- 🔐 Uses Laravel Cache locks for safe concurrent updates
- ⚙️ Fully configurable (tables, balance column, lock duration)
- 🧱 Extendable schema: modify the
transactionstable if needed - 💾 Works with relational & non-relational databases
- 🧪 Easy integration with existing
userstable
- 💳 Credit, debit, and refund support
- 📄 Tracks transactions and transaction history
- 🔐 Uses Laravel Cache locks for safe concurrent updates
- ⚙️ Fully configurable
- 🧱 Extendable schema: you can modify the
transactionstable - 💾 Compatible with relational and non-relational DBs
- 🧪 Easy integration with existing
userstable
📦 Installation
composer require aniket/laravel-wallet-system
⚙️ Wallet Configuration
You can edit the configuration in config/wallet.php:
return [ 'users_table' => 'users', // Table name for users 'wallet_balance_column' => 'wallet_balance',// Column for storing wallet balance 'lock_duration' => 10, // Cache lock duration in seconds 'default_balance' => 0.00, // Default balance for new users ];
⚙️ Configuration Options
-
users_table
Specify your users table name. -
wallet_balance_column
Column in the users table for wallet balance. -
lock_duration
Time in seconds to lock a wallet during updates (prevents race conditions). -
default_balance
Initial balance for new users.
👨💻 Usage Example
For migrating the tables.
php artisan migrate
In User.php:
use Aniket\LaravelWalletSystem\Traits\HasWallet; class User extends Authenticatable { use HasWallet; }
💳 Wallet Operations
✅ Credit Wallet
Credits money to the user's wallet.
$user = User::find(1); $user->credit(1000, 'Signup Bonus');
🛒 Debit Wallet
Debits money from the user's wallet if sufficient balance is available.
$user = User::find(1); $user->debit(250, 'Purchase');
💸 Refund Wallet
Refunds money back into the wallet (acts like a credit, but marked with metadata).
$user = User::find(1); $user->refund(100, 'Failed order refund');
🚀 Why Use Laravel Wallet System?
- Simplifies wallet implementation in Laravel applications
- Prevents race conditions with cache-based locks
- Easy setup with migrations & configuration
- Works seamlessly for:
- Multi-vendor systems
- Fintech applications
- E-commerce platforms
- Gaming credits
- Loyalty programs
🔗 Links
统计信息
- 总下载量: 80
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-08