2017 © Pedro Peláez
 

library cardpay

Library for Tatra bank CardPay gateway in Nette framework.

image

paysys/cardpay

Library for Tatra bank CardPay gateway in Nette framework.

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

The README.md

PaySys\CardPay

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

Library for implement CardPay gateway (v1.5 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/CardPay., (*5)

$ composer require paysys/cardpay

Configuration

extensions:
    cardPay: PaySys\CardPay\DI\CardPayExtension

cardPay:
    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\CardPay\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\CardPay\Payment., (*6)

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

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

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

    /** @var \PaySys\CardPay\Security\Request @inject */
    public $cardPayRequest;

    protected function createComponentCardPayButton()
    {
        $payment = new \PaySys\CardPay\Payment("12.34", "00456", "John Doe");
        $button = $this->cardPayButtonFactory->create($payment);
        $button->onPayRequest[] = function ($payment) {
            $this->redirectUrl($this->cardPayRequest->getUrl($payment));
        };
        return $button;
    }
}

Process payment response

Event-driven processing

Default is Bank response routed to included presenter CardPay:CardPay:process. In this case are automatic called events on service PaySys\CardPay\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\CardPay\Security\Response @inject */
    public $bankResponse;

    public function actionProcessCardPay()
    {
        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)

cardPay:
    rurl: Order:processCardPay

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

06/03 2017

v0.1-alpha

0.1.0.0-alpha https://github.com/PaySys/CardPay

Library for Tatra bank CardPay gateway in Nette framework.

  Sources   Download

MIT

The Requires

 

The Development Requires

gateway bank cardpay tatrabank