ccharz / laravel-epc-qr
Laravel EPC-QR-Code Generator for sepa payments
Installs: 6 159
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^8.2
- endroid/qr-code: ^5.0
- illuminate/support: ^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- larastan/larastan: ^1.0|^2.0|^3.0
- laravel/pint: ^1.21
- orchestra/testbench: ^7.37|^8.17|^9.0|^10
README
Library for generating epc qr codes for sepa payments. See https://de.wikipedia.org/wiki/EPC-QR-Code for more information.
QR-Code generation is provided by https://github.com/endroid/qr-code
If you need a more general solution without the dependencies of endroid and laravel have a look at https://github.com/smhg/sepa-qr-data-php
Installation
Require this package in your composer.json and update composer.
composer require ccharz/laravel-epc-qr
Usage
With these methods you can set the sepa payment data, all methods can be chained.
- iban(string $iban)
- bic(string $bic)
- accountOwner(string account_owner)
- receiver(string $iban, string $bic, string $account_owner)
- purpose(string $code): 4 Character Purpose Code
- reference(string $reference): Reconciliation reference (Mutually exclusive with text)
- text(string $text): Reconciliation text
- amount(float $amount, string $currency = 'EUR')
- note(string $note): User note
To stream the output directly to the browser use the stream method
return EPCQR::amount(150) ->receiver('AT000000000000000000', 'ABCDATWW', 'Max Mustermann') ->note('test') ->purpose('AT12') ->text('Test Überweisungstext') ->stream();
To only get the endroid/qr-code result use the build method
$result = EPCQR::amount(150) ->receiver('AT000000000000000000', 'ABCDATWW', 'Max Mustermann') ->note('test') ->purpose('AT12') ->text('Test Überweisungstext') ->build(); // Generate a data URI to include image data inline (i.e. inside an <img> tag) echo $result->getDataUri();
You can use the methods size(int $size)
and margin(int $margin)
to adapt the qr code to your needs. If you need more customisation you can also get the endroid/qr-code builder by using the prepareBuilder() method:
$builder = EPCQR::amount(150) ->receiver('AT000000000000000000', 'ABCDATWW', 'Max Mustermann') ->note('test') ->purpose('AT12') ->text('Test Überweisungstext') ->prepareBuilder(); $result = $builder ->labelText('This is the label') ->build();
If you want to store the output into a file use the save method
return EPCQR::amount(150) ->receiver('AT000000000000000000', 'ABCDATWW', 'Max Mustermann') ->note('test') ->purpose('AT12') ->save('qr.png', 'mydisk');
More Information on EPC QR
TODO
- EPC Data Validation
License
The MIT License (MIT)