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 require renekorss/Banklink
Provider | Payment | Authentication |
---|---|---|
Danskebank | ✅ | ✅ |
Krediidipank | ✅ | ✅ |
LHV | ✅ | ✅ |
SEB | ✅ | ✅ |
Swedbank | ✅ | ✅ |
Nordea | ✅ | ✅ |
Estcard | ✅ | does not apply |
Liisi Payment Link | ✅ | does not apply |
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\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>
<?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>
<?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.
}
?>
phpunit
- run testsphpdoc
- build API documentationphpmd ./src text phpmd.xml
- run PHP Mess Detectorphpcs --report=full --extensions=php -p --standard=phpcs.xml ./src ./tests
- run PHP CodeSniffer
You can test your banklink with pangalink.net application (Windows, Mac, Linux).
Licensed under MIT