Zarób z Paysera Tworzysz biblioteki?


Jesteśmy gotowi zapłacić Ci od 100 do 200 EUR za bezbłędny i działający przez Ciebie utworzony kod programowy. Kod i Twoje dane kontaktowe będą umieszczone publicznie, jeżeli zechcesz i dalej współpracować i otrzymywać zamówienia na obsługę konkretnej wersji jakiegoś systemu.

Dane kontaktowe - pomoc@paysera.pl

Integrować system Paysera do strony internetowej można poprzez pobranie przez nas przygotowanej biblioteki o otwartym kodzie – libwebtopay. Z jej pomocą można sprawdzić wszystkie potrzebne parametry bezpieczeństwa podawanych i otrzymywanych danych.

  • WebToPay dla PHP (z GitHub).
    $ git clone https://github.com/paysera/lib-webtopay
  • WebToPay dla .NET (z GitHub).
    $ git clone https://github.com/evp/webtopay-lib-dotnet

Z archiwum pobierz plik libwebtopay/WebToPay.php. Pozostałe pliki są przeznaczone do testowania, przykładów i pojaśnień. Najnowszą wersję tylko pliku libwebtopay/WebToPay.php można pobrać pod następującym adresem: WebToPay.php.

Integrować system Paysera do strony internetowej można poprzez pobranie przygotowanej biblioteki o otwartym kodzie.

  • Omnipay 2.x - PHP biblioteka przetwarzania płatności. (iš GitHub).
    $ git clone https://github.com/povils/omnipay-paysera.git
  • Omnipay 3.x - PHP biblioteka przetwarzania płatności. (iš GitHub).
    $ git clone https://github.com/semyonchetvertnyh/omnipay-paysera.git
Informacje Z libwebtopay można korzystać i dla mikro, i dla makro usług. wystarczy wezwać dwie metody, jedna z których przygotowuje dane do wysłania, a inna sprawdza otrzymaną odpowiedź o wykonanej płatności.

Poniżej jest podany w pełni roboczy przykład. Pola, w które należy wpisać dane dostępu do Paysera są oznaczone komentarzami.

1. Utwórz katalog.

Utwórz katalog, i zmień nazwę na libwebtopay. w katalogu będą przechowywane wszystkie pliki, powiązane z integracją płatności.

2. Pobierz bibliotekę libwebtopay.

W utworzony katalog libwebtopay pobierz plik WebToPay.php.

3. Utwórz plik, który będzie przekierowywał użytkownika na stronę Paysera.

W katalogu libwebtopay utwórz plik redirect.php. Treść danego pliku ma być następująca:

<?php

require_once('WebToPay.php');

function get_self_url() {
    $s = substr(strtolower($_SERVER['SERVER_PROTOCOL']), 0, strpos($_SERVER['SERVER_PROTOCOL'], '/'));

    if (count($_SERVER['HTTPS']) > 0) {
        $s .= ($_SERVER['HTTPS'] === 'on') ? 's' : '';
    }

    $s .= '://' . $_SERVER['HTTP_HOST'];

    if (count($_SERVER['SERVER_PORT']) > 0 && $_SERVER['SERVER_PORT'] !== '80') {
        $s .= ':' . $_SERVER['SERVER_PORT'];
    }

    $s .= dirname($_SERVER['SCRIPT_NAME']);

    return $s;
}

try {
    $self_url = get_self_url();

    $request = WebToPay::redirectToPayment([
        'projectid' => 0,
        'sign_password' => 'd41d8cd98f00b204e9800998ecf8427e',
        'orderid' => 0,
        'amount' => 1000,
        'currency' => 'EUR',
        'country' => 'LT',
        'accepturl' => $self_url . '/accept.php',
        'cancelurl' => $self_url . '/cancel.php',
        'callbackurl' => $self_url . '/callback.php',
        'test' => 0,
    ]);
} catch (WebToPayException $e) {
    // handle exception
}

Zamiast metody WebToPay::redirectToPayment można korzystać z WebToPay::buildRequest, która przyjmuje te same parametry i wraca macierz danych, potrzebnych do pobrania.

4. Utwórz accept.php

W katalogu libwebtopay utwórz plik accept.php. Zawartość danego pliku ma być następująca:

