czechphp / czech-bank-account
提供有用的工具进行捷克银行账户验证和数据操作。
Requires
- php: >=7.4
- ext-json: *
- symfony/cache-contracts: ^2 || ^3
- symfony/http-client-contracts: ^2 || ^3
Requires (Dev)
- phpunit/phpunit: ^9.5
README
提供有用的工具进行捷克银行账户验证和数据操作。
安装
使用以下命令安装最新版本
$ 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 }
常量符号组件
加载已知常量符号列表,并过滤掉指定的类别和符号。
在提供的常量符号分组数据库中,使用all
、public
和restricted
。
- 组
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"