此包已被废弃,不再维护。未建议替代包。

BAV 提供德国银行账户(Konto)的验证

4.0.0 2022-08-22 15:33 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

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,则需要使用 PDODataBackendContainerPDODataBackendContainer 需要编译了 PHP 中的 PDO 支持。

  • doctrine/orm:您可以使用使用 doctrine 作为数据后端的 DoctrineBackendContainer

许可证和作者

原始项目的作者,该项目为该项目提供了灵感是 Björn Wilmsmann。之前的维护者是 Markus Malkusch markus@malkusch.de

Build Status