Skip to content
/ php-bsqr Public

📦 By Square document encoding, rendering and parsing utilities

Notifications You must be signed in to change notification settings

prog/php-bsqr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BySquare

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);

Links

About

📦 By Square document encoding, rendering and parsing utilities

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages