muathye / laravel-wallet
为您的 Laravel 应用提供易于使用的虚拟钱包
v3.0.0
2022-02-02 18:56 UTC
Requires
- php: ^7.3|^8.0
This package is not auto-updated.
Last update: 2024-09-27 05:44:40 UTC
README
一些应用程序需要预付费系统,例如虚拟钱包,客户可以充值信用,然后使用这些信用在应用内进行支付。使用本包,您可以为您的 eloquent 模型配备一个或多个数字钱包,由它们为您处理这些事务。所有钱包活动都通过交易进行跟踪。
安装
使用 composer 安装包
composer require muathye/laravel-wallet
运行迁移
默认情况下,包将自动加载来自 vendor 文件夹的迁移。
如果您希望有更多灵活性,可以使用以下 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)。请参阅 许可文件 以获取更多信息。