stephenjude / laravel-wallet
Laravel 简单钱包实现
2.0.0
2024-07-15 21:25 UTC
Requires
- php: ^8.0|^8.1|^8.2
- illuminate/contracts: ^9.0|^10.0|^11.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nunomaduro/collision: ^7.0|^8.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.28
- phpunit/phpunit: ^10.0
README
Laravel 简单钱包实现。
了解更多
- Laravel 简单钱包实现 - Laravel News
- 接口和特性:如何在 Laravel 包中使用它们 - Laravel Daily
- 带有优惠券的 Laravel 虚拟钱包:3 个包演示 - Laravel Daily
安装
您可以通过 composer 安装此包
composer require stephenjude/laravel-wallet
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="wallet-migrations"
php artisan migrate
使用方法
准备用户模型
use Stephenjude\Wallet\Interfaces\Wallet; use Stephenjude\Wallet\Traits\HasWallet; class User extends Authenticatable implements Wallet { use HasWallet; }
存款
$user = User::first(); $user->deposit(200.22); // returns the wallet balance: 200.22 $user->deposit(200); // returns the wallet balance: 400.22
取款
$user->withdraw(200); // returns the wallet balance: 200.22 $user->withdraw(0.22); // returns the wallet balance: 200
余额
$user->balance $user->wallet_balance
异常
InvalidAmountException
当存款或取款金额是负数值或零时,会抛出 InvalidAmountException
。
InsufficientFundException
当取款金额小于用户的钱包余额时,会抛出 InsufficientFundException
。
替代包
如果您正在寻找更大、更详尽的解决方案,请查看 Bavix Laravel Wallet。
测试
composer test
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。