Formos duomenis siųskite GET arba POST metodu, adresu https://www.paysera.com/pay/

Visuomet yra siunčiami 2 laukai: data ir sign.

Laukų sudarymas iš parametrų

  1. Visi parametrai sujungiami į URL-encoded eilutę. Pavyzdžiui:
    array('param1' => 'abc', 'param2' => 'Some string with symbols %=&')
    'param1=abc&param2=Some+string+with+symbols+%25%3D%26'
    
    PHP kalboje tai padaro funkcija http_build_query.
  2. Gauta eilutė užkoduojama naudojant base64 koduotę. Pavyzdžiui:
    'param1=abc&param2=Some+string+with+symbols+%25%3D%26'
    'cGFyYW0xPWFiYyZwYXJhbTI9U29tZStzdHJpbmcrd2l0aCtzeW1ib2xzKyUyNSUzRCUyNg=='
    
    PHP kalboje tai padaro funkcija base64_encode.
  3. Gautoje užkoduotoje eilutėje simboliai "/" pakeičiami į "_", simboliai "+" į "-". Gauname base64 kodavimą, saugų perduoti per URL papildomai neapdorojant. Pavyzdžiui:
    'MViDYlV7V0iHR2w2OkJjRFFpY11hizJDhk+EZjl/'
    'MViDYlV7V0iHR2w2OkJjRFFpY11hizJDhk-EZjl_'
    
    PHP kalboje tai galima atlikti funkcija str_replace ar strtr.
  4. Gauta galutinė eilutė yra pasirašoma - sugeneruojamas sign parametras. Sign parametro generavimo algoritmas:
    sign = md5(data + password)
    Čia md5 - kriptografinė funkcija, data - užkoduoti parametrai, password - projekto slaptažodis.

Galimi parametrai

Parametras Ilgis Būtinas Aprašymas
projectid 11 Taip Unikalus projekto numeris. Tik patvirtinti projektai, gali priimti įmokas.
orderid 40 Taip Užsakymo numeris iš jūsų sistemos.
accepturl 255 Taip Pilnas interneto adresas (URL), į kurį klientas nukreipiamas sėkmingai atlikus mokėjimą.
cancelurl 255 Taip Pilnas interneto adresas (URL), į kurį klientas nukreipiamas atšaukus ar nepavykus atlikti mokėjimą.
callbackurl 255 Taip Pilnas adresas (URL), kuriuo pardavėjui pateikiama informacija apie atliktą mokėjimą.

Skriptas turi grąžinti tekstą "OK". Tik tuomet mūsų sistema užfiksuos, kad apie apmokėjimą sėkmingai informavome.

Jeigu atsakymo "OK" nėra, tai pranešimą siunčiame 4 kartus (kai tik gauname, po valandos, po trijų ir po paros).
version 9 Taip Paysera mokėjimų sistemos specifikacijos (API) versijos numeris.
lang 3 Ne Galima nurodyti naudotojo kalbą (ISO 639-2/B: LIT, RUS, ENG ir pan.). Jeigu tokios kalbos Paysera nepalaiko bus parinkta kalba pagal lankytojo IP adresą arba anglų kalba pagal nutylėjimą.
amount 11 Ne Suma centais, kurią klientas turi apmokėti
currency 3 Ne Mokėjimo valiuta (pvz. USD, EUR ir pan.), 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.
payment 20 Ne Mokėjimo būdas. Jei nurodytas, mokėjimas bus atliekamas konkrečiai per tą mokėjimo būdą. Jei nenurodytas, vartotojui bus pateikiama galimų mokėjimo būdų lentelė. Mokėjimo būdus galite gauti ir realiu laiku, naudojantis WebToPay biblioteka.
country 2 Ne Mokėtojo šalis (LT, EE, LV, GB, PL, DE). Nurodžius šalį mokėtojui iš karto pateikiami mokėjimo būdai, kurie galimi toje šalyje. Jeigu šalis nenurodoma, sistema pagal mokėtojo IP adresą nustato jo šalį. Mokėtojui paliekama galimybė pasikeisti šalį.
paytext 255* Ne Mokėjimo paskirtis, kuri matosi darant pavedimą. Nenurodžius naudojamas tekstas pagal nutylėjimą:
Apmokėjimas už prekes ir paslaugas (už nr. [order_nr]) ([site_name]).

Jeigu nurodote mokėjimo paskirtį, būtina įtraukti šiuos kintamuosius, kurie galutiniame paskirties tekste bus pakeisti į atitinkamas reikšmes:

  • [order_nr] - užsakymo numeris.
  • [site_name] arba [owner_name] - svetainės adresas arba įmonės pavadinimas.

