muath-ye/wallet

为您的 Laravel 应用提供易于使用的虚拟钱包

v9.0.0 2022-09-03 19:52 UTC

This package is auto-updated.

Last update: 2024-08-30 01:28:59 UTC


README

一些应用需要预付费系统,如虚拟钱包,客户可以在其中充值积分,然后使用这些积分在应用内进行支付。使用本包,您可以为您的 eloquent 模型添加一个或多个数字钱包,这些钱包会为您处理这些操作。所有钱包活动都通过交易进行跟踪。

安装

使用 composer 安装包

composer require muath-ye/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 配置文件,您可以在其中指定自定义的 Users、Wallets 和 Transactions 类。

用法

HasWallet 特性添加到您的 User 模型中。

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_V2IEyiB3HzGNh17bf4hsQ0fO', 'description' => 'Deposit of 100 credits from Stripe Payment']);
$user->wallet->withdraw(10, ['description' => 'Purchase of Item #12']);

测试

本包使用 orchestral/testbench 创建 Laravel 测试环境。测试将在预配置的内存 sqlite 数据库上执行,因此您不需要在自己的系统上设置数据库。

要运行 phpunit 测试,请确保首先通过以下方式安装包依赖项

composer install

然后在项目根目录下执行

composer test

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件