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, array(
        'sign_password' => 'paslaptis',

        // 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
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(array(
        // 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. 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 ss2parašą.

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.