Nenurodžius šių kintamųjų, bus naudojamas paskirties tekstas pagal nutylėjimą.

Mokėjimo paskirties pavyzdys:

Apmokėjimas už prekes pagal užsakymą [order_nr] svetainėje [site_name].
p_firstname 255 Ne Pirkėjo vardas. Pageidautina daugumoje mokėjimo būdų. Privaloma mokėjimą atliekant tam tikrais mokėjimo būdais.
p_lastname 255 Ne Pirkėjo pavardė. Pageidautina daugumoje mokėjimo būdų. Privaloma mokėjimą atliekant tam tikrais mokėjimo būdais.
p_email 255 Ne Pirkėjo el. paštas privalomas. Jeigu adresas nebus gautas, kliento bus prašoma jį įvesti. Šiuo adresu Paysera sistema informuos mokėtoją apie apmokėjimo būklę.
p_street 255 Ne Pirkėjo adresas, kuriuo bus siunčiamos prekės (pvz: Mėnulio g. 7 - 7). Pageidautina. Privaloma mokėjimą atliekant tam tikrais mokėjimo būdais.
p_city 255 Ne Pirkėjo miestas, į kurį bus siunčiamos prekės. (pvz: Vilnius). Pageidautina. Privaloma mokėjimą atliekant tam tikrais mokėjimo būdais.
p_state 20 Ne Pirkėjo valstijos kodas (privalomas tik perkant JAV valstijoje). Pageidautina. Privaloma mokėjimą atliekant tam tikrais mokėjimo būdais.
p_zip 20 Ne Pirkėjo pašto kodas. Lietuvos pašto kodus galite rasti čia. Pageidautina. Privaloma mokėjimą atliekant tam tikrais mokėjimo būdais.
p_countrycode 2 Ne Pirkėjo šalies kodas. Šalies sutrumpintus kodus galite rasti čia. Pageidautina. Privaloma mokėjimą atliekant tam tikrais mokėjimo būdais.
only_payments 0 Ne Rodyti tik kableliais išskirtą mokėjimo tipų sąrašą.
disalow_payments 0 Ne Nerodyti kableliais išskirto mokėjimo tipų sąrašų.
test 1 Ne 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: "Projektų valdymas" -> "Įmokų surinkimo paslauga" (prie konkretaus projekto) -> "Leisti testinius mokėjimus" (pažymėkite).
time_limit 19 Ne Parametras nurodantis iki kada galima apmokėti užklausą, data pateikiama "yyyy-mm-dd HH:MM:SS" formatu. Minimali reikšmė 15 min. nuo esamo laiko, maksimali 3 dienos. Pastaba: veikia tik su tam tikrais mokėjimų tipais.
personcode 255 Ne Šį parametrą galima naudoti, norint atlikti naudotojo autentifikaciją. Jei perduosite naudotojo asmens kodą, kartu su callback Paysera grąžins personcodestatus parametrą, kuris nurodys, ar asmens kodas atitinka perduotą.
developerid 11 Ne Tuo atveju, kai Jūs mūsų sistemoje esate pažymėtas kaip diegėjas, savo įdiegtame projekte (projektuose) turite perdavinėti šį parametrą. Parametro reikšmė – Jūsų vartotojo unikalus numeris.

