PHP Classes

Banklink: Take payments with multiple payment gateways

Recommend this page to a friend!
  Info   Documentation   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
StarStarStarStar 63%Total: 183 All time: 8,686 This week: 104Up
Version License PHP version Categories
banklink 1.0.13MIT/X Consortium ...5PHP 5, E-Commerce, Libraries, Web ser...
Description 

Author

This package can take payments with multiple payment gateways.

It can generate arrays of parameters to be included in a HTML form for payment buttons that will be processed at each of the supported payment gateway sites.

It can also take request parameters to received from the payment site when a payment is processed and returns the payment parameters.

Currently it supports the payment gateways Baltic banklinks (2016 protocol), E-commerce gateaway (Estcard, Nets Estonia) and Liisi Payment Link.

Picture of Rene Korss
  Performance   Level  

 

Documentation

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


  Files folder image Files (162)  
File Role Description
Files folder image.github (2 files)
Files folder imagedocs (86 files, 1 directory)
Files folder imagesrc (1 file, 5 directories)
Files folder imagetests (4 directories)
Accessible without login Plain text file .editorconfig Data Auxiliary data
Accessible without login Plain text file .php_cs Example Example script
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file CODE_OF_CONDUCT.md Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file composer.lock Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpcs.xml Data Auxiliary data
Accessible without login Plain text file phpmd.xml Data Auxiliary data
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:183
This week:0
All time:8,686
This week:104Up
 User Ratings  
 
 All time
Utility:91%StarStarStarStarStar
Consistency:91%StarStarStarStarStar
Documentation:83%StarStarStarStarStar
Examples:-
Tests:-
Videos:-
Overall:63%StarStarStarStar
Rank:842