Kai naudotojas sėkmingai atlieka pinigų pervedimą ir tie pinigai atkeliauja į Jūsų sąskaitą, Paysera kreipiasi Jūsų nurodytu callbackurl adresu ir perduoda visą reikiamą informaciją apie įvykdytą mokėjimą.

Apmokėjimų sistemai integruoti rekomenduojame naudoti mūsų paruoštą atviro kodo programinę biblioteką – libwebtopay . Biblioteka atlieka visus reikalingus saugomo, perduodamų ir gaunamų duomenų tikrinimus.

Kad libwebtopay sėkmingai veiktų, iš archyve esančių failų užtenka tik vieno: libwebtopay/WebToPay.php. Kiti failai skirti testams, pavyzdžiams ir paaiškinimams. Naujausia tik vieno libwebtopay/WebToPay.php failo versiją galite atsisiųsti šiuo adresu:

Pastaba: libwebtopay tinka naudoti tiek su mikro, tiek su makro paslaugomis.

Parametras callbackurl yra skripto adresas Jūsų svetainėje informuojantis Paysera sistemą apie tai, kad Jūsų svetainė gavo užklausimą apie atlikta mokėjimą. Atsakymas generuojamas taip:

1. Susikurkite katalogą.

Susikurkite katalogą, pavadinimu libwebtopay, kuriame bus laikomi visi failai susiję su mokėjimų integracija.

2. Atsisiųskite libwebtopay biblioteką.

Į sukurtą libwebtopay katalogą atsiųskite WebToPay.php failą.

3. Sukurkite callback.php.

Kataloge libwebtopay sukurkite failą pavadinimu callback.php. Šio failo turinys turėtų būti toks:

<?php
require_once('WebToPay.php');

try {
    $response = WebToPay::checkResponse($_GET, array(
        'projectid' => 123,
        'sign_password' => 'secret',
    ));

    //@todo: check if $response['projectid'] matches your project ID
    //@todo: check if SMS with ID $response['id'] was not already confirmed in your system

    echo 'OK Aciu, kad siunciate';
}
catch (Exception $e) {
    echo get_class($e).': '.$e->getMessage();
}

Po $_GET duomeų patikrinimo, jei viskas gerai, būtina grąžinti atsakymą, kaip tai padaryta pavyzdyje aukščiau (echo 'OK';). Galimi atsakymų variantai yra tokie:

OK <tekstas>
Po raktinio žodžio OK nurodytas tekstas bus išsiųstas atgal, kaip atsakomoji žinutė.
Pavyzdys: "OK Aciu, kad siunciate" (bus išsiųsta atsakomoji žinutė: "Aciu, kad siunciate").
NOSMS
Šiuo atveju siuntėjas negaus jokio atsakymo, o atsakymą galėsite išsiųsti vėliau (savaitės bėgyje).
WAPPUSH <url> <tekstas>
Sistema išsiųs atsakymą siuntėjui Wap Push metodu.
Pavyzdys: "WAPPUSH http://www.adresas.lt/paslaugos/nuoruoda paslaugos aprašymas".

4. Atsakomosios žinutės siuntimas.

Jei nepateikėte atsakomosios žinutės iš karto su OK <tekstas>, tuomet atsakymą galite išsiųsti vėliau (savaitės bėgyje), naudodami šią libwebtopay funkciją:

<?php

// Įtraukiama webtopay biblioteka
require_once('WebToPay.php');

try {
    // Tikrinami atsakymo apie įvykdytą mokėjimą duomenys
    WebToPay::smsAnswer(array(
        // Unikalus žinutės numeris mūsų sistemoje, kurį gavote kartu su žinute.
        'id'            => 0,

        // Atsakomoji žinutė
        'msg'           => 'Aciu, kad siunciate',

        // Sugeneruotas jūsų projekto slaptažodis, Paysera sistemoje
        'sign_password' => 'paslaptis',
    ));
}
catch (Exception $e) {
    echo get_class($e).': '.$e->getMessage();
}

Makro mokėjimų sistemai integruoti rekomenduojame naudoti mūsų paruoštą atviro kodo programinę biblioteką – libwebtopay . Biblioteka atlieka visus reikalingus saugomo, perduodamų ir gaunamų duomenų tikrinimus.

Atsisiųskite naujausią libwebtopay versiją pageidaujamu formatu:

