三德/drei-d / laravel-sepa-xml
该包最新版本(1.2.1)没有提供许可证信息。
创建 SEPA XML 文件
1.2.1
2024-07-30 12:49 UTC
Requires
- php: ^8.2
- ext-dom: *
- ext-iconv: *
- laravel/framework: ^10|^11
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 ]