三德/drei-d/laravel-sepa-xml

该包最新版本(1.2.1)没有提供许可证信息。

创建 SEPA XML 文件

1.2.1 2024-07-30 12:49 UTC

This package is auto-updated.

Last update: 2024-09-30 13:11:46 UTC


README

该项目旨在在 Laravel 中创建 SEPA xml 文件。

要求

  • Laravel 10 或更高版本
  • PHP 8.2 或更高版本
  • ext-dom & ext-iconv 启用

安装

该项目通过 composer 提供。
要安装它,请运行

composer install drei-d/laravel-sepa-xml

配置

该项目包含预定义的配置。
为了使用此包,您需要根据需要对其进行自定义。

通过运行以下命令发布配置

php artisan vendor:publish --provider=DREID\\LaravelSepaXml\\Providers\\ServiceProvider

配置文件应如下所示

return [
    'from'   => 'FROM EXAMPLE',
    'iban'   => 'IBAN EXAMPLE',
    'bic'    => 'BIC EXAMPLE',
    'prefix' => 'PREFIX-EXAMPLE-',

    // group transactions as a single transfer
    'batch_booking' => false
];
  • FROM EXAMPLE 替换为您的公司名称。您应使用大写字母和不要使用特殊字符。
  • IBAN EXAMPLE 替换为您想要汇款的银行账户的 IBAN。不要包含空格。
  • BIC EXAMPLE 替换为您想要汇款的银行账户的 BIC。不要包含空格。
  • PREFIX 替换为您的项目的唯一标识符。此前缀用于为您的交易生成唯一的 End-to-End-IDs。
  • 如果您想将交易作为一个单一转账分组,可以将 batch_booking 设置为 true。如果您不熟悉批量预订,可以自由地查看 这篇文章

我们公司的示例可能是这样的

return [
    'from'   => 'DREID-D DIREKTWERBUNG GMBH CO KG',
    'iban'   => 'DE02120300000000202051',
    'bic'    => 'BYLADEM1001',
    'prefix' => '3D-INTERN-',

    // group transactions as a single transfer
    'batch_booking' => false
];

使用方法

该项目使用依赖注入。要获取其服务的访问权限,您应使用 app() 函数注入它们,或者在可能的情况下作为函数参数。

示例

use DREID\LaravelSepaXml\Factories\TransactionFactory;
use DREID\LaravelSepaXml\Services\SepaFileCreationService;

$factory = app(TransactionFactory::class);
$service = app(SepaFileCreationService::class);

$transaction = $factory->transform(
    'Max Mustermann', // account owner
    'Test-Subject for Transaction', // subject
    'DE02120300000000202051', // IBAN
    'BYLADEM1001', // BIC
    49.95 // amount in EUR
);

$service->save(
    'local', // storage disk
    'sepa.xml', // file name
    '1', // transaction number, should be unique per export
    [
        $transaction
    ] // array of transactions you want to export
);

当使用工厂时,您的值会自动清理。您可以通过转储 DTO 来查看所做的更改。

dump($transaction);

结果应该如下所示

[
    'accountOwner' => 'MAX MUSTERMANN',
    'subject'      => 'TEST-SUBJECT FOR TRANSACTION',
    'iban'         => 'DE02120300000000202051',
    'bic'          => 'BYLADEM1001',
    'amount'       => 49.95
]