snadnee/php-abo-generator

生成大量付款订单的ABO文件

v1.3.0 2024-01-10 10:42 UTC

This package is auto-updated.

Last update: 2024-09-30 19:18:30 UTC


README

此包可用于生成可用于导入网上银行的ABO文件。

安装

composer require snadnee/php-abo-generator

基本用法

此包的基本用法很简单。以下是一个示例。

use Snadnee\ABOGenerator\ABOGenerator;
use Carbon\Carbon;

$senderParams = [
    'bankAccount' => '11-123456789/0600',
    'organisationName' => 'Company xyz',
];

$paymentGroups = [
    'group1' => [
        'dueDate' => Carbon::now(),
        'payments' => [
            [
                'amount' => 1.5,
                'bankAccount' => '112-987654321/3030',
                'variableSymbol' => 1234,
                'specificSymbol' => 4321,
                'constantSymbol' => 1234,
                'message' => 'Payment',
            ],
            [
                'amount' => 1.5,
                'bankAccount' => '112-987654321/3030',
                'variableSymbol' => 1234,
                'specificSymbol' => 4321,
                'constantSymbol' => 1234,
                'message' => 'Payment',
            ],
        ]
    ],
];

$ABOGenerator = new ABOGenerator();

$result = $ABOGenerator->simpleGenerating($senderParams, $paymentGroups);

高级用法

ABO格式分为以下几部分:文件、组和付款本身。

每个文件可以有自己的银行和类型(付款、扣款)。每个组可以有自己的银行账号和同一银行的到期日(默认为今天)。每个付款有一个金额、一个变量、一个特定、一个常数符号、一条消息和一个银行账号。

use Snadnee\ABOGenerator\ABOGenerator;
use Carbon\Carbon;

$ABOGenerator = new ABOGenerator('Company name');

$file = $ABOGenerator->addFile(ABOGenerator::PAYMENT);
$file->setSenderBank(0600);

$group = $file->addGroup();
$group->setSenderAccount(1234567890)
    ->setDate(Carbon::now());

// AccountNumber, amount, variable symbol
$group->addPayment("111-987654321/0300", 14323.43, 2220009813)
    ->setConstantSymbol('8')
    ->setSpecificSymbol('93653')
    ->setMessage('Message');

$group->addPayment("111-2424242424/0300", 1000.5, 2220009813)
    ->setConstantSymbol('8')
    ->setSpecificSymbol('93653')
    ->setMessage('Message');

$file2 = $ABOGenerator->addFile(ABOGenerator::INKASO);
$file2->setSenderBank(0600);

$group = $file2->addGroup();
$group->setSenderAccount(987654321);

$group->addPayment("174-987654321/0300", 1.5, 2220009813)
    ->setConstantSymbol('8')
    ->setSpecificSymbol('93653')
    ->setMessage('Zprava 1');

$group->addPayment("174-987654321/0300", 1234, 2220009813)
    ->setConstantSymbol('8')
    ->setSpecificSymbol('93653')
    ->setMessage('Zprava 2');


$group = $file2->addGroup();
$group->setSenderAccount(227757331);

$group->addPayment("174-987654321/0300", 100, 2220009813)
    ->setConstantSymbol('8')
    ->setSpecificSymbol('93653')
    ->setMessage('Zprava 1');

$group->addPayment("174-987654321/0300", 500, 2220009813)
    ->setConstantSymbol('8')
    ->setSpecificSymbol('93653')
    ->setMessage('Zprava 2');
    
$result = $ABOGenerator->generate();