也门开源 / laravel-wallet
Laravel wallet是一个具有表达性丰富语法的包,提供一流的开发支持,涵盖了存款、提款、交易和余额等功能,操作非常简单。
v1.2.0
2023-12-21 13:53 UTC
Requires
- illuminate/support: ^8.0|^9.0|^10.0
Requires (Dev)
- illuminate/testing: ^8.83
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^9.5
README
Laravel Wallet
Laravel wallet是一个具有表达性丰富语法的包,提供一流的开发支持,涵盖了存款、提款、交易和余额等功能,操作非常简单。
要求
此包与Laravel v8进行了测试,可能不支持Laravel v7、v6或v5。
安装
使用composer安装此包
composer require yemenopensource/laravel-wallet
配置需求
如果您想使用默认配置,可以跳过此步骤,但可以通过运行以下命令发布钱包配置:
php artisan vendor:publish --provider="YemeniOpenSource\LaravelWallet\WalletServiceProvider" --tag=config
这将合并config/wallet.php
配置文件到您的根config
目录。在迁移数据库之前,您可以自由修改它。
数据库迁移
然后安装钱包表
php artisan migrate
如果您想添加自定义功能,可以发布迁移
php artisan vendor:publish --provider="YemeniOpenSource\LaravelWallet\WalletServiceProvider" --tag=migrations
Laravel将使用在database/migrations
目录下发布的迁移。
设置
将HasWallet
特性添加到您想要添加钱包功能的任何模型中,例如User
模型。
use YemeniOpenSource\LaravelWallet\Traits\HasWallet; class User extends Model { use HasWallet; //... }
基本用法
例如,您可以创建钱包和交易,如上所述为User
模型。
// The wallet balance initially will be [0] $user = User::first(); $user->wallet->balance; // 0 // This will add to the wallet balance as passed amount. $user->wallet->deposit(643.646); $user->wallet->balance; // 643.6460 // This will subtract from the wallet balance as passed amount. $user->wallet->withdraw(168.545); $user->wallet->balance; // 475.1010 // It will throw [UnacceptedTransactionException] exception if passed amount greater wallet balance $user->wallet->withdraw(500); $user->wallet->balance; // UnacceptedTransactionException // If you want to force withdraw, use [forceWithdraw] $user->wallet->forceWithdraw(500); $user->wallet->balance; // -24.8990
如果您不想遇到[UnacceptedTransactionException],可以将
wallet.disable_insufficient_exception
配置值更改为禁用异常,或在.env
中设置WALLET_DISABLE_INSUFFICIENT_EXCEPTION
为true
。
高级用法
您可以轻松地添加元信息到交易以满足您的需求。例如
$user = User::first(); $user->wallet->deposit(100, ['currency' => 'USD', 'bank' => 'TEST BANK']); $user->wallet->withdraw(64, ['currency' => 'USD', 'description' => 'Purchase of Item #101']); $user->wallet->withdraw(64, ['currency' => 'USD', 'transfer' => 'Western union tracking number #101']);
信贷
由fullvector创建的数字货币矢量 - www.freepik.com
信贷
MIT许可证(MIT)。有关更多信息,请参阅MIT许可证文件。