pkeidel/banktolaravel

从银行账户读取预订信息并将其保存到数据库中的本地表中

v1.5.0 2023-09-02 15:11 UTC

README

Build Status

是什么

此包创建一个数据库表以存储所有银行预订/对账单。同时,创建了一个 artisan 命令 php artisan bank:import,可以直接从您的银行导入它们。新条目作为事件发布,您可以通过查看用法了解更多。此包支持 HBCI/FinTS,这是与银行机构通信的德国标准。

感谢

非常感谢 nemiah/fints-hbci-php 提供并维护这样一个优秀的库,让我能够轻松地在此基础上进行工作!

安装

首先添加 composer 依赖项

composer require pkeidel/banktolaravel

然后发布并运行迁移来创建 'bookings' 表

php artisan vendor:publish --provider="PKeidel\BankToLaravel\Providers\BankToLaravelServiceProvider" --tag=migrations
php artisan migrate

现在将其添加到良好的受保护路由组中

Route::resource('bookings', '\PKeidel\BankToLaravel\Controllers\BookingsController');

最后,创建一个任务调度器,如这里所述

$schedule->command('bank:import')->hourly();

用法

将这些值追加到您的 .env 文件中

# https://github.com/willuhn/hbci4java/blob/master/src/blz.properties
FHP_BANK_URL=
FHP_BANK_CODE=
FHP_ONLINE_REGISTRATIONNO=
FHP_ONLINE_BANKING_USERNAME=
FHP_ONLINE_BANKING_PIN_CMD="keyring get mybank.com myusername"
# OR use decrypted PIN
#FHP_ONLINE_BANKING_PIN=""
FHP_BANK_START="14 days ago"
FHP_BANK_ACCOUNT=

每次将新条目添加到数据库时,都会触发一个 PKeidel\BankToLaravel\Events\NewEntry 事件。

在某个 ServiceProvide 的 boot() 函数中,您可以简单地监听事件并添加一些自己的逻辑,例如发送电子邮件或通过其他方式通知您。

Event::listen(\PKeidel\BankToLaravel\Events\Error::class, function (Error $error) {
    Log::error("BankToLaravel error: $error->exception");
});

Event::listen(\PKeidel\BankToLaravel\Events\NewEntry::class, function (NewEntry $entry) {
    optional(Users::where('iban', $entry->data['ref_iban'])->first())->notify(new NewBankaccountBooking($entry));
});