PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Rene Korss   Banklink   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: Banklink
Take payments with multiple payment gateways
Author: By
Last change: Add LT Estcard
Update composer dependencies, update README
Date: 5 years ago
Size: 7,226 bytes
 

Contents

Class file image Download

Build Status Coverage Status Codacy Badge Latest Stable Version Total Downloads License SymfonyInsight

PHP Payment library

> PHP payment library to easily integrate Baltic banklinks, E-commerce gateaway (Estcard, Nets Estonia), Liizi Payment Link and Pocopay. > > View API documentation at https://renekorss.github.io/Banklink/

Install

composer require renekorss/Banklink

Supported providers

Country / Provider| Payment | Authentication ------------------| ------------------- | ------------------ Estonia | | Danskebank | :white_check_mark: | :white_check_mark: Coop Pank | :white_check_mark: | :white_check_mark: LHV | :white_check_mark: | :white_check_mark: SEB | :white_check_mark: | :white_check_mark: Swedbank | :white_check_mark: | :white_check_mark: Luminor | :white_check_mark: | :white_check_mark: Nordea | :white_check_mark: | :white_check_mark: Pocopay | :white_check_mark: | does not apply Estcard | :white_check_mark: | does not apply Liisi Payment Link| :white_check_mark: | does not apply Lithuania | | SEB | :white_check_mark: | does not apply Swedbank | :white_check_mark: | does not apply Luminor | :white_check_mark: | does not apply ?iauli? | :white_check_mark: | does not apply Estcard | :white_check_mark: | does not apply

How to use?

For more information, please visit Wiki. Basic example is below.

> 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\EE\SEB($protocol);

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

    // You can also add custom request data and/or override request data
    // Optional
    $request = $seb->getPaymentRequest(123453, 150, 'Test makse', 'EST', 'EUR', [
        'VK_REF' => 'my_custom_reference_number', // Override reference number
        'INAPP' => true // Pocopay specific example
    ]);
?>

<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\EE\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\EE\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();
        $message         = $response->getMessage();
        $automatic       = $response->isAutomatic(); // true if response was sent automatically by bank

        // 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

  • `composer build` - build by running tests and all code checks
  • `composer tests` - run tests
  • `composer format` - format code against standards
  • `composer docs` - build API documentation
  • `composer phpmd` - run PHP Mess Detector
  • `composer phpcs` - run PHP CodeSniffer

License

Licensed under MIT