Skip to content
/ Banklink Public
forked from renekorss/Banklink

PHP payment library to easily integrate Baltic banklinks (2016 protocol), E-commerce gateaway (Estcard, Nets Estonia) and Liizi Payment Link.

License

Notifications You must be signed in to change notification settings

lenar/Banklink

 
 

Repository files navigation

Build Status Coverage Status HHVM Status Latest Stable Version Total Downloads License

PHP Payment library

PHP payment library to easily integrate Baltic banklinks, E-commerce gateaway (Estcard, Nets Estonia) and Liizi Payment Link.

View API documentation at http://renekorss.github.io/Banklink/

Composer

composer require renekorss/Banklink

Supported providers

Provider Payment Authentication
Danskebank
Krediidipank
LHV
SEB
Swedbank
Nordea
Estcard does not apply
Liisi Payment Link does not apply

How to use?

SECURITY WARNING

Never keep your private and public keys in publicly accessible folder. Instead place keys under root folder (usually public_html or www).

If you store keys as strings in database, then they should be accessible only over HTTPS protocol.

Payment

<?php
    require __DIR__ . '/vendor/autoload.php';

    use RKD\Banklink;

    // Init protocol
    $protocol = new Banklink\Protocol\IPizza(
        'uid100010', // seller ID (VK_SND_ID)
        __DIR__ . '/../keys/seb_user_key.pem', // private key
        '', // private key password, leave empty, if not needed
        __DIR__ . '/../keys/seb_bank_cert.pem', // public key
        'http://localhost/banklink/SEB.php' // return url
    );

    // Init banklink
    $seb = new Banklink\SEB($protocol);

    // Set payment data and get payment request object
    // orderId, sum, message, language
    $request = $seb->getPaymentRequest(123453, 150, 'Test makse', 'EST');
?>

<form method="POST" action="<?php echo $request->getRequestUrl(); ?>">
  <?php echo $request->getRequestInputs(); ?>
  <input type="submit" value="Pay with SEB!" />
</form>

Authentication

<?php
    require __DIR__ . '/vendor/autoload.php';

    use RKD\Banklink;

    // Init protocol
    $protocol = new Banklink\Protocol\IPizza(
        'uid100010', // seller ID (SND ID)
        __DIR__ . '/../keys/seb_user_key.pem', // private key
        '', // private key password, leave empty, if not needed
        __DIR__ . '/../keys/seb_bank_cert.pem', // public key
        'http://localhost/banklink/SEB.php' // return url
    );

    // Init banklink
    $seb = new Banklink\SEB($protocol);

    // Get auth request object
    $request = $seb->getAuthRequest();
?>

<form method="POST" action="<?php echo $request->getRequestUrl(); ?>">
  <?php echo $request->getRequestInputs(); ?>
  <input type="submit" value="Authenticate with SEB!" />
</form>

Response from provider

<?php
    require __DIR__ . '/vendor/autoload.php';

    use RKD\Banklink;

    // Init protocol
    $protocol = new Banklink\Protocol\IPizza(
        'uid100010', // seller ID (SND ID)
        __DIR__ . '/../keys/seb_user_key.pem', // private key
        '', // private key password, leave empty, if not needed
        __DIR__ . '/../keys/seb_bank_cert.pem', // public key
        'http://localhost/banklink/SEB.php' // return url
    );

    // Init banklink
    $seb = new Banklink\SEB($protocol);

    // Get response object
    $response = $seb->handleResponse($_POST);

    // Successful
    if ($response->wasSuccessful()) {
      // Get whole array of response
      $responseData    = $response->getResponseData();

      // User prefered language
      $language        = $response->getLanguage();

      // Only for payment data
      $orderId         = $response->getOrderId();
      $sum             = $response->getSum();
      $currency        = $response->getCurrency();
      $sender          = $response->getSender();
      $transactionId   = $response->getTransactionId();
      $transactionDate = $response->getTransactionDate();
      
      // Only for auth data
      $userId          = $response->getUserId(); // Person ID
      $userName        = $response->getUserName(); // Person name
      $country         = $response->getUserCountry(); // Person country
      $authDate        = $response->getAuthDate(); // Authentication response datetime
      
      // Method used for authentication 
      // Possible values: ID Card, Mobile ID, One-off code card, PIN-calculator, Code card or unknown
      $authMethod      = $response->getAuthMethod();
    
    // Failed
    } else {
      // Payment data
      $orderId         = $response->getOrderId(); // Order id to cancel order etc.
    }
?>

Tasks

  • phpunit - run tests
  • phpdoc - build API documentation
  • phpmd ./src text phpmd.xml - run PHP Mess Detector
  • phpcs --report=full --extensions=php -p --standard=phpcs.xml ./src ./tests - run PHP CodeSniffer

Testing your banklink

You can test your banklink with pangalink.net application (Windows, Mac, Linux).

License

Licensed under MIT

About

PHP payment library to easily integrate Baltic banklinks (2016 protocol), E-commerce gateaway (Estcard, Nets Estonia) and Liizi Payment Link.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 99.9%
  • Batchfile 0.1%