Integracja za pomocą specyfikacji
Dane formy przesyłaj za pomocą metody GET lub POST, po adresem https://www.paysera.com/pay/
Zawsze są przesyłane 2 pola: data i sign.
Utworzenie pól z parametrów
-
Wszystkie parametry są połączane w wiersz o kodowaniu URL. Na przykład:
array('param1' => 'abc', 'param2' => 'Some string with symbols %=&') 'param1=abc¶m2=Some+string+with+symbols+%25%3D%26'
W języku PHP te działania wykonuje funkcjahttp_build_query
. -
Otrzymany wiersz jesz kodowany za pomocą kodowania base64. Na przykład:
'param1=abc¶m2=Some+string+with+symbols+%25%3D%26' 'cGFyYW0xPWFiYyZwYXJhbTI9U29tZStzdHJpbmcrd2l0aCtzeW1ib2xzKyUyNSUzRCUyNg=='
W języku PHP te działania wykonuje funkcjabase64_encode
. -
W otrzymanym zakodowanym wierszu symbole "/" są zamieniane na symbole "_",
"+" na "-". Otrzymujemy kodowanie base64, które można bezpiecznie przekazać poprzez
URL bez dodatkowego przetwarzania. Na przykład:
'MViDYlV7V0iHR2w2OkJjRFFpY11hizJDhk+EZjl/' 'MViDYlV7V0iHR2w2OkJjRFFpY11hizJDhk-EZjl_'
W języku PHP te działania wykonuje funkcjastr_replace
lubstrtr
. -
Otrzymany ostateczny wiersz jest podpisywany -
generowany jest parametr sign. Algorytm generacji parametru sign:
sign = md5(data + password)
Tutaj md5 - funkcja kryptograficzna, data - zakodowane parametry, password - hasło projektu.
Możliwe 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:
Jeżeli dane kryteria nie będą podane, będzie wyświetlać się domyślny tekst tytułu płatności. Przykład tytułu płatności: Płatność za towar według zamówienia [order_nr] na stronie internetowej [site_name]. |
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 | 20 | 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. Preferowany. Obowiązkowy wykonując płatność niektórymi sposobami zapłaty. |
p_countrycode | 2 | Nie | Kod państwa kupującego. Kody państw można znaleźć tutaj. Preferowany. Obowiązkowy wykonując płatność niektórymi sposobami zapłaty. |
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. |
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: "Zarządzanie projektami" -> "Usługa pobierania płatności" (przy wybranym projekcie) -> "Pozwól na płatności testowe" (zaznacz). |
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: Informujemy, że usługi informacji o rachunku oraz inicjowania płatności zostaną wyświadczone przez Paysera zgodnie z warunki świadczenia tych usług. Kontynuując płatność potwierdzasz, że akceptujesz świadczenie tych usług oraz warunki ich świadczenia. |
* Długość ostateczna może się różnić w zależności od specyfikacji typu płatności
Więcej informacji na temat 'callback' patrz rozdział - Callback .