yugo/moota

Laravel 框架的非官方 Moota.co 包

v1.2.1 2019-02-07 15:59 UTC

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.