aleahalshamiri / wallet
为您的Laravel应用程序提供的简单易用的虚拟钱包
dev-master
2021-11-14 10:28 UTC
Requires
- php: ^7.3|^8.0
- illuminate/support: ^7.0|^8.0
Requires (Dev)
- doctrine/dbal: ^2.9
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
This package is auto-updated.
Last update: 2024-09-14 16:39:55 UTC
README
一些应用程序需要预付费系统,如虚拟钱包,客户可以在其中充值积分,然后使用积分在应用程序中支付。使用此包,您可以为您的高效模型配备一个或多个数字钱包,以处理这些操作。所有钱包活动都通过交易进行跟踪。
安装
使用composer安装包
composer require muath-ye/wallet
运行迁移
默认情况下,包将自动从供应商文件夹加载迁移。
如果您需要更多灵活性,可以使用以下Artisan命令将迁移文件发布到您自己的迁移目录:
php artisan vendor:publish --provider="Muathye\Wallet\WalletServiceProvider" --tag=migrations
确保在发布迁移文件后,通过设置配置变量 load_migrations
为false来禁用自动迁移加载。
配置
您可以使用此Artisan命令发布配置文件:
php artisan vendor:publish --provider="Muathye\Wallet\WalletServiceProvider" --tag=config
这将合并 wallet.php
配置文件,其中您可以指定自定义的用户、钱包和交易类。
使用方法
将 HasWallet
特性添加到您的用户模型中。
use Muathye\Wallet\Traits\HasWallet; class User extends Model { use HasWallet; ... }
然后您可以从用户模型轻松进行交易。
$user = User::find(1); $user->wallet->balance; // 0 $user->wallet->deposit(100); $user->wallet->balance; // 100 $user->wallet->withdraw(50); $user->wallet->balance; // 50 $user->wallet->forceWithdraw(200); $user->wallet->balance; // -150
您可以轻松添加元信息到交易以满足您的需求。
$user = User::find(1); $user->wallet->deposit(100, ['stripe_source' => 'ch_BEV2Iih1yzbf4G3HNsfOQ07h', 'description' => 'Deposit of 100 credits from Stripe Payment']); $user->wallet->withdraw(10, ['description' => 'Purchase of Item #1234']);
测试
此包使用 https://github.com/orchestral/testbench 创建Laravel测试环境。测试将在预配置的内存sqlite数据库中执行,因此您不需要在自己的数据库上设置。
要运行PHPUnit测试,请确保首先通过以下命令安装包依赖项:
composer install
然后从项目根目录执行
composer test
信用
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。