Kad libwebtopay sėkmingai veiktų, iš archyve esančių failų užtenka tik vieno: libwebtopay/WebToPay.php. Kiti failai skirti testams, pavyzdžiams ir paaiškinimams. Naujausia tik vieno libwebtopay/WebToPay.php failo versiją galite atsisiųsti šiuo adresu:

Taip pat galite atsisiųsti versijuojamą variantą (iš Mercurial VCS):

$ hg clone https://bitbucket.org/paysera/libwebtopay/

Versijuojamą .NET bibliotekos variantą atsisiųskite (iš GitHub):

$ git clone https://github.com/evp/webtopay-lib-dotnet.git

Pastaba: libwebtopay tinka naudoti tiek su mikro, tiek su makro paslaugomis.

libwebtopay galite išbandyti, paleisdami paruoštą demonstracinį scenarijų. Demonstraciją paleisite interneto naršyklės adreso juostoje surinkę:

http://www.jūsųsvetainėsadresas.lt/libwebtopay/demo/

Pastaba: adrese nurodytas kelias iki demo katalogo gali skirtis, priklausomai nuo to, kur išskleidėte archyvo turinį.

Pastaba: kad demonstracija sėkmingai veiktų, nurodykite savo projekto ID iš Paysera svetainės, projectid laukelyje. Demonstracija neveiks, jei bandysite ją iš savo kompiuterio (localhost).

Mokėjimo informavimo struktūra

Paysera atsakymą siunčia Jūsų nurodytu callbackurl adresu. Prie jūsų nurodyto callbackurl pridedami 3 GET parametrai:

  • data - užkoduoti parametrai iš Paysera svetainės. Naudojamas toks pats kodavimas, kaip ir macro užklausos formavime. Norint gauti parametrus, reikia atlikti 3 veiksmus:
    1. Pakeisti simbolius "-" į "+", "_" į "/"
    2. Iškoduoti eilutę, naudojant base64 kodavimą
    3. Gauti duomenų masyvą iš rezultato, kuris yra URL-encoded parametrų rinkinys
    Pavyzdys PHP kalba:
    $params = array();
    parse_str(base64_decode(strtr($_GET['data'], array('-' => '+', '_' => '/'))), $params);
    //use $params
  • ss1 - parametro data parašas, nenaudojant privačių-viešųjų raktų schemos. Parašo sudarymo algoritmas:
    ss1 = md5(data + password)
  • ss2 - SHA-1 algoritmu sugeneruotas parametro data parašas, naudojant privačių-viešųjų raktų schemą. Viešasis Paysera raktas, naudojamas pasirašant duomenis, laikomas adresu https://www.paysera.com/download/public.key

Gavę atsakymą iš Paysera sistemos, Jūs privalote patikrinti, ar teisingas bent vienas iš atsiųstų parašų. Jei yra galimybė, visuomet tikrinkite (ir) aukštesnio saugumo ss2 parašą.

Užkoduojami parametrai

Parametras Aprašymas
to Trumpasis numeris kuriuo buvo siųsta žinutė.
sms Žinutės turinys su raktažodžiu bei subraktažodžiu (iki 160 simbolių).
from Mobilus numeris iš kurio gauta žinutė.
operator Mobilaus tinklo operatoriaus pavadinimas ("Bitė", "TELE2", "Omnitel", "Orange", "LMT" ir t.t.).
amount Žinutės kaina klientui centais. Pavyzdžiui, 100 (1 litas), 500 (5 litai) ir t.t.
currency Mokėjimo valiuta (USD, EUR), kuria pageidaujate, kad klientas mokėtų. Jeigu nurodyta valiuta per pasirinktą mokėjimo būdą negali būti priimta, sistema automatiškai pagal dienos kursą konvertuos į palaikomą valiutą. Atsakyme į Jūsų svetainę bus paduoti payamount ir paycurrency.
country Dviženklis šalies kodas. (LT, EE, LV, UA, RU ir t.t.)
id Unikalus žinutės numeris mūsų sistemoje.
test Parametras, kuriam esant galima testuoti sujungimą, tokiu būdu apmokėjimas nevykdomas ir rezultatas grąžinamas iš karto, tartum būtų sumokėta. Norint testuoti, būtina aktyvuoti testavimo režimą prie konkretaus projekto, kai prisijungiate: "Paslaugų valdymas" -> "įmokų surinkimas" (prie konkretaus projekto) -> "Leisti testinius mokėjimus" (pažymėkite).
key Raktažodis
projectid Unikalus projekto numeris. Tik patvirtinti projektai, gali priimti įmokas.
version Paysera mokėjimų sistemos specifikacijos (API) versijos numeris.