Kaip integruoti?
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.
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:
- Pakeisti simbolius '-' į '+', '_' į '/'.
- Iškoduoti eilutę, naudojant base64 kodavimą.
- Gauti duomenų masyvą iš rezultato, kuris yra URL-encoded parametrų rinkinys.
$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šą.