Gdy użytkownik pomyślnie wykonuje przelew pieniężny i te pieniądze są zaliczane na Twoje konto, Paysera zwraca się na przez Ciebie podany adres callbackurli przekazuje wszystkie potrzebne informacje o wykonanej płatności.

Parametr callbackurl jest adresem skryptu na Twojej stronie, informującym system Paysera o tym, że Twoja strona internetowa otrzymała zapytanie o wykonanej płatności. Odpowiedź jest generowana następującym sposobem:

1. Utwórz katalog.

Utwórz katalog pod nazwą libwebtopay, w którym będą przechowywane wszystkie pliki, powiązane z integracją płatności.

2.Pobierz bibliotekę libwebtopay.

W utworzony katalog libwebtopay zapisz plik WebToPay.php.

3. Utwórz callback.php.

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

<?php
require_once('libwebtopay/WebToPay.php');

try {
    $response = WebToPay::checkResponse($_GET, array(
            'sign_password' => 'sekret',

            // Droga do pliku, w którym będą rejestrowane wszystkie wywołania.
            // Jeżeli będziesz korzystał z danej funkcji upewnij się, że dostępu do utworzonego pliku log
            // nikt z zewnętrzna nie będzie miał.
            //'log' => 'webtopay.log',
        ));

    echo 'OK Twoja wiadomość została wysłana pomyślnie. Dziękujemy.';
}
catch (Exception $e) {
    echo get_class($e).': '.$e->getMessage();
}

Dla metody WebToPay::checkResponse obowiązkowo należy przekazać wszystkie dane, przysłane od Paysera. To jest potrzebne dla sprawdzania integralności danych. Jeżeli będzie brakowało chociaż by jednego parametru albo nie zgodzą się znaczenia parametrów, będzie wywołany wyjątek WebToPayException.

Parametr Długość Obowiązkowy Opis
sign_password 32 Tak Hasło projektu, które możesz znaleźć logując się do systemu Paysera ze swoim użytkownikiem, wybierając "Zarządzanie projektami" i przy projekcie wybierając "Podstawowe ustawienia".

Po sprawdzeniu danych $_GET, jeżeli wszystko jest w porządku, obowiązkowo należy wrócić odpowiedź, jak to pokazane w przykładzie powyżej (echo 'OK';). Możliwe warianty odpowiedzi są następujące:

OK <tekst>
Podany po słowie kluczowym OK tekst będzie wysłany z powrotem, jako wiadomość odpowiedzi.
Przykład: "OK Twoja wiadomość została wysłana pomyślnie. Dziękujemy." (będzie wysłana odpowiedź: "Twoja wiadomość została wysłana pomyślnie. Dziękujemy.").
NOSMS
W tym wypadku nadawca nie otrzyma żadnej odpowiedzi, a odpowiedź możesz wysłać później (w ciągu tygodnia).
WAPPUSH <url> <tekst>
System wyśle odpowiedź dla nadawcy metodą Wap Push.
Przykład: "WAPPUSH http://www.adres.pl/usługa/link opis usługi".

4. Przesyłanie wiadomości odpowiedzi.

Jeżeli nie podałeś odpowiedzi od razu z OK<tekst>, wówczas odpowiedź możesz przesłać później (w ciągu tygodnia), korzystając z następującej funkcji libwebtopay:

<?php

// Dodawana biblioteka webtopay
require_once('libwebtopay/WebToPay.php');

try {
    // Sprawdzane są dane odpowiedzi o dokonanej płatności
    WebToPay::smsAnswer(array(
            // Unikalny numer wiadomości w naszym systemie, który otrzymałeś razem z wiadomością.
            'id' => 0,

            // Odpowiedź
            'msg' => 'Twoja wiadomość została wysłana pomyślnie. Dziękujemy.',

            // Wygenerowane hasło Twojego projektu w systemie Paysera
            'sign_password' => 'sekret',

            // Droga do pliku, w którym będą rejestrowane wszystkie wywołania
            // Jeżeli będziesz korzystać z danej funkcji upewnij się, że dostępu do utworzonego pliku log
            // nikt z zewnętrzna nie będzie miał.
            //'log' => 'webtopay.log',
        ));
}
catch (Exception $e) {
    echo get_class($e).': '.$e->getMessage();
}