* Galutinis ilgis gali skirtis priklausomai nuo mokėjimo būdo specifikacijos

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
projectid Unikalus projekto numeris. Tik patvirtinti projektai, gali priimti įmokas.
orderid Užsakymo numeris iš jūsų sistemos.
lang Galima nurodyti naudotojo kalbą (ISO 639-2/B: LIT, RUS, ENG ir pan.). Jeigu tokios kalbos Paysera nepalaiko bus parinkta kalba pagal lankytojo IP adresą arba anglų kalba pagal nutylėjimą.
amount Suma centais, kurią klientas turi apmokėti
currency Mokėjimo valiuta (pvz. USD, EUR ir pan.), 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.
payment Mokėjimo būdas. Jei nurodytas, mokėjimas bus atliekamas konkrečiai per tą mokėjimo būdą. Jei nenurodytas, vartotojui bus pateikiama galimų mokėjimo būdų lentelė. Mokėjimo būdus galite gauti ir realiu laiku, naudojantis WebToPay biblioteka.
country Mokėtojo šalis (LT, EE, LV, GB, PL, DE). Nurodžius šalį mokėtojui iš karto pateikiami mokėjimo būdai, kurie galimi toje šalyje. Jeigu šalis nenurodoma, sistema pagal mokėtojo IP adresą nustato jo šalį. Mokėtojui paliekama galimybė pasikeisti šalį.
paytext Mokėjimo paskirtis, kuri matosi darant pavedimą.
name Mokėtojo vardas, gautas iš mokėjimo sistemos. Siunčiamas tik jeigu mokėjimo sistema tokį suteikia.
surename Mokėtojo pavardė, gauta iš mokėjimo sistemos. Siunčiamas tik jeigu mokėjimo sistema tokį suteikia.
status Mokėjimo būklė:
  • 0 - apmokėjimas neįvyko
  • 1 - apmokėta sėkmingai
  • 2 - mokėjimo nurodymas priimtas, bet dar neįvykdytas (šis statusas negarantuoja, kad mokėjimas bus įvykdytas)
  • 3 - papildoma mokėjimo informacija
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: "Projektų valdymas" -> "Įmokų surinkimo paslauga" (prie konkretaus projekto) -> "Leisti testinius mokėjimus" (pažymėkite).
payment_country Mokėjimo būdo šalis. Jei mokėjimo būdas yra aptarnaujamas daugiau nei vienoje šalyje (tarptautinis) - parametras nesiunčiamas. Šalis pateikiama 2 simbolių (ISO 3166-1 alpha-2) formatu. PVZ.: LT, PL, RU, EE.
payer_ip_country Mokėtojo šalis, kuri nustatoma pagal mokėtojo IP adresą. Šalis pateikiama 2 simbolių (ISO 3166-1 alpha-2) formatu. PVZ.: LT, PL, RU, EE.
payer_country Mokėtojo šalis, kuri nustatoma pagal mokėjimo būdo šalį, o jeigu būdas yra tarptautinis pagal mokėtojo IP adresą. Šalis pateikiama 2 simbolių (ISO 3166-1 alpha-2) formatu. PVZ.: LT, PL, RU, EE.
p_email Pirkėjo el. paštas privalomas. Jeigu adresas nebus gautas, kliento bus prašoma jį įvesti. Šiuo adresu Paysera sistema informuos mokėtoją apie apmokėjimo būklę.
requestid Tai užklausos numeris, kurį gauname, kai žmogus nuspaudžia ant banko ir kurį pateikiame į "callbackurl" laukelyje nurodytą nuorodą.
payamount Suma centais, kurią pervedė. Gali skirtis jeigu buvo konvertuota į kitą valiutą.
paycurrency Mokėjimo valiuta (pvz. USD, EUR ir pan.), kurią pervedė. Gali skirtis nuo tos kurios prašėte, jeigu pasirinktas mokėjimo būdas negalėjo priimti prašomos valiutos.
version Paysera mokėjimų sistemos specifikacijos (API) versijos numeris.
account Sąskaitos numeris, iš kurio buvo atliktas mokėjimas.
personcodestatus Jei užklausos metu buvo paduotas personcode, šis parametras nurodo, ar sutampa paduotas asmens kodas su tikruoju mokėtojo asmens kodu. Galimos reikšmės:
  • 0 - asmens kodas dar nežinomas
  • 1 - asmens kodas sutampa
  • 2 - asmens kodas nesutampa
  • 3 - asmens kodas nėra žinomas
Jei callback metu asmens kodas dar nėra žinomas, bus daromas dar vienas callback su status parametru 3, kai jo sutapimas bus sužinotas

Visuomet tikrinkite perduodamą apmokėjimo statusą - tik status reikšmė 1 reiškia, kad apmokėjimas įvykdytas sėkmingai.
Taip pat tikrinkite, ar paslauga už šį užsakymą dar nesuteikta (pagal orderid parametrą), ar mokėjimas nėra testinis (pagal test parametrą), patikrinkite, ar sutampa siunčiama ir prie užsakymo išsaugota apmokėjimo kaina ir valiuta.

Parametrų perdavimas į accepturl

Lygiai tokie patys parametrai kaip ir callback atveju yra perduodami į jūsų nurodytą accepturl, į kurį peradresuojamas mokėtojas. Beveik visuomet tuo metu mokėjimas dar nėra sėkmingai atliktas, tokiu atveju status parametras yra 2. Visuomet tikrinkite, kad tas pats apmokėjimas suteiktų paslaugą tik vieną kartą - vartotojui perkrovus accepturl puslapį, Jūsų sistema gaus informaciją pakartotinai.