<!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. Utwórz cancel.php

W katalogu libwebtopay UTWÓRZ plik cancel.php. Zawartość danego pliku ma być następująca:

<!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. Przetwarzanie wykonanych płatności.

W katalogu libwebtopay UTWÓRZ plik callback.php. Zawartość danego pliku ma być następująca:

<?php

require_once('WebToPay.php');

try {
    $response = WebToPay::checkResponse($_GET, [
        'projectid' => 0,
        'sign_password' => 'd41d8cd98f00b204e9800998ecf8427e',
    ]);

    if ($response['test'] !== '0') {
        throw new Exception('Testing, real payment was not made');
    }

    if ($response['type'] !== 'macro') {
        throw new Exception('Only macro payment callbacks are accepted');
    }

    $orderId = $response['orderid'];
    $amount = $response['amount'];
    $currency = $response['currency'];
    //@todo: check, if order with $orderId is already approved (callback can be repeated several times)
    //@todo: check, if order amount and currency matches $amount and $currency
    //@todo: confirm order

    echo 'OK';
} catch(Exception $e) {
    echo get_class($e) . ':' . $e->getMessage();
}
Informacje Przekazane parametry są wracane przez WebToPay::checkResponse lub WebToPay::validateAndParseData. Dane są zakodowane, dlatego z parametrów GET ich otrzymać zwykle nie jest możliwe.
Informacje Jeżeli wszystko jest pomyślnie wykonane, skrypt Callback powinien wrócić odpowiedź, rozpoczynającą się od lub zawierającą tylko "OK".

Poproś o parametry

Parametr
Długość
Obowiązkowy
Opis
projectid
11
Tak
Unikalny numer projektu. Tylko potwierdzone projekty mogą przyjmować płatności.
orderid
40
Tak
Numer zamówienia z Twojego systemu.
accepturl
255
Tak
Pełny adres internetowy (URL), na który zostaje przekierowany klient po kliknięciu linku powrotu do sklepu.
cancelurl
255
Tak
Pełny adres internetowy (URL), na który klient jest przekierowywany po odwołaniu płatności lub w razie nieudanej płatności.
callbackurl
255
Tak
Pełny adres (URL), na który sprzedawca otrzymuje informację o wykonanej płatności.

Skrypt powinien wrócić tekst "OK". Tylko wówczas nasz system zanotuje, że pomyślnie powiadomiliśmy Twój system o płatności.

Jeżeli nie otrzymujemy odpowiedzi "OK", wiadomość wysyłamy 4 razy (od razu, za godzinę, za trzy godziny i za dzień).
version
9
Tak
Numer wersji specyfikacji (API) systemu płatniczego Paysera.
lang
3
Nie
Można podać język użytkownika (ISO 639-2/B: LIT, RUS, ENG, itp.). Jeżeli system Paysera nie obsługuje wybranego języka, język będzie wybrany według adresu IP lub język angielski będzie używany domyślnie.
amount
11
Nie
Kwota w centach, którą klient musi zapłacić.
currency
3
Nie
Waluta płatności (np. USD, EUR, itp.), w której chcesz otrzymać płatność od klienta. Jeżeli podana waluta poprzez wybrany sposób płatności nie może być przyjęta, system automatycznie ją wymieni na obsługiwaną walutę według kursu dnia. W odpowiedzi na Twoją stronę będą przekazane payamount i paycurrency.
payment
20
Nie
Sposób zapłaty. Jeżeli podany, płatność będzie wykonywana poprzez ten sposób zapłaty. Jeżeli niewskazany, użytkownikowi będzie podana tabela z listą sposobów zapłaty. Sposoby zapłaty można otrzymać i w czasie rzeczywistym, za pomocą biblioteki WebToPay
country
2
Nie
Państwo płatnika (LT, EE, LV, GB, PL, DE). Jeżeli państwo jest wpisane, dla płatnika są podawane tylko te sposoby zapłaty, które są obsługiwane w danym państwie. Jeżeli państwo nie jest wpisane, system określa państwo według adresu IP użytkownika. Płatnikowi pozostawiana jest możliwość zmiany państwa.
paytext
255*
Nie
Tytuł płatności, który wyświetla się wykonując przelew. Jeżeli nie jest podany, wyświetla się domyślny tekst o treści:
Płatność za towary i usługi (Nr [order_nr]) ([site_name]).

