Coder Social home page Coder Social logo

php-bsqr's Introduction

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 */ )
		// ->setBeneficiaryName("Beneficiary name")
		// ->setBeneficiaryAddressLine1("Address 1")
		// ->setBeneficiaryAddressLine2("Address 2")
	)
	->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

php-bsqr's People

Contributors

hubipe avatar michalgallovic avatar prog avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.