PHP

Pre použitie konkrétneho platobného systému stačí include-nuť PHP súbor s implementáciou danej platby, ostatné potrebné súbory sa includnú samé.

Príklad generovania payment requestu

Pozorne si, prosím, prečítajte aj článok Ako používať MONOGRAM EPayment knižnice.

require_once 'EPayment/SLSP_SporoPay/SporoPayPaymentRequest.class.php';

$pr = new SporoPayPaymentRequest();
$pr->suma = "100.00"; // suma (v €)
$pr->vs = "0875351244"; // variabilný symbol platby
$pr->ss = "5482311578"; // špecifický symbol platby
$pr->param = "myParam=dakaHodnota"; // parameter obchodníka, tento bude zaslaný naspäť v payment response
$pr->pu_predcislo = SPOROPAY_PU_PREDCISLO; // predčíslo účtu obchodníka - súčasť obchodníkovho ID
$pr->pu_cislo = SPOROPAY_PU_CISLO; // číslo účtu obchodníka - súčasť obchodníkovho ID
$pr->url = "https://www.mojastranka.sk/payment/return_slsp.php"; // návratová URL, na ktorú bude zaslaný payment response

if ($pr->validate()) {
  // V prípade, že testujete integráciu MONOGRAM EBanking knižníc do Vášho systému, môžete
  // namiesto reálnych platieb používať MONOGRAM EBanking server simulátor.
  // Tento umožňuje riadne pretestovanie celého procesu nákupu simuláciou platobného servra.
  // Pre jeho použitie musíte prepísať predvolenú URL, na ktorú sa posielajú payment requesty.
  // Na toto slúži metóda SetRedirectUrlBase, ktorú obsahuje každý payment request.
  $pr->SetRedirectUrlBase(SPOROPAY_REDIRECTURLBASE);

  $pr->SignMessage(SPOROPAY_SHAREDSECRET); // podpísanie payment response-u

  $paymentRequestUrl = $pr->GetRedirectUrl();
  header('Location: '.$paymentRequestUrl);
  echo "Pre pokracovanie platby prosim <a href="{$paymentRequestUrl}">kliknite sem</a>.";
  exit;
}

Príklad spracúvania payment responsu

require_once 'EPayment/SLSP_SporoPay/SporoPayPaymentHttpResponse.class.php';

$pres = new SporoPayPaymentHttpResponse();

if ($pres->Validate() && $pres->VerifySignature(SPOROPAY_SHAREDSECRET)) {
  $result = $pres->GetPaymentResponse();

  switch ($result) {
    case IEPaymentHttpPaymentResponse::RESPONSE_SUCCESS:
    // zapísať platbu ako úspešnú, expedovať tovar/poskytnúť službu
    break;

    case IEPaymentHttpPaymentResponse::RESPONSE_FAIL:
      // zapísať platbu ako neúspešnú, informovať klienta o nezbehnutí splatby
      // (a možno aj rušení objednávky)
      break;

    case IEPaymentHttpPaymentResponse::RESPONSE_TIMEOUT:
      // zapísať platbu s nedefinovaným výsledkom, príchod platby je nutné overiť manuálne.
      // informovať o tom klienta.
      break;
  }
} else {
  // zobraziť chybovú hlášku a zaznamenať údaje do logov
}