yugo / moota
Laravel 框架的非官方 Moota.co 包
Requires
- guzzlehttp/guzzle: ^6.3@dev
- laravel/framework: >=5.2
Requires (Dev)
- phpunit/phpunit: ^7.3
This package is auto-updated.
Last update: 2024-09-08 06:59:35 UTC
README
Moota.co 是一款管理银行账户变动并在一个仪表板上自动检查交易的服务。Moota.co 支持多种本地银行,如 Mandiri、BCA、BNI、Bank Muamalat 和 Bank BRI。
此存储库提供针对 Laravel 框架的(非官方)包,旨在简化使用 Moota.co API 提供的服务。
包中提供的功能
- 检查个人资料。
- 检查余额(用户余额)。
- 已注册的银行。
- 注册银行详情。
- 本月的变动。
- 最近的变动。
- 根据金额搜索变动。
- 根据描述搜索变动。
系统需求
- Laravel 框架版本 >= 5.2。
- PHP 版本 >= 7.0。一些代码使用了 return type declaration,这仅在 PHP 7 中可用。
安装
运行以下命令将 Moota 包添加到 Laravel
composer require yugo/moota -vvv
Laravel 具有功能 Package Discovery,这允许自动注册包。因此,您可以不注册它即可使用 Moota facade。
如果您发现出现错误消息“无法找到 Moota 类”,请在 config/app.php
文件中手动注册 Moota 提供器和 facade。
/*
* Package Service Providers...
*/
Yugo\Moota\Providers\MootaServiceProvider::class,
如果需要,请添加 Moota facade 的别名。
/*
|--------------------------------------------------------------------------
| Class Aliases
|--------------------------------------------------------------------------
|
| This array of class aliases will be registered when this application
| is started. However, feel free to register as many as you wish as
| the aliases are "lazy" loaded so they don't hinder performance.
|
*/
`Moota` => Yugo\Moota\Facades\Moota::class,
在 .env
文件中,添加以下新配置
MOOTA_HOST="https://app.moota.co/api/v1/"
MOOTA_TOKEN="token-kamu"
MOOTA_TIMEMOUT=30
您可以通过以下菜单获取令牌: https://app.moota.co/settings?tab=api。
MOOTA_HOST
配置是可选的,如果不在 .env
文件中提供,将自动使用最新端点。
MOOTA_TIMEOUT
配置也是可选的。此配置表示应用程序在返回异常之前调用 Moota API 多长时间(以秒为单位)。请确保您使用整数值填充它。
使用
包安装成功后,首先导入 Moota facade。
use Yugo\Moota\Facades\Moota;
// atau cukup seperti di bawah jika didaftarkan sebagai alias pada config/app.php
use Moota;
然后,您可以使用 Moota facade 从 Moota.co 提供的 API 获取信息。以下是一些可用函数的示例。
获取用户个人资料
可以用来查看您的个人资料详细信息。
Moota::profile();
获取用户余额
可以用来查看您拥有的余额(在扣除费用之前)。
Moota::balance();
获取所有已注册银行
Moota::banks();
根据 ID 获取一个银行的详细信息
银行 ID 可以在调用上述函数获取银行数据时看到。
Moota::bank($bankId = 'XXX123');
获取本月的变动数据
要获取银行的变动,则需要提供银行 ID 作为函数的参数。例如
Moota::mutation($bankId = 'XXX123')->month();
获取某个银行的最后变动
此函数的参数也需要银行 ID。
Moota::mutation($bankId = 'XXX123')->latest();
// menampilkan mutasi terakhir dengan jumlah tertentu
Moota::mutation($bankId = 'XXX123')->latest(15);
搜索变动
您也可以根据交易金额和描述来搜索变动。与上述两个函数类似,此函数也需要银行 ID 作为参数。
// cari mutasi berdasar nominal
Moota::mutation($bankId = 'XXX123')->amount(10000);
// cari mutasi berdasar deskripsi
Moota::mutation($bankId = 'XXX123')->description('Transfer dari...');
上述函数的所有返回值都采用 Laravel Collection 的形式。其数据格式与 Moota.co API 的响应格式完全相同。
如果你想要以数组形式返回,只需在函数调用链的末尾添加方法 toArray()
。例如
Moota::profile()->toArray();
// contoh nilai kembalian dalam bentuk array
array:5 [▼
"name" => "Dedy Yugo Purwanto"
"email" => "xx-sample@email-fake.com"
"address" => null
"city" => null
"join_at" => "2018-09-19 16:47:42"
]
is_array(Moota::mutation($bankId)->month()->toArray()) // true
缓存
一些facade方法支持缓存。这允许API的响应被保存在本地服务器的缓存中。当相同的函数多次调用时,应用程序无需直接调用Moota API。
要启用缓存功能,你只需要在特定方法的调用中添加 cache()
方法。例如
Moota::cache()->profile();
// cache selama 24 jam
Moota::cache(60 * 24)->banks();
// cache selama 15 menit
Moota::cache(15)->bank($bankId = 'XXX123');
cache的第一个参数是integer
类型,表示数据将在缓存中保存多长时间(以分钟为单位)。
特别地,方法amount()
和description()
不支持缓存功能。当然,你可以使用Laravel内置的缓存手动保存。
许可证
MIT.