peterbodnar.com / bsqr
By Square document encoding, parsing and rendering utilities
Installs: 17 819
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 3
Forks: 13
Open Issues: 3
Requires
- php: ^5.4 || ^7.0
- peterbodnar.com/base32: ^1.0
- peterbodnar.com/cmd: ^1.0
- peterbodnar.com/mx2svg: ^1.0
- peterbodnar.com/qrcoder: ^1.0
Requires (Dev)
- nette/tester: ^1.7
This package is not auto-updated.
Last update: 2025-05-10 22:23:07 UTC
README
By Square document encoding, rendering and parsing utilities.
Only PayBySquare document type is currently supported.
Requirements
This library uses xz
system executable (/usr/bin/xz
) for lzma compression/decompression.
Any suggestions how to remove this dependency are welcome.
Instalation
composer require peterbodnar.com/bsqr
Define a PayBySquare document
use com\peterbodnar\bsqr; $document = (new bsqr\model\Payment()) ->setDueDate("0000-00-00") // YYYY-MM-DD ->setAmount(123.45, "EUR") // amount, currency code ->setSymbols("1234567890", "308") // variable, constant symbol ->addBankAccount("SK3112000000198742637541", "XXXXXXXXXXX") // iban, bic/swift ->createPayDocument();
According to the specification, document can contain invoice ID, multiple payments, payments can contain multiple bank accounts, extensions, etc.
use com\peterbodnar\bsqr; $document = (new bsqr\model\Pay()) ->setInvoiceId("1234567890") ->addPayment( (new bsqr\model\Payment()) ->setDueDate("0000-00-00") ->setAmount(123.45, "EUR") ->setSymbols("1234567890", "308") ->addBankAccount("SK3112000000198742637541", "XXXXXXXXXXX") ->addBankAccount("SK3112000000198742637542", "XXXXXXXXXXX") ->addBankAccount("SK3112000000198742637543", "XXXXXXXXXXX") // ->setNote("Payment note") // ->setOriginatorsReferenceInformation("Originators Reference Information") // ->setDirectDebitExt( /* Direct Debit Extension */ ) // ->setStandingOrderExt( /* Standing Order Extension */ ) ) ->addPayment( /* 2nd payment */ ) ->addPayment( /* 3rd payment */ );
Render document to svg including BySqure logo and border
use com\peterbodnar\bsqr; $bysquare = new bsqr\BySquare(); $svg = (string) $bysquare->render($document);
Get bsqr data only
use com\peterbodnar\bsqr; $bsqrCoder = new bsqr\utils\BsqrCoder(); $bsqrData = $bsqrCoder->encode($document);
Use any qr-code library to encode/render data to qr matrix/image.
Parse bsqr data
use com\peterbodnar\bsqr; $bsqrCoder = new bsqr\utils\BsqrCoder(); $document = $bsqrCoder->parse($bsqrData);