elgigi/iban

用于操作各国IBAN和BBAN的库

v1.1.0 2023-07-18 13:58 UTC

This package is auto-updated.

Last update: 2024-09-18 16:23:11 UTC


README

Latest Version Software License Build Status Codacy Grade Total Downloads

PHP库,用于操作各国IBAN和BBAN,包括验证、解析、JSON表示...

安装

您可以使用 Composer 安装此库

composer require elgigi/iban

用法

解析

您可以使用 Iban::parse() 方法解析IBAN

$iban = Iban::parse('FR14 2004 1010 0505 0001 3M02 606');

或使用 Bban::parse() 方法解析BBAN

$bban = Bban::parse('2004 1010 0505 0001 3M02 606', Country::FR);

IBAN和BBAN

Iban对象由两部分组成

  • \ElGigi\Iban\Bban 对象(BBAN的表示)
  • 校验位

Bban 对象由多个属性组成

  • 银行标识符
  • 分支标识符 1
  • 账号号码
  • 校验位 1
  • 货币 1
  • 附加数字 1
  • ...

这两个对象都有 format() 方法,以获取对象的字符串表示形式。此方法接受一个布尔参数以获得“紧凑”表示(不带空格)。

JSON

对于IBAN,JSON序列化给出IBAN的字符串表示形式

"FR14 2004 1010 0505 0001 3M02 606"

对于BBAN,它有些不同,因为我们需要国家来重建BBAN对象,所以JSON表示形式是

{
  "country": "FR",
  "bban": "2004 1010 0505 0001 3M02 606"
}

然后可以简单地使用类的 parse() 方法再次构建对象。

验证

IBAN验证

调用 Iban::isValid():bool 方法以确定IBAN是否有效。

或使用 IbanValidation::validate(): bool 静态方法验证IBAN对象或字符串表示形式。

此外,您还可以从BBAN构建一个IBAN,而不需要校验位,库会猜测它们,例如

$iban = new Iban(Bban::parse('2004 1010 0505 0001 3M02 606', Country::FR));
print $iban->format(); // Output: 'FR14 2004 1010 0505 0001 3M02 606'

BBAN验证

取决于银行和国家,BBAN验证可以通过 Bban::isValid() 方法获得

或使用 BbanValidation::validate(): bool 静态方法验证BBAN对象或字符串表示形式。

在银行没有对BBAN进行控制的情况下,该方法总是返回TRUE。

国家

IBAN与国家相关联。国家由 Country 枚举表示。列出所有支持IBAN的国家。

您还可以使用辅助静态方法

  • Country::sepaMembers(): array:SEPA成员国家列表
  • Country::from(string $iso): Country:从ISO代码获取国家枚举值

或使用具有国家值的方法(例如FR)

  • Country::FR->isSepaMember(): bool:国家是SEPA成员吗?
  • Country::FR->getCurrency(): Currency:国家的主要货币
  • Country::FR->getLanguage(): Language|Language[]:国家的语言(们)
  • Country::FR->getLocale(): string|string[]:国家的区域设置(们)
  • Country::FR->getIbanRegex(): string:国家的IBAN正则表达式

语言

Language 枚举表示国家的语言。

要找到说某种语言的国家,您可以使用辅助方法

Language::fr->getCountries(): Country[]

货币

Currency 枚举表示国家的货币。

要找到具有货币的国家,您可以使用辅助方法

Currency::fr->getCountries(): Country[]