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 callbackurl przekazuje wszystkie potrzebne informacje o wykonanej płatności.

Do integracji systemu płatniczego Makro rekomendujemy korzystać z naszej przygotowanej biblioteki programowej o otwartym kodzie – libwebtopay . Biblioteka wykonuje wszystkie potrzebne sprawdzania bezpieczeństwa, a także przekazywanych i otrzymywanych danych.

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. Najnowszą wersję tylko pliku libwebtopay/WebToPay.php można pobrać pod następującym adresem:

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

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('WebToPay.php');

try {
    $response = WebToPay::checkResponse($_GET, array(
        'projectid' => 123,
        'sign_password' => 'secret',
    ));

    //@todo: check if $response['projectid'] matches your project ID
    //@todo: check if SMS with ID $response['id'] was not already confirmed in your system

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

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('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',
    ));
}
catch (Exception $e) {
    echo get_class($e).': '.$e->getMessage();
}

Do integracji systemu płatniczego Makro rekomendujemy korzystać z naszej przygotowanej biblioteki programowej o otwartym kodzie – libwebtopay . Biblioteka wykonuje wszystkie potrzebne sprawdzania bezpieczeństwa, a także przekazywanych i otrzymywanych danych.

Przyślij najnowszą wersję biblioteki libwebtopay w potrzebnym formacie:

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. Najnowszą wersję tylko pliku libwebtopay/WebToPay.php można pobrać pod następującym adresem:

Możesz także pobrać wersjowany wariant (z Mercurial VCS):

$ hg clone https://bitbucket.org/paysera/libwebtopay/

Możesz także pobrać wersjowany wariant .NET (z GitHub):

$ git clone https://github.com/evp/webtopay-lib-dotnet.git

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:

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

Uwaga: w adresie podana droga do katalogu demo moż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).

Struktura informacji o wiadomości

Paysera przesyła odpowiedź a przez Ciebie wskazany adres callbackurl. Do przez Ciebie wskazanego callbackurl dodawane są dodatkowe parametry GET:

  • data - zakodowane parametry ze strony internetowej Paysera. Używane jest takie same kodowanie, jak i formując zapytanie macro. Aby otrzymać parametry, należy wykonać 3 działania:
    1. Zmienić symbole "-" na "+", "_" na "/"
    2. Dekodować wiersz za pomocą kodowania base64
    3. otrzymać macierz danych z rezultatu, który jest zbiorem zakodowanych URL parametrów
    Przykład w języku PHP:
    $params = array();
    parse_str(base64_decode(strtr($_GET['data'], array('-' => '+', '_' => '/'))), $params);
    //use $params
  • ss1 - podpis parametru data, niekorzystając ze schematu prywatnych-publicznych kluczy. Algorytm utworzenia podpisu:
    ss1 = md5(data + password)
  • ss2 - wygenerowany za pomocą algorytmu SHA-1 podpis parametru data, korzystając ze shcematu prywatnych-publicznych kluczy. Publiczny klucz Paysera, używany podpisując dane, można znaleźć pod adresem https://www.paysera.com/download/public.key

Po otrzymaniu odpowiedzi od systemu Paysera, musisz sprawdzić, czy prawidłowy jest chociaż by jeden z przesłanych parametrów. Jeżeli jest możliwość, zawsze sprawdzaj podpis (także i) wyższego poziomu bezpieczeństwa ss2.

Kodowane parametry

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.
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
projectid Unikalny numer projektu. Tylko potierdzone projekty mogą przyjmować płatności.
version Numer wersji specyfikacji (API) systemu platniczego Paysera.