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ą.

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('libwebtopay/WebToPay.php');

try {
    $response = WebToPay::checkResponse($_GET, [
        'project_id' => 'project_id_example',
        'sign_password' => 'project_password_example',

        // Kelias iki failo, kuriame bus registruojami visi iškvietimai.
        // Jei naudosite šią funkciją, įsitikinkite, kad sukurto log failo niekas nepasieks iš išorės.
        // 'log' => 'webtopay.log',
    ]);

    echo 'OK Thank you for sending';
} catch (Exception $e) {
    echo get_class($e) . ': ' . $e->getMessage();
}

Metodui WebToPay::checkResponse būtina perduoti visus duomenis atėjusius iš Paysera. Tai reikalinga dėl duomenų vientisumo tikrinimo. Jei trūks bent vieno parametro arba nesutaps parametrų reikšmės, tuomet bus iškviesta WebToPayException išimtis.

Parametras
Ilgis
Būtinas
Aprašymas
projectid
11
Taip
Unikalus projekto numeris. Tik patvirtinti projektai gali priimti įmokas.
sign_password
32
Taip
Projekto slaptažodis, kurį galite rasti prisijungus prie Paysera sistemos su savo naudotoju, išsirinkus "paslaugų valdymas" ir prie konkretaus projekto pasirinkus "bendri nustatymai".

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('libwebtopay/WebToPay.php');

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

        // Atsakomoji žinutė
        'msg' => 'Thank you for sending',

        // Sugeneruotas jūsų projekto slaptažodis, Paysera sistemoje
        'sign_password' => 'secret',

        // Kelias iki failo, kuriame bus registruojami visi iškvietimai
        // Jei naudosite šią funkciją, įsitikinkite, kad sukurto log failo
        // niekas nepasieks iš išorės.
        //'log' => 'webtopay.log',
    ]);
} catch (Exception $e) {
    echo get_class($e) . ': ' . $e->getMessage();
}

Libwebtopay

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

  • WebToPay skirta PHP (iš GitHub).
    $ git clone https://github.com/paysera/lib-webtopay
  • WebToPay skirta .NET (iš GitHub).
    $ git clone https://github.com/evp/webtopay-lib-dotnet

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.

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ę:

https://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).

Specifikacija

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. 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 = [];
    parse_str(base64_decode(strtr($_GET['data'], ['-' => '+', '_' => '/'])), $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 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 EUR), 500 (5 EUR) 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 perduoti 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: "Projektai ir veiklos" -> "Mano projektai" -> "Projekto nustatymai" -> "Įmokų surinkimo paslaugos nustatymai" -> "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.