geniv/nette-eet

EET integration into Nette Framework

v1.0.2 2020-04-28 21:21 UTC

This package is auto-updated.

Last update: 2020-08-29 22:57:06 UTC


README

via:

Installation

$ composer require geniv/nette-eet

or

"geniv/nette-eet": "^1.0"

require:

"php": ">=7.0",
"nette/di": ">=2.4",
"filipsedivy/php-eet": ">=4.2"

Include in application

neon configure:

extensions:
    eet: EET\Bridges\Nette\Extension

neon configure extension:

eet:
  certificate:
    file: %appDir%/../eet.p12
    password: my-password

  dispatcher:
    # Dispatcher setting
    service: production / playground
    validate: true / false

  receipt:
    # Set default receipt values
    id_pokl: 19903
    dic_popl: CZ00000019
    id_provoz: 11

usage:

use EET;
use FilipSedivy;
use Nette;

final class SomePresenter extends Nette\Application\UI\Presenter
{
    /** @var EET\Dispatcher */
    private $client;

    /** @var EET\ReceiptFactory */
    private $receiptFactory;

    public function processPayment()
    {
        $receipt = $this->receiptFactory->create();
        $receipt->porad_cis = '1';
        $receipt->celk_trzba = 500;

        try {
            $client = $this->client->create();
            //$client = $this->client->createByCertificate( new CertificateFactory(__DIR__ . '/../../vendor/filipsedivy/php-eet/tests/data/EET_CA1_Playground-CZ00000019.p12', 'eet'));
            $client->send($receipt);

            $this->payment->eet->save_success($client->getFik(), $client->getPkp());

        } catch (FilipSedivy\EET\Exceptions\EET\ClientException $clientException) {
            $this->payment->eet->save_error($clientException->getPkp(), $clientException->getBkp());

        }  catch (FilipSedivy\EET\Exceptions\EET\ErrorException $errorException) {
            echo '(' . $errorException->getCode() . ') ' . $errorException->getMessage();

        } catch(FilipSedivy\EET\Exceptions\Receipt\ConstraintViolationException $constraintViolationException){
            echo implode('<br>', $constraintViolationException->getErrors());
        }
    }
}