Libwebtopay

Do integracji systemu płatniczego Makro rekomendujemy korzystać z naszej przygotowanej biblioteki programowej o otwartym kodzie. Biblioteka wykonuje wszystkie potrzebne sprawdzania bezpieczeństwa, a także przekazywanych 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

Aby libwebtopay działała pomyślnie, z w archiwum znajdujących się plików wystarczy tylko jednego: libwebtopay/WebToPay.php. Inne pliki są przeznaczone do testowania, przykładów i pojaśnienia.

Uwaga: Z libwebtopay można korzystać i dla mikro, i dla makro usług.

Możesz wypróbować libwebtopay poprzez uruchomienie przygotowanego demonstracyjnego scenariusza. Demonstrację można uruchomić wpisując w pasek adresu przeglądarki następujący adres:

https://www.adrestwojejstrony.lt/libwebtopay/demo/

Uwaga: w adresie podana droga do katalogu demomoże się różnić w zależności od tego, gdzie rozwinąłeś zawartość archiwum.

Uwaga: aby demonstracja działała pomyślnie, wskaż ID swojego projektu ze strony internetowej Paysera w polu projectid. Demonstracja nie będzie działała, jeżeli będziesz próbował ją uruchomić ze swojego komputera (localhost).

Specyfikacja

Jeżeli nie masz możliwości skorzystać z biblioteki libwebtopay, poniżej znajdziesz szczegółową specyfikację przesyłanych i otrzymywanych danych.

Paysera przesyła odpowiedź na podany przez Ciebie adres callbackurl. Do przez Ciebie wskazanego callbackurl dodawane są dodatkowe parametry GET, spis których wraz z opisami znajdziesz poniżej. Wszystkie dane parametry są podawane z prefiksem wp_.

Parametr Opis
to Krótki numer, na który została wysłana wiadomość.
sms Zawartość wiadomości ze słowem kluczowym i dodatkowym słowem kluczowym (do 160 symboli).
from Numer telefonu, z którego została otrzymana wiadomość.
operator Nazwa operatora sieci komórkowej ("Bitė", "TELE2", "Omnitel", "Orange", "LMT" itd.).
amount Cena wiadomości dla klienta w centach. Na przykład, 100 (1 euro), 500 (5 euro) itd.
currency Waluta płatności (USD, EUR), w której chcesz aby klient płacił. Jeżeli wskazana waluta poprzez wybrany sposób płatności nie może być przyjęta, system automatycznie wymieni ją na obsługiwaną walutę według kursu dnia. W odpowiedzi na twoją stronę internetową będą podane parametry payamount i paycurrency.
country Dwuznaczny kod państwa. (LT, EE, LV, UA, RU itd.)
id Unikalny numer wiadomości w naszym systemie.
_ss2 Parametr, za pomocą którego sprawdzamy czy otrzymaliście odpowiedź od naszego serwera. To jest sposób sprawdzania najwyższego poziomu niezawodności.
_ss1 Parametr, za pomocą którego sprawdzamy czy otrzymaliście odpowiedź od naszego serwera. To jest sposób sprawdzania niższego poziomu niezawodności, niż _ss2. Pobierz przykład skryptu tutaj.
test Parametr, który pozwala na testowanie połączenia. Płatność nie jest wykonywana, ale rezultat jest wracany od razu, jak gdyby płatność była wykonana. Aby testować, obowiązkowo należy aktywować tryb testowania przy wybranym projekcie, po zalogowaniu: "Zarządzanie projektami" -> "Usługa pobierania płatności" (przy wybranym projekcie) ->"Pozwól na płatności testowe" (zaznacz).
key Słowo kluczowe