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/
composer require renekorss/banklink
Country / Provider | Payment | Authentication |
---|---|---|
Estonia | ||
Danskebank | ✅ | ✅ |
Coop Pank | ✅ | ✅ |
LHV | ✅ | ✅ |
SEB | ✅ | ✅ |
Swedbank | ✅ | ✅ |
Luminor | ✅ | ✅ |
Nordea | ✅ | ✅ |
Pocopay | ✅ | does not apply |
Estcard | ✅ | does not apply |
Liisi Payment Link | ✅ | does not apply |
Lithuania | ||
SEB | ✅ | does not apply |
Swedbank | ✅ | does not apply |
Luminor | ✅ | does not apply |
Šiaulių | ✅ | does not apply |
Estcard | ✅ | does not apply |
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
orwww
).If you store keys as strings in database, then they should be accessible only over HTTPS protocol.
<?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>
<?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>
<?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.
}
?>
composer build
- build by running tests and all code checkscomposer test
- run testscomposer format
- format code against standardscomposer docs
- build API documentationcomposer phpmd
- run PHP Mess Detectorcomposer phpcs
- run PHP CodeSniffer
Licensed under MIT