2017 © Pedro Peláez
 

library tatrapay

Library for Tatra bank TatraPay gateway in Nette framework.

image

paysys/tatrapay

Library for Tatra bank TatraPay gateway in Nette framework.

  • Tuesday, March 7, 2017
  • by romanmatyus
  • Repository
  • 1 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

PaySys\TatraPay

Build Status Code Quality Code Coverage Packagist MIT, (*1)

Library for implement TatraPay gateway (v4.0 with HMAC & ECDSA) from Tatra Banka in Nette framework., (*2)

Requirements

Requires PHP 7.1 or later., (*3)

Use universal libraty PaySys\PaySys., (*4)

Installation

The best way to install Unique is use Composer package PaySys/TatraPay., (*5)

$ composer require paysys/tatrapay

Configuration

extensions:
    TatraPay: PaySys\TatraPay\DI\TatraPayExtension

TatraPay:
    mid: '1234'
    key: '64-bit hexadecimal string'

Events

Object PaySys\PaySys\Button

Event Parameters Description
$onBeforePayRequest \PaySys\PaySys\IPayment $payment Occurs before pay request
$onPayRequest \PaySys\PaySys\IPayment $payment Occurs on pay request

Service PaySys\TatraPay\Security\Response

Event Parameters Description
$onResponse array $parameters Occurs on response from bank
$onSuccess array $parameters Occurs on success payment response from bank
$onFail array $parameters Occurs on fail payment response from bank
$onError array $parameters, \PaySys\PaySys\Exception $e Occurs on damaged response from bank

Example

Generating payment button

Set PaySys\TatraPay\Payment., (*6)

Button need PaySys\PaySys\IConfiguration service. Use DI generated factory PaySys\TatraPay\IButtonFactory for getting configured PaySys\PaySys\Button component., (*7)

Now set $onPayRequest event on PaySys\PaySys\Button for redirect to TatraPay gateway. Signed redirect URL is genereated by service PaySys\TatraPay\Security\Request->getUrl(PaySys\TatraPay\Payment $payment)., (*8)

class OrderPresenter extends Presenter
{
    /** @var \PaySys\TatraPay\IButtonFactory @inject */
    public $tatraPayButtonFactory;

    /** @var \PaySys\TatraPay\Security\Request @inject */
    public $tatraPayRequest;

    protected function createComponentTatraPayButton()
    {
        $payment = new \PaySys\TatraPay\Payment("12.34", "00456", "John Doe");
        $button = $this->tatraPayButtonFactory->create($payment);
        $button->onPayRequest[] = function ($payment) {
            $this->redirectUrl($this->TatraPayRequest->getUrl($payment));
        };
        return $button;
    }
}

Process payment response

Event-driven processing

Default is Bank response routed to included presenter TatraPay:TatraPay:process. In this case are automatic called events on service PaySys\TatraPay\Security\Response., (*9)

For processing payment by events use for example Kdyby\Events., (*10)

Own presenter

Too it's possible write own Nette\Application\UI\Presenter for hnadling payment. In this case are events called same as before example., (*11)

class OrderPresenter extends Presenter
{
    /** @var Nette\Http\IRequest @inject */
    public $httpRequest;

    /** @var \PaySys\TatraPay\Security\Response @inject */
    public $bankResponse;

    public function actionProcessTatraPay()
    {
        try {
            $this->bankResponse->paid($this->httpRequest->getQuery());
            // store info about payment
            $this->flashMessage('Thanks for payment.', 'success');
        } catch (\PaySys\PaySys\Exception $e) {
            // log
            $this->flashMessage('Payment failed. Please try it later.', 'danger');
        }
        $this->redirect('finish');
    }
}

Now just add route to configuration:, (*12)

tatraPay:
    rurl: Order:processTatraPay

Exceptions

class \PaySys\PaySys\Exception extends \Exception {}
class \PaySys\PaySys\SignatureException extends \PaySys\PaySys\Exception {}
class \PaySys\PaySys\ServerException extends \PaySys\PaySys\Exception {}
class \PaySys\PaySys\InvalidArgumentException extends \PaySys\PaySys\Exception {}
class \PaySys\PaySys\ConfigurationException extends \PaySys\PaySys\Exception {}

The Versions