cashlink / bav
BAV 提供德国银行账户(Konto)的验证
Requires
- php: >=7.3
- cashlink/php-index: ~1.0.0
Requires (Dev)
- doctrine/dbal: ^2
- doctrine/orm: ^2
- phpunit/phpunit: ~9.5
- symfony/cache: ^4.4 || ^5.4 || ^6.0
Suggests
- ext-PDO: Allows storing bank information in a database
- ext-curl: Enables API for downloading the bank file
- ext-dom: Enables picking the download URI by xpath
- ext-mbstring: Enables UTF-8 support
- doctrine/orm: Support for Doctrine ORM data backend
This package is auto-updated.
Last update: 2023-03-22 16:42:14 UTC
README
BAV(银行账户验证器)是德国银行账户的验证库。
此存储库是原始项目的活跃维护分支。它也定期发布到 packagist.org,因此您可以使用 Composer 使用 cashlink/bav
进行安装。
安装
使用 Composer
{ "require": { "cashlink/bav": "^3" } }
配置
您可以直接使用 BAV。BAV 附带了一个默认配置(DefaultConfiguration
)
-
UTF-8 编码(如果支持)
-
FileDataBackendContainer
。即它使用联邦银行的文件进行二分搜索。请注意,此数据后端使用目录bav/data
进行安装和更新操作。您必须确保此目录可写。 -
自动安装。您不需要调用任何安装脚本。容器将在第一次执行时下载联邦银行文件。
-
更新计划,如果联邦银行文件过时,则会触发 E_USER_NOTICE。
您可以通过调用 ConfigurationRegistry::setConfiguration()
或最好是创建文件 bav/configuration.php
来定义自己的配置,该文件返回一个 Configuration
对象
namespace malkusch\bav; $configuration = new DefaultConfiguration(); $pdo = new \PDO("mysql:host=localhost;dbname=test;charset=UTF8"); $configuration->setDataBackendContainer(new PDODataBackendContainer($pdo)); $configuration->setUpdatePlan(new AutomaticUpdatePlan()); return $configuration;
更新
联邦银行在 3 月、6 月、9 月和 12 月发布新文件。BAV 需要那些新文件。您有几种方法可以更新 bav
脚本
调用 bin/bav-update.php
。
编程方式
use malkusch\bav\BAV; $bav = new BAV(); $bav->update();
自动
在您的 bav/configuration.php
中启用 AutomaticUpdatePlan
以自动更新
namespace malkusch\bav; $configuration = new DefaultConfiguration(); $configuration->setUpdatePlan(new AutomaticUpdatePlan()); return $configuration;
此自动更新计划将在关闭钩子中执行长时间运行的更新操作。即它不会在正常操作期间打扰用户。
使用
您可以使用 API 接口 BAV
使用 BAV
-
BAV::isValidBank($bankID)
:对于现有银行 ID 返回 true。 -
BAV::isValidBankAccount($bankID, $account)
:对于现有银行的实际账户返回 true。 -
BAV::isValidAccount($account)
:此方法将账户与最后一个isValidBank()
调用的银行进行验证。 -
BAV::getValidBankFilterCallback()
:返回用于银行验证的回调函数。 -
BAV::getValidAccountFilterCallback()
:返回用于账户验证的回调函数。账户过滤器需要在银行过滤器之后调用。 -
BAV::getMainAgency()
:返回银行的主体机构。 -
BAV::getAgencies()
:返回其他机构。主体机构不包含在这个列表中。此列表可能为空。
Agency
对象有如下字段
示例
use malkusch\bav\BAV; $bav = new BAV(); $bankID = "10000000"; $account = "1234567890" // check for a bank var_dump( $bav->isValidBank($bankID) ); // check for a bank account var_dump( $bav->isValidBankAccount($bankID, $account) ); // filter validation var_dump( filter_var($bankID, FILTER_CALLBACK, $bav->getValidBankFilterCallback()), filter_var($account, FILTER_CALLBACK, $bav->getValidAccountFilterCallback()) ); // Get informations about a bank $agency = $bav->getMainAgency($bankID); echo "{$agency->getName()} {$agency->getCity()}\n";
参见 bav/docs/example.php
。
可选依赖项
您可能需要以下依赖项
-
CURL:如果您提供
bav/data/banklist.txt
,则不需要 CURL。 -
mbstring:BAV 与 Unicode 编码一起工作。您的 PHP 必须在
mb_*
函数中编译了支持。如果缺少这些函数,则 BAV 只能与 ISO-8859-15 编码一起工作。 -
PDO:如果您打算使用 DBS,则需要使用
PDODataBackendContainer
。PDODataBackendContainer
需要编译了 PHP 中的PDO
支持。 -
doctrine/orm:您可以使用使用 doctrine 作为数据后端的
DoctrineBackendContainer
。
许可证和作者
原始项目的作者,该项目为该项目提供了灵感是 Björn Wilmsmann。之前的维护者是 Markus Malkusch markus@malkusch.de。