ixnode/php-iban

PHP IBAN - 该库提供账号号码、银行代码和IBAN的转换器。

0.1.30 2024-06-04 20:15 UTC

README

Release PHP PHPStan PHPUnit PHPCS PHPMD Rector - Instant Upgrades and Automated Refactoring LICENSE

此库提供账号号码、银行代码和IBAN的转换器。

1. 使用方法

一些使用示例。

1.1 IBAN解析器示例

use Ixnode\PhpIban\Iban;
use Ixnode\PhpIban\Validator;

...

$iban = 'DE02120300000000202051';
$validator = new Validator(new Iban($iban));

print $validator->isValid() ? 'YES' : 'NO';
// (string) YES

print $validator->getAccount()->getAccountNumber();
// (string) 0000202051

print $validator->getIban()->getIbanFormatted();
// (string) DE02 1203 0000 0000 2020 51

etc.

1.2 账号号码和银行代码转换器示例(AT, CH, DE, LI等)

use Ixnode\PhpIban\Account;

...

$accountNumber = '0000202051';
$bankCode = '12030000';
$countryCode = 'DE';
$account = new Account($accountNumber, $bankCode, $countryCode);

print $account->getIban();
// (string) DE02120300000000202051

print $account->getIbanFormatted();
// (string) DE02 1203 0000 0000 2020 51

1.3 账号号码和银行代码转换器示例(FR)

use Ixnode\PhpIban\Account;
use Ixnode\PhpIban\Constant\IbanFormats;

...

$accountNumber = '00020053701';
$bankCode = '30027';
$countryCode = 'FR';
$branchCode = '17533';
$nationalCheckDigits = '59';
$account = new Account($accountNumber, $bankCode, $countryCode, [
    IbanFormat::KEY_BRANCH_CODE => $branchCode,
    IbanFormat::KEY_NATIONAL_CHECK_DIGITS => $nationalCheckDigits,
]);

print $account->getIban();
// (string) FR7630027175330002005370159

print $account->getIbanFormatted();
// (string) FR76 3002 7175 3300 0200 5370 159

2. 支持的国家

已检查的国家和添加的测试(其他国家也可能有效)

  • AD(安道尔)
  • AE(阿拉伯联合酋长国)
  • AL(阿尔巴尼亚)
  • AT(奥地利)
  • AZ(阿塞拜疆)
  • BA(波斯尼亚和黑塞哥维那)
  • BE(比利时)
  • BG(保加利亚)
  • BH(巴林)
  • BR(巴西)
  • BY(白俄罗斯)
  • CH(瑞士)
  • CR(哥斯达黎加)
  • CY(塞浦路斯)
  • CZ(捷克)
  • DE(德国)
  • DK(丹麦)
  • DO(多米尼加共和国)
  • EE(爱沙尼亚)
  • EG(埃及)
  • ES(西班牙)
  • FI(芬兰)
  • FO(法罗群岛)
  • FR(法国)
  • GB(大不列颠及北爱尔兰联合王国)
  • GE(格鲁吉亚)
  • GI(直布罗陀)
  • GL(格陵兰)
  • GR(希腊)
  • GT(危地马拉)
  • HR(克罗地亚)
  • HU(匈牙利)
  • IE(爱尔兰)
  • IL(以色列)
  • IQ(伊拉克)
  • IS(冰岛)
  • IT(意大利)
  • JO(约旦)
  • KW(科威特)
  • KZ(哈萨克斯坦)
  • LB(黎巴嫩)
  • LC(圣卢西亚)
  • LI(列支敦士登)
  • LT(立陶宛)
  • LU(卢森堡)
  • LV(拉脱维亚)
  • MC(摩纳哥)
  • ME(黑山)
  • MD(摩尔多瓦)
  • MK(北马其顿)
  • MR(毛里塔尼亚)
  • MT(马耳他)
  • MU(毛里求斯)
  • NL(荷兰)
  • NO(挪威)
  • PK(巴基斯坦)
  • PL(波兰)
  • PS(巴勒斯坦)
  • PT(葡萄牙)
  • QA(卡塔尔)
  • RO(罗马尼亚)
  • RS(塞尔维亚)
  • SA(沙特阿拉伯)
  • SC(塞舌尔)
  • SE(瑞典)
  • SI(斯洛文尼亚)
  • SK(斯洛伐克)
  • SM(圣马力诺)
  • ST(圣多美和普林西比)
  • SV(萨尔瓦多)
  • TN(突尼斯)
  • TL(东帝汶)
  • TR(土耳其)
  • VG(英属维尔京群岛)
  • UA(乌克兰)
  • XK(科索沃)

所有添加的国家可在此处找到:Ixnode\PhpIban\Constant\IbanFormats::IBAN_FORMATS

查看https://en.wikipedia.org/wiki/International_Bank_Account_Number#IBAN_formats_by_country以添加更多国家。

3. 安装

composer require ixnode/php-iban
vendor/bin/php-iban -V
0.1.0 (2023-09-01 21:09:52) - Björn Hempel <bjoern@hempel.li>

4. 命令行工具

4.1 检查IBAN号码

用于快速检查给定的IBAN号码。

bin/console iban:validate MU17BOMM0101101030300200000MUR

或在你自己的composer项目中

bin/console iban:validate MU17BOMM0101101030300200000MUR
Given IBAN:     MU17BOMM0101101030300200000MUR

Parsed IBAN
-----------
Valid:                           YES
Last error:                      N/A
IBAN:                            MU17BOMM0101101030300200000MUR
IBAN:                            MU17 BOMM 0101 1010 3030 0200 000M UR
Checksum:                        17
Format:                          MUkkbbbbbbsscccccccccccc000mmm
Parts:                           country-code=MU, iban-check-digits=17, national-bank-code=BOMM01, branch-code=01, account-number=101030300200, number=000, currency-code=MUR

Account
-------
Country:                         MU (Mauritius)
Checksum:                        17
Balance cccount number:          N/A
National bank code:              BOMM01
Account number:                  101030300200
National identification number:  N/A
Currency code:                   MUR
Owner account number:            N/A
Account number prefix:           N/A
Bic bank code:                   N/A
Branch code:                     01
Account type:                    N/A
National check digits:           N/A
IBAN (from account):             MU17BOMM0101101030300200000MUR
IBAN (from account):             MU17 BOMM 0101 1010 3030 0200 000M U

4.2 生成IBAN号码

用于快速生成IBAN号码。

bin/console account-number:validate 0000202051 12030000

或在你自己的composer项目中

vendor/bin/php-iban account-number:validate 0000202051 12030000
Given account number: 0000202051
Given bank code:      12030000
Given country code:   DE

Parsed IBAN
-----------
IBAN:           DE02120300000000202051
Valid:          YES
Last error:     N/A
Country:        DE
Checksum:       02
Account number: 0000202051
Bank number:    12030000

5. 库开发

git clone git@github.com:ixnode/php-iban.git && cd php-iban
composer install
composer test

6. 许可证

此库采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。