codelicious/php-belgianbankstatement-parser

比利时银行多种银行对账单格式的统一解析器

v2.4.1 2024-05-15 11:59 UTC

This package is auto-updated.

Last update: 2024-09-15 12:36:30 UTC


README

比利时银行多种银行对账单格式的统一解析器。支持CODA、MT940和CSV(BNP Paribas / Belfius / KBC / ING)

安装

您可以使用Composer安装Codelicious/BelgianBankStatement。您可以在Packagist主页上了解更多关于Composer及其主要仓库的信息。首先按照Packagist主页上的说明为您的项目安装Composer,然后在您的composer.json文件中定义对Codelicious/BelgianBankStatement的依赖。

    {
        "require": {
            "codelicious/php-belgianbankstatement-parser": "^2.0"
        }
    }

或者,您可以在项目根目录中执行以下命令来安装此库

composer require codelicious/php-belgianbankstatement-parser

使用方法

<?php

use Codelicious\BelgianBankStatement;

$parser = new Parser();
$statement = $parser->parseFile('coda-file.cod', 'coda');

echo $statement->getDate()->format('Y-m-d') . "\n";

foreach ($statement->getTransactions() as $transaction) {
    echo $transaction->getAccount()->getName() . ": " . $transaction->getAmount() . "\n";
}

echo $statement->newBalance() . "\n";

编码考虑因素

对账单中可能存在非UTF-8字符。为了统一您摄取的对账单的编码,您可能希望在解析之前将编码转换为UTF-8。

if (mb_detect_encoding($content, ['UTF-8', 'ISO-8859-1']) === 'ISO-8859-1') {
  // use mb_convert_encoding($content, to_encoding, from_encoding) to convert to UTF-8
  $content = mb_convert_encoding($content, "UTF-8", "ISO-8859-1");
}

对账单结构

  • Codelicious\BelgianBankStatement\Statement
    • 日期 - 提供的文件的日期(格式YYYY-MM-DD)
    • 账户 - 为其对账单创建的账户。实现Codelicious\BelgianBankStatement\Account的对象
    • 初始余额 - 处理交易之前的账户余额。最多3位小数。
    • 新余额 - 处理交易之后的账户余额。最多3位小数。
    • 交易 - 作为Codelicious\BelgianBankStatement\Transaction实现的交易列表
  • Codelicious\BelgianBankStatement\Account
    • 名称 - 账户持有人的姓名
    • Bic - 账户的银行代码
    • 号码 - 账户的银行账号
    • 货币代码 - 账户的货币
    • 国家代码 - 账户的国家
  • Codelicious\BelgianBankStatement\Transaction
    • 账户 - 交易另一方的账户。实现Codelicious\BelgianBankStatement\Account的对象
    • 交易日期 - 请求交易日期
    • 起息日期 - 银行执行交易日期
    • 金额 - 交易金额。最多3位小数。信用交易的金额为负数。
    • 消息 - 交易消息
    • 结构化消息 - 交易的结构化消息(如果有的话)