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 Aciu, kad siunciate';
}
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' => 'Aciu, kad siunciate',

            // Sugeneruotas jūsų projekto slaptažodis, Paysera sistemoje
            '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',
        ));
}
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

Jei neturite galimybės naudoti libwebtopay bibliotekos, tuomet žemiau rasite detalią siunčiamų ir gaunamų duomenų specifikaciją.

Paysera atsakymą siunčia Jūsų nurodytu callbackurl adresu. Prie jūsų nurodyto callbackurl pridedami papildomi GET parametrai, kurių sąrašas su aprašymais pateiktas žemiau. Visi šie parametrai perduodami su prefiksu wp_.

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.
_ss2 Parametras, kurio pagalba yra tikrinama ar iš mūsų serverio gavote atsakymą. Tai aukščiausio patikimumo lygio tikrinimo būdas.
_ss1 Parametras, kurio pagalba yra tikrinama ar iš mūsų serverio gavote atsakymą. Tai žemesnio nei _ss2 patikimumo lygio tikrinimo būdas. Atsisiųskite skripto pavyzdį iš čia.
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