也门开源/laravel-wallet

Laravel wallet是一个具有表达性丰富语法的包,提供一流的开发支持,涵盖了存款、提款、交易和余额等功能,操作非常简单。

v1.2.0 2023-12-21 13:53 UTC

This package is auto-updated.

Last update: 2024-09-21 15:28:29 UTC


README

Stand With Palestine

Laravel Wallet

Laravel Unit Test Packagist Downloads Packagist Version GitHub StandWithPalestine

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_EXCEPTIONtrue

高级用法

您可以轻松地添加元信息到交易以满足您的需求。例如

$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许可证文件。