czechphp/czech-bank-account

提供有用的工具进行捷克银行账户验证和数据操作。

v1.3.0 2023-02-17 18:56 UTC

This package is auto-updated.

Last update: 2024-09-17 22:09:24 UTC


README

Build Status codecov

提供有用的工具进行捷克银行账户验证和数据操作。

安装

使用以下命令安装最新版本

$ composer require czechphp/czech-bank-account

文档

银行账户号码验证器

捷克语:捷克银行账户国家号码验证器

<?php

use Czechphp\CzechBankAccount\Validator\BankAccountNumberValidator;

$validator = new BankAccountNumberValidator();
$violation = $validator->validate('19-19', [
    'type' => BankAccountNumberValidator::OPTION_TYPE_VARIABLE,
]);

if ($violation === BankAccountNumberValidator::ERROR_NONE) {
    // valid
}

银行代码验证器

捷克语:捷克共和国支付方式代码验证器(银行代码)

<?php

use Czechphp\CzechBankAccount\Validator\BankCodeValidator;
use Czechphp\CzechBankAccount\Loader\BankCode\FilesystemLoader;

$validator = new BankCodeValidator(new FilesystemLoader());
$violation = $validator->validate('0100');

if ($violation === BankCodeValidator::ERROR_NONE) {
    // valid
}

变量符号验证器

捷克语:变量符号验证器

<?php

use Czechphp\CzechBankAccount\Validator\VariableSymbolValidator;

$validator = new VariableSymbolValidator();
$violation = $validator->validate('123');

if ($violation === VariableSymbolValidator::ERROR_NONE) {
    // valid
}

特定符号验证器

捷克语:特定符号验证器

<?php

use Czechphp\CzechBankAccount\Validator\SpecificSymbolValidator;

$validator = new SpecificSymbolValidator();
$violation = $validator->validate('123');

if ($violation === SpecificSymbolValidator::ERROR_NONE) {
    // valid
}

常量符号验证器

捷克语:常量符号验证器

默认情况下,只验证常量符号的格式。

<?php

use Czechphp\CzechBankAccount\Validator\ConstantSymbolValidator;

$validator = new ConstantSymbolValidator();
$violation = $validator->validate('0006');

if ($violation === ConstantSymbolValidator::ERROR_NONE) {
    // valid
}

要使用可选的针对已知常量符号数据库的验证,验证器需要在构造函数中包含一个Filter实例,并在validate方法的调用中使用filter选项。

<?php

use Czechphp\CzechBankAccount\ConstantSymbol\Filter\ArrayCacheFilter;
use Czechphp\CzechBankAccount\ConstantSymbol\Filter\Filter;
use Czechphp\CzechBankAccount\ConstantSymbol\Loader\ArrayRequireLoader;
use Czechphp\CzechBankAccount\Validator\ConstantSymbolValidator;

$filter = new ArrayCacheFilter(new Filter(new ArrayRequireLoader()));
$validator = new ConstantSymbolValidator($filter);
$violation = $validator->validate('0006', [
    'filter' => ['include' => ['all']],
]);

if ($violation === ConstantSymbolValidator::ERROR_NONE) {
    // valid
}

常量符号组件

加载已知常量符号列表,并过滤掉指定的类别和符号。

在提供的常量符号分组数据库中,使用allpublicrestricted

  • all包含所有符号,无一例外
  • public包含公众可以使用的安全符号
  • restricted包含只有银行或政府可以使用的安全符号

请注意,提供的已知常量符号数据库可能不完整或限制组可能设置错误。原因是获取最新的常量符号列表很复杂,并且常量符号由政府缓慢淘汰。这个数据库的存在是为了允许限制用户输入公众不允许使用的常量符号。

ArrayRequireLoader

默认情况下加载与库捆绑的数据,但可以设置为从任何文件中读取。

Filter

过滤加载的数据。

过滤条件分为包括和排除。两个过滤器都接受组名称和单个常量符号代码。

例如,条件['include' => ['public', 'restricted'], 'exclude' => ['5']]将返回属于public和/或restricted组的符号列表,而符号5被排除在列表之外。

ArrayCacheFilter

缓存最新条件的输出。

由于已知常量符号列表的大小,建议至少使用数组缓存。加载和过滤列表可能需要数十毫秒。

银行代码组件

加载支付系统代码目录。

加载数据是多维数组,以下格式

<?php

use Czechphp\CzechBankAccount\Loader\BankCode\FilesystemLoader;
use Czechphp\CzechBankAccount\Loader\BankCode\LoaderInterface;

$loader = new FilesystemLoader();

$data = $loader->load();

// first two rows of $data variable
[
    [
        LoaderInterface::CODE => '0100', // string
        LoaderInterface::NAME => 'Komerční banka, a.s.', // string
        LoaderInterface::BIC => 'KOMBCZPP', // string|null
        LoaderInterface::CERTIS => true, // bool
    ],
    [
        LoaderInterface::CODE => '0300',
        LoaderInterface::NAME => 'Československá obchodní banka, a. s.',
        LoaderInterface::BIC => 'CEKOCZPP',
        LoaderInterface::CERTIS => true,
    ],
];

FilesystemLoader

默认情况下加载与库捆绑的数据,但可以设置为从任何文件中读取。

FileGetContentsLoader

使用file_get_contents官方远程源加载数据。

SymfonyHttpClientLoader

使用实现symfony/http-client-implementation的http客户端从官方远程源加载数据。

SymfonyCachedLoader

装饰器加载器使用实现symfony/cache-implementation的缓存客户端缓存父加载器的结果。

ChainLoader

链式加载器。如果链式加载器失败,则调用下一个加载器。

银行账户号码格式转换器

在常见格式之间转换银行账户号码格式。

<?php

use Czechphp\CzechBankAccount\Utils\BankAccountNumberFormatConverter;

BankAccountNumberFormatConverter::convertVariableToConstant('19-19'); // returns "0000190000000019"

BankAccountNumberFormatConverter::convertConstantToVariable('0000190000000019'); // returns "19-19"