PHP code example of ondrakoupil / csob-eapi-paygate
1. Go to this page and download the library: Download ondrakoupil/csob-eapi-paygate library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ondrakoupil / csob-eapi-paygate example snippets
$config = new Config(
"My Merchant ID",
"path/to/my/private/key/file.key",
"path/to/bank/public/key.pub",
"My shop name",
// Adresa, kam se mají zákazníci vracet poté, co zaplatí
"https://www.my-eshop.cz/return-path.php",
// URL adresa API - výchozí je adresa testovacího (integračního) prostředí,
// až budete připraveni přepnout se na ostré rozhraní, sem zadáte
// adresu ostrého API. Nezapomeňte také na ostrý veřejný klíč banky.
GatewayUrl::TEST_LATEST
);
$client = new Client($config);
$url = $client->getPaymentProcessUrl($payment);
redirectBrowserTo($url); // fiktivní funkce pro přesměrování
// NEBO
$client->redirectToGateway($payment);
terminateApp(); // fiktivní funkce pro ukončení skriptu
$response = $client->receiveReturningCustomer();
if ($response["paymentStatus"] == 7) {
// nebo také 4, záleží na nastavení closePayment
echo "Platba proběhla, děkujeme za nákup.";
} else {
echo "Něco se pokazilo, sakra...";
}
$client->setLog("some/file/log.txt");
$client->setTraceLog(function($message) use ($myLogger) {
$myLogger->log($message);
});
$client->customRequest(
// URL, jenom konec za společnou adresou API, např. "payment/init"
$methodUrl,
// Array se vstupními daty. Pořadí položek v array je důležité.
// Na vhodná místa lze vložit prázdné dttm a merchantId, doplní se automaticky.
$inputPayload,
// Array s názvy políček v odpovědi v požadovaném pořadí dle dokumentace.
// U vnořených objektů a polí lze pracovat s tečkou.
// Například: array('payId', 'dttm', 'resultCode', 'resultMessage', 'redirect.method', 'redirect.url')
$expectedOutputFields = array(),
// Volitelně nějaké extensions
$extensions = array(),
$method = "POST",
// Zalogovat vždy podrobně celou návratovou hodnotu z API?
$logOutput = false,
// Pokud z nějakého důvodu selhává ověření podpisu, lze ho takto úplně deaktivovat.
// Nicméně pak je nutné ručně takovou situaci ošetřit.
$ignoreInvalidReturnSignature = false
)
$extension = new DatesExtension();
$status = $client->paymentStatus($payment, true, $extension);
echo $extension->getCreatedDate()->format("j. n. Y");