OPAY sistemos techninė specifikacija (standartas OPAY_8.1).
Lentelėse Nr. 1 ir Nr. 2 pateikti Pardavėjo siunčiamiems ir gaunamiems duomenims taikomi reikalavimai. Kiekvienas duomuo vadinamas Parametru.
Duomenys, keliaujantys tarp OPAY sistemos ir Pardavėjo tinklalapio gali keliauti dviem būdais:
Kai programavimo pavyzdžiuose ar kitoje techninėje specifikacijoje prašome pateikti atsiskaitymo būdo (arba mokėjimo būdo) pavadinimą, žinokite, kad prašome jūsų pateikti sisteminį atsiskaitymo būdo pavadinimą.
Atsiskaitymo būdai yra suskirstyti į grupes. Atsiskaitymo būdo sisteminiame pavadinime atsispindi ir grupės pavadinimas. Jei specifikacija leidžia nurodyti daugiau nei vieną atsiskaitymo būdą, vietoj vardinant visus grupės mokėjimo būdus galite nurodyti tik grupės sisteminį pavadinimą. Kai nurodomas grupės pavadinimas, sistema identifikuoja jį taip, lyg būtų išvardinti visi nurodytos grupės atsiskaitymo būdai.
Žemiau esančiame sąraše pateiktos atsiskaitymo būdų grupės su joms priklausančiais atsiskaitymo būdais. Sisteminiai mokėjimo būdų pavadinimai pateikti skliausteliuose šalia pavadinimo.
Kai neprivalomas parametras nepateikiamas arba pateikiamas su tuščia reikšme, tai:
Kai neprivalomas parametras pateikiamas su reikšme (netuščias), tai:
Pardavėjo siunčiamų duomenų (parametrų) kiekis vykdant Pirkėjo nukreipimą į OPAY skiriasi priklausomai nuo to, kokiomis mokėjimo paslaugomis Pardavėjas naudojasi, remiantis Sutartimi sudaryta tarp OPAY ir Pardavėjo.Pardavėjas, kiekvieną kartą siųsdamas užklausą, gali nurodyti tam apmokėjimui norimus atsiskaitymo būdus (norimą Mokėjimo paslaugą), Sutartyje apibrėžtųMokėjimo paslaugų ribose. Dalis siunčiamų parametrų sutampa visiems atsiskaitymo būdams. Atkreipkite dėmesį į kiekvienam atsiskaitymo būdui (Mokėjimo paslaugai) reikalingus ir privalomais pažymėtus parametrus.
Sistemai siunčiami duomenys privalo būti UTF-8 koduotės. Duomenys siunčiami HTTP POST arba GET metodu, adresu https://gateway.opay.lt/pay/.
Lentelės Nr. 1 stulpelių paaiškinimas:
Duomenys gali būti siunčiami kaip vienas parametras. Siunčiant duomenis šiuo būdu, duomenys turi būti sudedami į vieną eilutę, kuri yra paverčiama į base64 koduotę ir siunčiama vieninteliu parametru pavadinimu encoded. Plačiau apie tai skaitykite skiltyje Duomenų kodavimas siekiant išvengti galimų iškraipymų..
Lentelė Nr. 1
Pardavėjo siunčiamų duomenų aprašymas (HTTP POST arba GET parametrai).
pažymėta. | |
nepažymėta. |
Parametras tipas(maks. ilgis) |
Galimos reikšmės, standartinė reikšmė |
Banklink, Card, Financing, Mobilewallet | Banktransfer, Cash | Privalomas | Rodyti aprašymus Slėpti aprašymus |
---|---|---|---|---|---|
website_id str(10) |
Rodyti aprašymą Slėpti aprašymą | ||||
Pardavėjo interneto Parduotuvės unikalus kodas, kurį OPAY suteikia ir nurodo Pardavėjo ir OPAY pasirašytoje Sutartyje. | |||||
order_nr str(40) |
Rodyti aprašymą Slėpti aprašymą | ||||
Parduotuvės sugeneruotas užsakymo numeris.
Pardavėjas jį pateikia tam, kad OPAY atsakyme matydamas šį numerį
Pardavėjas žinotų kurio tai užsakymo mokėjimo patvirtinimas ar
pranešimas apie nepavykusį mokėjimą. a – ž A-Ž (lietuviškos mažosios ir didžiosios raidės), 0 – 9, , (kablelis), . (taškas), (tarpas), ( ) (lenktiniai skliaustai), ; (kabliataškis), - (trumpas brūkšnelis). Leidžiamų simbolių Regex atrodytų taip: a-zA-Z0-9ąčęėįšųūžĄČĘĖĮŠŲŪŽ,\.\s();\- |
|||||
redirect_url str(255) |
Rodyti aprašymą Slėpti aprašymą | ||||
Pilnas HTTP internetinis adresas su nurodytu protokolu (pvz.: https://puslapis.lt/failas.jsp). Tai adresas, kur nukreipiamas Pirkėjas po apmokėjimo. | |||||
redirect_on_success int(1) |
0, 1 | Rodyti aprašymą Slėpti aprašymą | |||
Kai kuriais atvejais grįžtantis Pirkėjas į Pardavėjo
puslapį (į redirect_url) negali kartu atsinešti OPAY pasirašyto
duomenų paketo, kuris sakytų jog mokėjimas įvykęs. Tai sąlygoja kai
kurių OPAY Partnerių (pvz., kai kurių bankų) negalėjimas iš karto po
atlikto mokėjimo suteikti OPAY informaciją ar mokėjimas yra pavykęs. Parametro galimos reikšmės:
|
|||||
web_service_url str(255) |
Rodyti aprašymą Slėpti aprašymą | ||||
HTTP adresas su nurodytu protokolu (pvz.: https://puslapis.lt/failas.jsp), kuriuo bus siunčiamas OPAY serverio atsakymas apie mokėjimą. | |||||
back_url str(255) |
Rodyti aprašymą Slėpti aprašymą | ||||
Pilnas HTTP adresas su nurodytu protokolu (pvz.:
https://puslapis.lt/failas.jsp). Jeigu pateiktas šis adresas, tai
OPAY, atsiskaitymo puslapyje Pirkėjui paspaudus „Grįžti į pardavėjo tinklalapį“, nukreips
Pirkėją nurodytu adresu kartu su HTTP GET
metodu perduodamu parametrais (Lentelė Nr. 2, Stulpelis „Kai
atsakymo parametras status = 5“). Verta paminėti porą grąžinamų parametrų:
Nuorodos https://gateway.opay.lt/?tid=<transakcijos kodas> pagalba galėsite grąžinti Pirkėją tiesiai į tą patį atsiskaitymo puslapį, jei Pirkėjas nieko nekeičia pirkinių krepšelyje, o tiesiog naviguoja tarp Pardavėjo ir OPAY atsiskaitymo puslapių. Atkreipkite dėmesį, kad tai nėra mokėjimo nutraukimo nuoroda, o tiesiog galimybė Pardavėjui leisti laisvai naviguoti tarp OPAY mokėjimui skirto puslapio ir parduotuvės. Šią nuorodą gali paspausti asmuo, kuris nėra pradinis Pirkėjas (ne tas asmuo, kurio prisijungimo sesija galioja Pardavėjo svetainėje), nes mokėjimui skirtą puslapio nuorodą Pirkėjas gali persiųsti apmokėti kitam asmeniui. Pagal poreikius galite back_url nuorodoje naudoti pirkinių krepšelį ar pan. identifikuojančius parametrus. Pastaba. Šis parametras skirtas tik labai individualius porekius turintiems Pardavėjams ir jų nestandartinėms sistemoms, kurioms yra būtina navigavimo tarp OPAY ir Pardavėjo tinklalapių galimybė. |
|||||
standard str(9) |
opay_8.1 | Rodyti aprašymą Slėpti aprašymą | |||
Duomenų mainų specifikacijos versija. Pardavėjo ir OPAY sistemos turi žinoti kurios specifikacijos pagrindu pateikiami/gaumami duomenys. | |||||
language str(3) |
LIT, ENG, LAV, EST, RUS | Rodyti aprašymą Slėpti aprašymą | |||
Kokia kalba rodyti Opay mokėjimo puslapį. | |||||
amount int(10) |
Rodyti aprašymą Slėpti aprašymą | ||||
Kokia sumą Pirkėjas turi apmokėti. Suma pateikiama centais. | |||||
currency str(3) |
EUR | Rodyti aprašymą Slėpti aprašymą | |||
Kokia valiuta pateikiama suma apmokėjimui. | |||||
show_channels str(1000) |
Skaityti aprašymą | Rodyti aprašymą Slėpti aprašymą | |||
Čia galite nurodyti šiam mokėjimui pageidaujamus atsiskaitymo būdus. Žiūrėti “Parametrai show_channels ir hide_channels”. | |||||
hide_channels str(1000) |
Skaityti aprašymą | Rodyti aprašymą Slėpti aprašymą | |||
Čia galite nurodyti šiame mokėjime nepageidaujamus atsiskaitymo būdus. Žiūrėti “Parametrai show_channels ir hide_channels”. | |||||
country str(2) |
LT, LV, EE | Rodyti aprašymą Slėpti aprašymą | |||
Remiantis nurodyta šalimi, Pirkėjui pateikiami toje šalyje galimi atsiskaitymo būdai (ISO 3166-1 alpha-2). | |||||
payment_description str(128) |
Skaityti aprašymą | Rodyti aprašymą Slėpti aprašymą | |||
Pirkėjui atliekant mokėjimą, šis tekstas nurodomas mokėjimo paskirtyje. Tekstą galite sukurti savo nuožiūra, bet tekste turite naudoti žymes:
Vietoje žymės OPAY sistema į tekstą įterps jos reikšmę
Pardavėjo sukurtame tekste gali būti naudojami tik šie
simboliai:
Leidžiamų simbolių Regex atrodytų taip: a-zA-Z0-9ąčęėįšųūžĄČĘĖĮŠŲŪŽ,\.\s();\- Standartinė reikšmė: Apmokėjimas pagal užsakymą Nr. {order_nr}, tinklalapyje {website} |
|||||
time_limit int(7) |
Rodyti aprašymą Slėpti aprašymą | ||||
Minutės, per kiek laiko turi būti atliktas mokėjimas. Plačiau apie šį parametrą skaitykite skiltyje Parametras time_limit | |||||
test str(10) |
Skaityti aprašymą | Rodyti aprašymą Slėpti aprašymą | |||
Šiuo parametru reikia pateikti vartotojo, kuriam suteikta teisė testuoti duotąjį tinklalapį, atpažinimo numerį (Vartotojo ID OPAY sistemoje). Nurodę šį parametrą galėsite testuoti duomenų mainus su OPAY. Realūs mokėjimai nebus vykdomi. | |||||
c_email str(100) |
Rodyti aprašymą Slėpti aprašymą | ||||
Pirkėjo el. pašto adresas. Jei jį nurodysite, Pirkėjui nebereikės įvedinėti savo el. pašto adreso OPAY mokėjimo puslapyje. | |||||
c_mobile_nr str(30) |
Rodyti aprašymą Slėpti aprašymą | ||||
Pirkėjo mobilaus telefono numeris. Pateikiamas su tarptautiniu kodu. Pvz.: +37065912387. Jei nurodysite,Pirkėjui, atsiskaitančiam mobiliąja pinigine, nebereikės įvedinėti savo mobilaus telefono numerio OPAY mokėjimo puslapyje. | |||||
pass_through_channel_name str(30) |
Rodyti aprašymą Slėpti aprašymą | ||||
Tai nurodymas OPAY sistemai nerodyti mokėjimų pasirinkimo lango, o iškarto nukreipti Pirkėją į norimą atsiskaitymo būdą, pvz.: banklink_swedbank. Tam, kad šis funkcionalumas suveiktų, parametras c_email negali būti tuščias. |
|||||
pass_through_only int(1) |
0, 1 | Rodyti aprašymą Slėpti aprašymą | |||
Šis parametras gali būti naudojamas tik su parametru pass_through_channel_name. Standartiškai OPAY sistema veikia taip, kad nepavykus mokėjimui kuriame nors iš mokėjimo būdų, pirkėjas yra grąžinamas į OPAY mokėjimo būdų pasirinkimo langą, o ne atgal į pardavėjo tinklalapį. Taip pirkėjui suteikiama galimybė pasirinkti kitą mokėjimo būdą ar išsiųsti mokėjimą kitam žmogui. Naudodami parametrą pass_through_only su reikšme 1 (pass_through_only = 1), Jūs nurodote OPAY sistemai, kad sistema naudotų tik mokėjimo būdą, nurodytą parametru pass_through_channel_name. Nepavykus mokėjimui, pirkėjas nebebus grąžinamas į OPAY mokėjimo būdų pasirinkimo puslapį, o bus grąžinamas atgal pas pardavėją, parametre redirect_url nurodytu adresu. Pirkėjas grąžinamas į el. parduotuvę su pranešimu "Atšauktas mokėjimas" (status = 3). |
|||||
rsa_signature str(700) |
Rodyti aprašymą Slėpti aprašymą | ||||
Parašas, gautas RSA privačiu raktu pasirašius visus siunčiamus duomenis. Tai OPAY rekomenduojamas pasirašymo būdas. Pasirašymo būdai sutariami Sutartyje. | |||||
password_signature str(32) |
Rodyti aprašymą Slėpti aprašymą | ||||
Parašas, gautas slaptažodžiu pasirašius visus siunčiamus
duomenis.
Slaptažodis yra OPAY suteiktas ir Sutartyje nurodytas unikalus
simbolių darinys, žinomas tik OPAY ir Pardavėjui, kuris naudojamas
tiek Pardavėjui pasirašant, tiek OPAY tikrinant Pardavėjo parašą ir
atvirkščiai, - OPAY pasirašant ir Pardavėjui tikrinant. Pasirašymo būdai sutariami Sutartyje. |
Parametrų duomenys yra UTF-8 koduotės.
Pardavėjui siunčiami parametrai yra siunčiami kaip vienas parametras pavadinimu encoded. Visi parametrai sudedami į vieną eilutę, kuri yra paverčiama į base64 koduotę. Plačiau apie tai skaitykite skiltyje Duomenų kodavimas siekiant išvengti galimų iškraipymų.
OPAY serveris tokį patį pranešimą gali išsiųsti pakartotinai, todėl Pardavėjas, priimdamas pranešimą, visada turi patikrinti ar jau nėra prieš tai tokio gavęs.
Sėkmingo mokėjimo atveju (status = 1), tai rodys parametras p_token.
Jei Pardavėjas gavo pakartotiną pranešimą apie sėkmingą apmokėjimą (status = 1), kur parametro order_nr reikšmė sutampa su prieš tai gautu (-ais) pranešimu (-ais), bet parametro p_token reikšmės skiriasi, tai reiškia, kad tai atlikti skirtingi mokėjimai už tą patį prekių krepšelį (parametru order_nr grąžinamas Pardavėjo pateiktas užsakymo / krepšelio numeris Pardavėjo sistemoje).
Pardavėjas turi tikrinti parametro status reikšmę. Ateityje pranešimų tipų (status reikšmių) gali atsirasti daugiau, todėl Pardavėjo serveris turi reaguoti tik į pranešimus su jam žinomomis parametro status reikšmėmis.
Pardavėjui yra būtina patikrinti ar sutampa suma ir valiuta, kuria gaunamas mokėjimas, su suma ir valiuta, kurios buvo nurodytos siunčiant užklausą į OPAY. Priežastis – atsiskaitant kai kurias mokėjimo būdais (pvz.: Pavedimu banke) Pirkėjas gali klaidingai nurodyti sumą ar valiutą.
Pardavėjui siunčiamame pranešime apie sėkmingą mokėjimą pateikiama valiuta (parametras currency), suma (parametras amount), kurias Pardavėjas siuntė į OPAY, ir valiuta (parametras p_currency), suma (parametras p_amount), kurias Pirkėjas sumokėjo. Nesutampant šiems parametrams, OPAY papildomai informuos Pardavėją el. paštu, tačiau yra svarbu, kad Pardavėjo sistema pati atrastų nesutapimus ir atliktų teisingus Pardavėjo nurodytus tolimesnius veiksmus.
OPAY sistemai siunčiant atsakymą į Pardavėjo pateiktą interneto adresą, skirtą komunikacijai tarp serverių (parametras web_service_url), Pardavėjo serveris turi atsakyti OPAY sistemai, kad Pardavėjo sistema duomenis priėmė. Pardavėjo sistema turi grąžinti tekstą OK. OPAY sistema nekreipia dėmesio į HTTP antraštėje (angl. header) pateiktus įrašus (pvz.: Status ar Content-Type), ji tikrina teksto dalį, kur laukia atsakymo OK. OPAY serveris, išsiuntęs užklausą su pranešimu, laukia atsakymo 3 sekundes.
OPAY sistema, nesulaukusi atsakymo ar negavusi OK, laiko, kad pranešimas buvo negautas, todėl pakartotinai jį siųs vėliau. Po pirmojo nesėkmingo bandymo, OPAY sistema bandys išsiųsti pakartotinai duomenis dar 3 kartus. Pirmą kartą – po 1 min., antrą – po 5 min., o trečią – po 1 val.
Jei ir po trečiojo (iš viso ketvirtojo) bandymo OPAY sistema nesulaukia teisingo atsakymo, šis pranešimas daugiau automatiškai siunčiamas nebebus.
Lentelė Nr. 2 Gaunamų parametrų aprašymas.
siunčiamas visada. | |
siunčiamas priklausomai nuo Pardavėjo siųstų duomenų arba informacijos, kurią pateikia OPAY mokėjimų Partneris. | |
nesiunčiamas. |
Parametras tipas(maks. ilgis) |
Galimos reikšmės | Kai atsakymo parametras status = 1 | Kai atsakymo parametras status = 0 | Kai atsakymo parametras status = 2, status = 3 | Kai atsakymo parametras status = 5 | Rodyti aprašymus Slėpti aprašymus |
---|---|---|---|---|---|---|
status int(1) |
0, 1, 2, 3, 5 | Rodyti aprašymą Slėpti aprašymą | ||||
Šis parametras apibrėžia pranešimo tipą. 0 – Mokėjimas (Operacija) neįvyko per nurodytą (parametru time_limit) laiką. Pranešimas siunčiamas tik į parametere web_service_url (Lentelė Nr. 1) nurodytą adresą ir tik tuo atveju, kai pardavėjui siunčiant užklausą į OPAY buvo nurodytas time_limit parametras. 1 – Mokėjimas (Operacija) įvykdytas sėkmingai. Naudojantis sandartiniu OPAY funkcionalumu, „status = 1“ yra vienintėlis OPAY pranešimo tipas. Visi kiti pranešimai aktyvuojasi papildomai, parametrais, aprašytais lentelėje Nr. 1. Pranešimas yra siunčiamas kai pirkėjas nukreipiamas į redirect_url (Lentelė Nr. 1) nurodytą adresą, kartu su HTTP GET metodu perduodamais duomenimis. Pranešimas pakartotinai siunčiamas į parametre web_service_url (Lentelė Nr. 1) nurodytą adresą, kartu su HTTP POST metodu perduodamais duomenis. Pranešimas, ateinantis kartu su pirkėju (į redirect_url) ir pranešimas, siunčiamas tiesiai į serverį (įweb_service_url) vienas kito atžvilgiu yra asinchroniški. Tai yra, pirma gali ateiti vienas, arba pirma kitas. Vartotojas su pranešimu iš viso gali neateiti (į redirect_url), jei uždarytų naršyklę. Bet pranešimas į serverį (web_service_url) siunčiamas visada. 2 – Mokėjimo nurodymas priimtas. Jei Pardavėjas, siųsdamas užklausą mokėjimui, nurodė parametro redirect_on_success reikšmę „0“, tai grįžtantis po mokėjimo Pirkėjas (Pirkėjas visada nukreipiamas į redirect_url nurodytą adresą) gali grįžti su šio tipo pranešimu. Pardavėjui pateikus redirect_on_success = 0, OPAY iš karto, nelaukiant mokėjimo būsenos iš Partnerio, Pirkėją grąžina į Pardavėjo nurodytą parametre redirect_url adresą. Šis pranešimo tipas yra todėl, kad kai kurie OPAY Partneriai (pvz.: kai kurie bankai) negali iš karto po atlikto mokėjimo pranešti OPAY sistemai ar mokėjimas yra pavykęs 3 – Mokėjimas atšauktas Jei Pardavėjas, siųsdamas užklausą mokėjimui, nurodė parametro pass_through_only reikšmę „1“ ir kitos šiam parametrui reikiamos sąlygos buvo įvykdytos (teisingai nurodytas pass_through_channel_name ir c_email), tai nepavykus ar atšaukus mokėjimą viename iš mokėjimo būdų, Pirkėjas bus grąžintas pas Pardavėją (Pirkėjas visada nukreipiamas į redirect_url nurodytą adresą) su šio tipo pranešimu. 5 – Pirkėjas paspaudė mygtuką „grįžti į pardavėjo tinklalapį“ (Lentelė Nr. 1, parametras back_url). Pirkėjas nukreipiamas į parametre back_url nurodytą adresą kartu su pranešimu, siunčiamu HTTP GET metodu. |
||||||
website_id str(10) |
Rodyti aprašymą Slėpti aprašymą | |||||
Pardavėjo interneto Parduotuvės unikalus kodas, kurį OPAY suteikia ir nurodo Pardavėjo ir OPAY pasirašytoje Sutartyje. | ||||||
transaction_id str(10) |
Rodyti aprašymą Slėpti aprašymą | |||||
OPAY suteiktas Operacijos unikalus numeris, kuris identifikuoja Pardavėjo suformuotą transakciją OPAY sistemoje. Naudojant šį numerį galima atsidaryti konkrečiam atsiskaitymui skirtą puslapį. | ||||||
order_nr str(40) |
Rodyti aprašymą Slėpti aprašymą | |||||
Parduotuvės sugeneruotas užsakymo numeris. Pardavėjas jį pateikia tam, kad OPAY atsakyme matydamas šį numerį Pardavėjas žinotų kurio tai užsakymo mokėjimo patvirtinimas ar pranešimas apie nepavykusį mokėjimą. | ||||||
standard str(9) |
opay_8.1 | Rodyti aprašymą Slėpti aprašymą | ||||
Duomenų mainų specifikacijos versija. Pardavėjo ir OPAY sistemos turi žinoti kurios specifikacijos pagrindu pateikiami / gaunami duomenys. | ||||||
language str(3) |
LIT | Rodyti aprašymą Slėpti aprašymą | ||||
Kokia kalba buvo rodytas OPAY mokėjimo puslapis. | ||||||
amount int(10) |
Rodyti aprašymą Slėpti aprašymą | |||||
Parametro reikšmė atitinka Pardavėjo siųstą į OPAY reikšmę. | ||||||
currency str(3) |
EUR | Rodyti aprašymą Slėpti aprašymą | ||||
Parametro reikšmė atitinka Pardavėjo siųstą į OPAY reikšmę. | ||||||
test str(10) |
Rodyti aprašymą Slėpti aprašymą | |||||
Jei šis parametras yra pateiktas, reiškia, kad tai testinis pranešimas. Tikras mokėjimas nebuvo atliktas. Parametro reikšmė atitinka Pardavėjo siųstą į OPAY reikšmę | ||||||
p_token str(100) |
Rodyti aprašymą Slėpti aprašymą | |||||
Mokėjimui skirtas unikalus kodas. Jei tas pats žmogus tą patį mokėjimą atliktų daugiau nei vieną kartą, visų parametrų reikšmės sutaptų, bet šio parametro reikšmė būtų kita. Jei šio parametro reikšmė kartojasi, reiškia, kad tai pakartotinas pranešimas apie tą patį mokėjimą (Operaciją). | ||||||
p_amount int(10) |
Rodyti aprašymą Slėpti aprašymą | |||||
Suma centais, kuria Pirkėjas atliko mokėjimą (Operaciją). | ||||||
p_currency str(3) |
EUR | Rodyti aprašymą Slėpti aprašymą | ||||
Valiuta, kuria Pirkėjas atliko mokėjimą (Operaciją). | ||||||
p_channel str(30) |
Rodyti aprašymą Slėpti aprašymą | |||||
Mokėjimo būdas (Mokėjimo paslauga), kuriuo buvo atliktas mokėjimas. | ||||||
p_bank str(30) |
Rodyti aprašymą Slėpti aprašymą | |||||
OPAY Partnerio, kurio paslaugomis naudojosi Pirkėjas atlikdamas mokėjimą, sisteminis pavadinimas. | ||||||
p_local_date_time str(19) |
Rodyti aprašymą Slėpti aprašymą | |||||
Vietinis laikas, kada OPAY gavo pranešimą apie mokėjimą. Laiko formatas: YYYY-MM-DD hh:mm:ss | ||||||
p_gmt_date_time str(19) |
Rodyti aprašymą Slėpti aprašymą | |||||
GMT laiko juostos laikas, kada OPAY gavo pranešimą apie apmokėjimą. Laiko formatas: YYYY-MM-DD hh:mm:ss | ||||||
c_full_name str(100) |
Rodyti aprašymą Slėpti aprašymą | |||||
Pirkėjo vardas ir pavardė. Pateikiama, jeigu OPAY mokėjimų Partneris (pvz.: bankas) pateikia tokią informaciją OPAY. | ||||||
c_account_nr str(50) |
Rodyti aprašymą Slėpti aprašymą | |||||
Pirkėjo sąskaitos numeris, iš kurios Pirkėjas atliko mokėjimą. Pateikimas, jeigu OPAY mokėjimų Partneris (pvz.: bankas) pateikia tokią informaciją OPAY. | ||||||
c_email str(100) |
Rodyti aprašymą Slėpti aprašymą | |||||
Pirkėjo el. pašto adresas. Pastaba: El. pašto adresas gali skirtis nuo to, kurį Pardavėjas pateikė OPAY, kadangi OPAY suteikia galimybę Pirkėjui redaguoti Pardavėjo pateiktą Pirkėjo el. pašto adresą. | ||||||
c_mobile_nr str(30) |
Rodyti aprašymą Slėpti aprašymą | |||||
Pirkėjo mobilaus telefono numeris. Pastaba: mobilaus telefono numeris gali skirtis nuo to, kurį Pardavėjas pateikė OPAY, kadangi OPAY suteikia galimybę Pirkėjui redaguoti Pardavėjo pateiktą Pirkėjo mobilaus telefono numerį. | ||||||
rsa_signature str(700) |
Rodyti aprašymą Slėpti aprašymą | |||||
OPAY, siųsdama duomenų paketą, pasirašo jį tuo būdu, kuriuo Pardavėjas pasirašė siųsdamas savo užklausą į OPAY. Pasirašymo būdai sutariami Sutartyje. | ||||||
password_signature str(32) |
Rodyti aprašymą Slėpti aprašymą | |||||
OPAY, siųsdama duomenų paketą, pasirašo jį tuo būdu, kuriuo Pardavėjas pasirašė siųsdamas savo užklausą į OPAY. Pasirašymo būdai sutariami Sutartyje. |
Įprastu atveju (nenaudojant šių parametrų) OPAY sistema atvaizduos Pirkėjui visus sutartus OPAY ir Pardavėjo Sutartyje atsiskaitymo būdus.
Parametru show_channels nurodysite kokius tiksliai atsiskaitymo būdus Pirkėjui atvaizduoti OPAY atsiskaitymo puslapyje (atsiskaitymo būdų pavadinimai atskiriami kableliais).
Parametru hide_channels nurodysite kokių atsiskaitymo būdų Pirkėjui neatvaizduoti OPAY atsiskaitymo puslapyje (atsiskaitymo būdų pavadinimai atskiriami kableliais).
OPAY galimi atsiskaitymo būdai yra aprašyti skyriuje Sisteminiai atsiskaitymo būdų pavadinimai. Atsiskaitymo būdai yra suskirstyti į grupes ir atitinkamą atsiskaitymo būdą.
Pavyzdžiui, atsiskaitymo grupė banklink yra skaidoma į bankus, kurių trumpiniai yra šie: banklink_swedbank, banklink_seb, banklink_dnb, banklink_danske, banklink_citadele, banklink_sb, banklink_medbank. Banklink atveju galima nurodyti ne tik atsiskaitymo būdą kaip grupę, bet ir konkrečius bankus. Kiekvienas banklink bankas yra kaip atskiras atsiskaitymo būdas, todėl sistema atsiskaitymo būdus laiko tiek banklink, tiek banklink_seb.
Kad nereiktų išvardinti visų bankų, tiesiog rašome banklink, bet galime išvardinti ir visus smulkius atsiskaitymo būdus rašydami: banklink_ <banko sisteminis pavadinimas>, banklink_<banko sisteminis pavadinimas>...
OPAY sistema patikrina show_channels reikšmę, pagal tai nustato atvaizduojamus Pirkėjui atsiskaitymo būdus, jei show_channels parametre nenurodoma jokia reikšmė, sistema atvaizduoja visus sutartus OPAY ir Pardavėjo Sutartyje atsiskaitymo būdus. Tuomet sistema patikrina hide_channels parametro reikšmes ir išjungia parametre nurodytų atsiskaitymo būdų atvaizdavimą Pirkėjui.
Pavyzdžiai, kai OPAY ir Pardavėjo Sutartyje sutarti Internetinės bankininkystės (banklink) ir Pavedimu banke (banktransfer) atsiskaitymo būdai:
Parametre hide_channels nurodome reikšmes: banklink_swedbank, banklink_seb
Šiuo atveju OPAY sistema atvaizduos banktransfer atsiskaitymo būdą ir banklink atsiskaitymo būdą su visais bankais, išskyrus SWEDBANK ir SEB.
Parametre show_channels nurodome reikšmes: banklink_swedbank, banklink_seb
Šiuo atveju OPAY sistema atvaizduos tik banklink atsiskaitymo būdą, kuriame bus galima atsiskaityti tik naudojantis SWEDBANK ir SEB bankų paslaugomis.
Parametre hide_channels nurodome reikšmę: banklink
Šiuo atveju bus atvaizduojamas tik banktransfer atsiskaitymo būdas.
Parametre hide_channels nurodome reikšmes: banklink, banktransfer
Šiuo atveju Pardavėjas prašo sistemos nerodyti nei vieno atsiskaitymo būdo, todėl įvyks klaida, apie kurią Pardavėjas bus informuotas el. paštu, o Pirkėjui bus atvaizduojami visi OPAY ir Pardavėjo Sutartyje sutarti atsiskaitymo būdai.
Parametras time_limit skirtas nustatyti laiko apribojimą, per kurį turi būti atliktas atsiskaitymas. Jei per šį laiką atsiskaitymas nebus atliktas, Pardavėjo tinklalapis gaus automatinį pranešimą apie neįvykusį mokėjimą (status = 0).
Skiltyje Minimalaus laiko, skirto mokėjimui atliktilentelė yra nurodyti mažiausi galimi laikai, kurie gali būti nurodyti atitinkamiems atsiskaitymo būdams.
OPAY sistema, atsižvelgdama į Pardavėjo nurodytą laiką, atvaizduos Pirkėjui tik tuos atsiskaitymo būdus, kurių minimalus leidžiamas minučių kiekis yra mažesninis arba lygus Pardavėjo nurodytam laikui.
Jeigu bus nurodytas mažesnis minučių kiekis negu patį mažiausią leidžiamų minučių kiekį turintis atsiskaitymo būdas, tai Pardavėjas bus el. paštu informuotas apie klaidą, o Pirkėjui atvaizduotas atsiskaitymo būdas, kuris turi patį mažiausią leidžiamą laiką (arba keli atsiskaitymo būdai, kurie turi vienodą mažiausią laiką). Parametras time_limit yra labai susijęs su parametrais show_channels ir hide_channels, todėl, šiuo atveju, sistema, ieškodama mažiausią laiką turinčio atsiskaitymo būdo, pirmiausiai tikrins ar Pardavėjas yra nurodęs pageidaujamus atsiskaitymo būdus šiam mokėjimui show_channels ir / arba hide_channels parametruose. Jei Pardavėjas bus tai atlikęs, tai sistema ieškos mažiausią laiką turinčio atsiskaitymo būdo iš Pardavėjo pageidaujamų būdų. Jei Pardavėjas nebus to atlikęs, tai sistema ieškos atsiskaitymo būdo iš visų sutartų OPAY ir Pardavėjo Sutartyje atsiskaitymo būdų.
DĖMESIO!
Jeigu pasibaigus time_limit nurodytam laikui įvyksta mokėjimas (pvz.: pasibaigiant laikui Pirkėjas gali būti banko svetainėje, kurioje jam nėra atvaizduojamas OPAY laikas), tai Pardavėjas, įprastu būdu, gaus pranešimą apie neįvykusį (Lentelė Nr. 2, status = 0) mokėjimą, po kurio seks papildomas pranešimas apie pavykusį mokėjimą (Lentelė Nr. 2, status = 1).
Papildomai Pardavėjas gaus el. laišką, informuojantį apie įvykusį mokėjimą pasibaigus mokėjimui skirtam laikui. Pirkėjas taip pat bus informuotas apie pavėluotą mokėjimą ir jam bus pasiūlyta susisiekti su Pardavėju. Šiuo atveju Pardavėjas pats priima sprendimą dėl tolimesnių veiksmų Pirkėjo atžvilgiu, pvz.: gali pasiūlyti kitą prekę arba grąžinti Pirkėjui pinigus.
Šioje lentelėje pateikiami kiekvienam atsiskaitymo būdui nustatyti laikai minutėmis, kurie negali būti mažesni (nurodant parametre time_limit), norint, kad atitinkamas atsiskaitymo būdas būtų vaizduojamas Pirkėjui.
Sisteminis atsiskaitymo būdo pavadinimas | Laikas, minutėmis |
---|---|
banklink | 20 |
banklink_swedbank | 10 |
banklink_seb | 10 |
banklink_dnb | 10 |
banklink_citadele | 20 |
banklink_sb | 10 |
banklink_medbank | 10 |
card | 10 |
cash | 1440 (24 valandos) |
cash_perlas | 1440 (24 valandos) |
financing | 20 |
financing_gf | 20 |
mobilewallet | 10 |
mobilewallet_moq | 10 |
banktransfer | 1440 (24 valandos) |
Kadangi siunčiamuose duomenyse pasitaiko ne tik lotyniškų, bet ir kitų raidžių, kurias ypač svarbu persiųsti teisinga simbolių koduote, tai ar pranešimas pasieks adresatą neiškraipytas, priklausys nuo to ar Pirkėjo interneto naršyklė visus simbolius suinterpretuos teisingai. Atsiranda galimybė atsirasti duomenų iškraipymui, dėl ko visas duomenų paketas gali būti palaikytas neteisingu (neatitinkančiu skaitmeninio parašo). Kuo mažiau išvystyta naršyklė tuo didesnė klaidos tikimybė.
Situaciją sprendžiame šiuo būdu:
Užkoduojame siunčiamus duomenis base64 koduote.
Suformuojame visą duomenų paketą, skirtą siųsti į OPAY. Sakykime, kad tai asociatyvus masyvas, kurio indeksas žymi parametro pavadinimą, o reikšmė – parametro reikšmę. Šį masyvą paverčiame RFC 1738 standartu koduota URL eilute, kurią paverčiame į base64 koduotės eilutę, tada turimos eilutės simbolius pakeičiame:
Iškoduojame gautus duomenis
Iškoduodami parametro encoded reikšmę atliekame veiksmus atvirkščia tvarka nei užkodavimo metu.
Apsikeisdami duomenimis naudojame du pasirašymo būdus (arba vieną, arba kitą):
sitmetrinio pasirašymo. Kai abi šalys tiek pasirašymui, tiek parašo tikrinimui naudoja tą patį slaptažodį.
Pasirašymo slaptažodžio pavyzdys:
33cec89hjab1d77b10d21fba67528g5h
asimetrinio pasirašymo. Kai šalys susigeneruoja privačius raktus, pagal juos susigeneruoja SSL sertifikatus ir tais sertifikatais apsikeičia. Duomenų pasirašymui naudoja privačius raktus, o parašo tikrinimui (gavus duomenis iš partnerio) naudoja partnerio sertifikatą.
SSL sertifikato pavyzdys:
Prieš pasirašant duomenis ar prieš tikrinant pasirašytų duomenų autentiškumą, labai svarbu laikytis vienodos parametrų apjungimo į vientisą eilutę tvarkos.
Parametrai (duomenys), kuriuos siųsite į OPAY ar kuriuos iš OPAY gausite, bus išdėstyti eilės tvarka, kurią nustatys siunčiančioji pusė. Pavyzdys PHP kalba, jei ruoštumėtės išsiųsti užklausą iš trijų parametrų:
Siunčiant šiuos parametrus HTTP POST metodu, jie galėtų būtų sujungti į tokią eilutę (parametrų išdėstymo tvarka nėra svarbi):
Pasirašant parametrus ar tikrinant jų parašą, parametrus taip pat reikia sujungti į vieną eilutę, tik kitaip nei HTTP POST parametrų eilutėje, tarp parametro pavadinimo ir jo reikšmės nededamas lygybės ženklas (=), parametrai neatskiriami ampersando ženklu (&). Parametrų pavadinimai su jų reikšmėmis sujungiami į vieną ilgą žodį - eilutę. Šios eilutės specialieji ir ne ASCII simboliai nekeičiami jų atitikmenimis (angl. url encoding), kaip tai daroma HTTP POST eilutėje.
Eilutės pavyzdys:
DĖMESIO! Pasirašymui ar parašo tikrinimui naudojamos eilutės parametrų eilės tvarka privalo sutapti su siunčiamų parametrų eilės tvarka. Kitaip sakant, kokia tvarka surikiuoti siunčiami ar gaunami parametrai, tokia tvarka turi ir būti suformuota pasirašymui ar parašo tikrinimui skirta eilutė.
Pasirašymas
Pasirašant parametrus, iš visų siuntimui paruoštų parametrų (neįtraukiant parametrų password_signature ir rsa_signature) reikia suformuoti pasirašymo eilutę.
Pasirašymas simetriniu būdu vyksta pasirašymo / parašo tikrinimo eilutę ir pasirašymo slaptažodį sujungiant į vieną eilutę, ir ją išmaišant md5 algoritmu.
Gautas simetrinis parašas pridedamas kaip password_signature parametras prie paruoštų siuntimui parametrų, kurie siunčiami į OPAY. Pageidautina, kad prieš siunčiant paruoštus parametrus į OPAY, parametrai dar būtų užkoduoti ir siunčiami kaip vienas parametras enocoded(žiūrėti skiltyje Duomenų kodavimas siekiant išvengti galimų iškraipymų).
Parašo tikrinimas
Parašas tikrinamas iš visų gautų parametrų (neįtraukiant parametrų password_signature ir rsa_signature) suformuojant pasirašymui / parašo tikrinimui skirtą eilutę. OPAY siunčia parametrus užkoduotus į vieną parametrą encoded, todėl norimiems parametrams gauti, reikės išsikoduoti encoded parametro reikšmę (Žiūrėti skiltyje Duomenų kodavimas siekiant išvengti galimų iškraipymų).
Pasirašymui / parašo tikrinimui skirtą eilutę pasirašome, o gautą rezultatą palyginame su gauto parametro password_signature reikšme. Jeigu reikšmės sutampa – autentifikacija pavyko.
Privataus rakto ir SSL sertifikato generavimas
Šiems raktams generuoti OPAY siūlo naudoti OpenSSL programinę įrangą (https://www.openssl.org/).
Privatus raktas generuojamas komandinėje eilutėje įvedant komandą:
Esamoje direktorijoje jums bus sugeneruotas tekstinis failas pavadinimu privkey.pem, kurio viduje rasite privatų raktą. Skaičius 2048 komandoje reiškia rakto ilgį bitais. Pagal saugumo reikalavimus taikomus šią dieną, tai trumpiausias rekomenduojamas rakto ilgis.
SSL sertifikatas generuojamas komandinėje eilutėje įvedant komandą:
Komandoje nurodytas privataus rakto failo pavadinimas privkey.pem. Taip pat nurodytas tekstinio failo, kuris turi būti sukurtas ir į jį įrašytas SSL sertifikatas, pavadinimas cacert.pem. Skaičius 3650 nurodo kiek dienų nuo sugeneravimo šis sertifikatas turi galioti. Pasibaigus šiam laikui reikėtų sugeneruoti naują sertifikatą ir jį pateikti OPAY. Pasibaigus sertifikato galiojimui OPAY sistema ir toliau tikrina Pardavėjo siunčiamas užklausas su pasibaigusio galiojimo sertifikatu. Sertifikato galiojimo pasibaigimas technine prasme jokios įtakos neturi. Kokį sertifikato galiojimo laiką nustatyti ir kada atnaujinti sertifikatą sprendžia Pardavėjas.
Įvedus SSL sertifikato generavimo komandą jūsų bus paprašyta suvesti įmonės duomenis, pavyzdžiui:
Pasirašymas
Pasirašant parametrus, iš visų siuntimui paruoštų parametrų (neįtraukiant parametrų password_signature ir rsa_signature) reikia suformuoti pasirašymo eilutę ir ją pasirašyti.
Gautas asimetrinis parašas pridedamas kaip rsa_signature parametras prie paruoštų siuntimui parametrų, kurie siunčiami į OPAY. Pageidautina, kad prieš siunčiant paruoštus parametrus į OPAY, parametrai dar būtų užkoduoti ir siunčiami kaip vienas parametras enocoded (žiūrėti skiltyje Duomenų kodavimas siekiant išvengti galimų iškraipymų).
Parašo tikrinimas
Parašas tikrinamas iš visų gautų parametrų (neįtraukiant parametrų password_signature ir rsa_signature) suformuojant pasirašymui / parašo tikrinimui skirtą eilutę. OPAY siunčia parametrus užkoduotus į vieną parametrą encoded, todėl norimiems parametrams gauti, reikės išsikoduoti encoded parametro reikšmę (Žiūrėti skiltyje Duomenų kodavimas siekiant išvengti galimų iškraipymų).