Integravimas per biblioteką
Sumokėsime nuo 100 iki 200 EUR už tvarkingą ir veikiantį, jūsų sukurtą programinį kodą. Kodas ir jūsų
kontaktai bus patalpinami viešai, jeigu norėtumėte bendradarbiauti ir gauti užsakymus dėl tam tikros
sistemos versijos palaikymo.
Atsiųsti kodą ar susisiekti galite pagalba@paysera.lt
Integruoti Paysera sistemą į Jūsų svetainę galima atsisiuntus mūsų parengtą atviro kodo programinę biblioteką – libwebtopay. Per ją galima patikrinti visus reikalingus perduodamų ir gaunamų duomenų saugumo parametrus:
-
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
Atsisiuntus biblioteką PHP kalba, iš archyvo pasiimkite failą libwebtopay/WebToPay.php. Kiti failai skirti testams, pavyzdžiams ir paaiškinimams. Naujausią tik vieno libwebtopay/WebToPay.php failo versiją galite atsisiųsti šiuo adresu: WebToPay.php.
Integruoti Paysera sistemą į Jūsų svetainę taip pat galima atsisiuntus trečiosios šalies paruoštą atviro kodo programinę biblioteką:
-
Omnipay 2.x - mokėjimų apdorojimo PHP biblioteka (iš GitHub).
$ git clone https://github.com/povils/omnipay-paysera.git
Žemiau pateiktas veikiantis pavyzdys naudojant WebToPay biblioteką. Vietos, kuriose reikia įrašyti Jūsų Paysera prieigos duomenis, pažymėtos komentarais.
1. Susikurkite katalogą.
Susikurkite katalogą, pavadinkite jį libwebtopay. Jame bus laikomi visi failai, susiję su mokėjimų integracija.
2. Atsisiųskite libwebtopay biblioteką.
Į sukurtą libwebtopay katalogą atsisiųskite WebToPay.php failą.
3. Sukurkite failą, nukreipiantį vartotoją į Paysera svetainę.
Kataloge libwebtopay sukurkite failą redirect.php. Šio failo turinys galėtų būti toks:
<?php require_once('WebToPay.php'); function getSelfUrl(): string { $url = substr(strtolower($_SERVER['SERVER_PROTOCOL']), 0, strpos($_SERVER['SERVER_PROTOCOL'], '/')); if (isset($_SERVER['HTTPS']) === true) { $url .= ($_SERVER['HTTPS'] === 'on') ? 's' : ''; } $url .= '://' . $_SERVER['HTTP_HOST']; if (isset($_SERVER['SERVER_PORT']) === true && $_SERVER['SERVER_PORT'] !== '80') { $url .= ':' . $_SERVER['SERVER_PORT']; } $url .= dirname($_SERVER['SCRIPT_NAME']); return $url; } try { WebToPay::redirectToPayment([ 'projectid' => {YOUR_PROJECT_ID}, 'sign_password' => {YOUR_PROJECT_PASSWORD}, 'orderid' => 0, 'amount' => 1000, 'currency' => 'EUR', 'country' => 'LT', 'accepturl' => getSelfUrl() . '/accept.php', 'cancelurl' => getSelfUrl() . '/cancel.php', 'callbackurl' => getSelfUrl() . '/callback.php', 'test' => 0, ]); } catch (Exception $exception) { echo get_class($exception) . ':' . $exception->getMessage(); }
Vietoj WebToPay::redirectToPayment metodo galite naudoti WebToPay::buildRequest, kuris priima tokius pačius parametrus ir grąžina reikiamų siuntimui duomenų masyvą.
4. Sukurkite accept.php
Kataloge libwebtopay sukurkite failą accept.php. Šio failo turinys turėtų būti toks:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <title></title> </head> <body> Thank you for buying. </body> </html>
5. Sukurkite cancel.php
Kataloge libwebtopay sukurkite failą cancel.php. Šio failo turinys turėtų būti toks:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <title></title> </head> <body> Payment canceled. </body> </html>
6. Įvykdytų mokėjimų apdorojimas
Kataloge libwebtopay sukurkite failą callback.php. Šio failo turinys turėtų būti toks:
<?php require_once('WebToPay.php'); function isPaymentValid(array $order, array $response): bool { if (array_key_exists('payamount', $response) === false) { if ($order['amount'] !== $response['amount'] || $order['currency'] !== $response['currency']) { throw new Exception('Wrong payment amount'); } } else { if ($order['amount'] !== $response['payamount'] || $order['currency'] !== $response['paycurrency']) { throw new Exception('Wrong payment amount'); } } return true; } try { $response = WebToPay::validateAndParseData( $_REQUEST, {YOUR_PROJECT_ID}, {YOUR_PROJECT_PASSWORD} ); if ($response['status'] === '1' || $response['status'] === '3') { //@ToDo: Validate payment amount and currency, example provided in isPaymentValid method. //@ToDo: Validate order status by $response['orderid']. If it is not already approved, approve it. echo 'OK'; } else { throw new Exception('Payment was not successful'); } } catch (Exception $exception) { echo get_class($exception) . ':' . $exception->getMessage(); }
Užklausos parametrai
Norėdamas patvirtinti užsakymą, pardavėjas neturėtų pasikliauti „accepturl“. Vietoj to, pardavėjas užsakymą turėtų patvirtinti per „callbackurl“.
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).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.
Galimos reikšmės - 0 arba 1. Jei parametras yra lygus 1, pirkėjas gali praleisti papildomą mokėjimo žingsnį, kuriame yra patvirtinamas sutikimas su taisyklėmis, naudojant MIP mokėjimo būdą. Jei šis parametras naudojamas, savo svetainėje turite pridėti šį tekstą:
Pirkėjo sutikimo tekstas kitomis kalbomis pateiktas žemiau lentelės**
Galimi visų įjungtų periodinių mokėjimų būdų dažniai:
weekly
monthly
quarterly
semiannual
annual
Galimi kai kurių įjungtų periodinių mokėjimo būdų dažniai:
daily
every_working_day
last_day_of_month
last_working_day_of_month
Datos formatas turėtų būti yyyy-mm-dd.
Datos formatas turėtų būti yyyy-mm-dd.
* Galutinis ilgis gali skirtis priklausomai nuo mokėjimo būdo specifikacijos
** Pirkėjo sutikimo tekstas:
Callback
Daugiau informacijos apie 'callback' žiūrėkite skyrių - Callback .