Jeżeli podajesz tytuł płatności, obowiązkowo musisz włączyć następujące zmienne, które w ostatecznym tekście tytułu będą zamienione na odpowiednie wartości:

[order_nr] - numer zamówienia.
[site_name] lub [owner_name] - adres strony internetowej lub nazwa przedsiębiorstwa.
p_firstname
255
Nie
Imię kupującego. Preferowane w większości sposobów zapłaty. Obowiązkowe wykonując płatność niektórymi sposobami zapłaty.
p_lastname
255
Nie
Nazwisko kupującego. Preferowane w większości sposobów zapłaty. Obowiązkowe wykonując płatność niektórymi sposobami zapłaty.
p_email
255
Nie
E-mail kupującego jest obowiązkowy. Jeżeli adres nie będzie otrzymany, system poprosi klienta go wpisać. Na dany adres system Paysera powiadomi płatnika o statusie zapłaty.
p_street
255
Nie
Adres kupującego, na który będzie wysyłany towar (np.: Ul. Mėnulio 7 - 7). Preferowany. Obowiązkowy wykonując płatność niektórymi sposobami zapłaty.
p_city
255
Nie
Miasto kupującego, do którego jest wysyłany towar (np.: Wilno). Preferowane. Obowiązkowe wykonując płatność niektórymi sposobami zapłaty.
p_state
255
Nie
Kod stanu kupującego (obowiązkowy tylko kupując w USA). Preferowany. Obowiązkowy wykonując płatność niektórymi sposobami zapłaty.
p_zip
20
Nie
Kod pocztowy kupującego. Kody pocztowe Polski można znaleźć tutaj . Obowiązkowy wykonując płatność niektórymi sposobami zapłaty.
p_countrycode
20
Nie
Kod państwa kupującego. Kody państw można znaleźć tutaj . Obowiązkowy wykonując płatność niektórymi sposobami zapłaty.
test
1
Nie
Parametr, który pozwala na testowanie połączenia. W taki sposób płatność nie jest wykonywana, a rezultat jest wracany od razu, jak gdyby płatność była wykonana. Aby można było testować, obowiązkowo należy aktywować tryb testowy przy wybranym projekcie, po zalogowaniu do systemu: "Projekty i przedsięwzięcia" -> "Moje projekty" -> "Ustawienia projektu" -> "Ustawienia usługi pobierania opłat" -> "Pozwól na płatności testowe" (zaznacz).
only_payments
0
Nie
Wyświetlać tylko listę sposobów zapłaty, oddzielnych przecinkiem.
disallow_payments
0
Nie
Nie wyświetlać listy sposobów zapłaty, oddzielonych przecinkiem.
time_limit
19
Nie
Parametr, który wskazuje do kiedy można zapłacić za zamówienie zapytania. Data jest podawana w formacie "yyyy-mm-dd HH:MM:SS". Minimalna wartość 15 minut od momentu zapytania, maksymalna - 3 dni. Uwaga: działa tylko z niektórymi sposobami zapłaty.
personcode
255
Nie
Z danego parametru można korzystać do identyfikacji użytkownika. Jeżeli przekażesz PESEL użytkownika razem z callback, Paysera zwróci parametr personcodestatus, który wskaże czy PEEL użytkownika zgadza się z podanym.
developerid
11
Nie
Jeżeli w naszym systemie jesteś oznaczony jako deweloper, w projekcie (projektach), które instalujesz, musisz przekazywać dany parametr. Znaczenie parametru – Twój numer użytkownika.
buyer_consent
1
Nie

Można ustawić na 0 lub 1. Jeśli jest ustawiony na 1, płatnik może pominąć dodatkowy krok, w którym musi zaakceptować zgodę za pomocą płatności PIS.. Jeśli ten parametr jest używany, do strony należy dodać dodatkowy tekst:

Tekst zgody kupującego w innych językach podany pod tabelą**

* Długość ostateczna może się różnić w zależności od specyfikacji typu płatności

** Tekst zgody kupującego:

Callback

Więcej informacji na temat 'callback' patrz rozdział - Callback .