Dokumentacja API
Jak podłączyć płatności doliczane do rachunku telefonicznego.
Przebieg płatności
Trzy kroki, od utworzenia płatności do powrotu klienta.
- Utworzenie płatności — Twój serwer wysyła żądanie do nas i dostaje adres strony płatności.
- Przekierowanie klienta — klient potwierdza płatność u swojego operatora.
- Powiadomienie i powrót — wysyłamy powiadomienie na Twój adres i odsyłamy klienta do serwisu.
1. Utworzenie płatności
Żądanie wykonywane wyłącznie z serwera, przez HTTPS.
Adres
POST https://paybylink.pl/direct-biling/
Format
application/json
Autoryzacja
Basic Auth — login i hasło serwisu z zakładki Zarządzaj
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| price | int | tak | Kwota do zapłaty przez klienta, w groszach, netto. |
| description | string | tak | Opis produktu lub usługi, widoczny dla klienta. |
| control | string | tak | Dowolne pole do Twojego użytku, np. identyfikator zamówienia. |
| signature | string | tak | Podpis SHA-256 chroniący przed rozpoczęciem płatności przez osoby nieupoważnione. |
Podpis żądania wyliczasz tak:
hash('sha256', $price . '|' . $description . '|' . $control . '|' . $hash)
hash to klucz integracyjny Twojego serwisu. Separatorem jest znak |.
2. Powiadomienie o płatności
Wysyłamy je na adres skonfigurowany w serwisie, metodą POST.
| Pole | Opis |
|---|---|
| status | Wynik płatności: AUTHORIZED lub REJECT. |
| userid | Identyfikator konta przyjmującego płatność. |
| shopid | Identyfikator Twojego serwisu. |
| pid | Unikalny numer transakcji w naszym systemie. |
| price | Wartość netto transakcji w groszach. |
| control | Pole przekazane przez Ciebie przy tworzeniu płatności. |
| description | Opis płatności podany przy jej tworzeniu. |
| date_pay | Data i godzina rozliczenia płatności. |
| commission | Prowizja naliczona do transakcji. |
| carrierID | Operator: play, tmobile, orange lub plus. |
| signature | Podpis pozwalający zweryfikować, że powiadomienie pochodzi od nas. |
Przykładowy pakiet:
Array
(
[status] => AUTHORIZED
[userid] => 1
[shopid] => 16
[pid] => db-1514901015_2458904
[price] => 1
[control] => 17777
[description] => zakup
[date_pay] => 2018-09-22 12:22:44
[commission] => 75
[carrierID] => play
[signature] => 6b4c64165a51d4cbb700534215c79dfc786700a15a2782c9e13deaabe02a3322
)
Podpis powiadomienia sprawdzasz tak:
hash('sha256', $hash
. '|' . $_POST['status']
. '|' . $_POST['userid']
. '|' . $_POST['shopid']
. '|' . $_POST['pid']
. '|' . $_POST['price']
. '|' . $_POST['control']
. '|' . $_POST['description']
. '|' . $_POST['date_pay']
. '|' . $_POST['commission']
. '|' . $_POST['carrierID'])
Zanim zaksięgujesz płatność
Trzy sprawdzenia, bez których integracja nie jest bezpieczna.
- Zweryfikuj podpis każdego powiadomienia. Bez tego każdy może podszyć się pod nasz system.
- Sprawdź adres IP nadawcy. Aktualną listę udostępniamy pod https://paybylink.pl/psc/ips/ — pobieraj ją na bieżąco.
- Porównaj shopid i userid z własną konfiguracją, zanim uznasz płatność za swoją.
Ręczne sprawdzenie statusu
Gdy powiadomienie nie dotarło albo chcesz potwierdzić stan płatności.
Adres
POST https://paybylink.pl/direct-biling/transactionStatus.php
Format
application/json
Autoryzacja
Basic Auth, tak jak przy tworzeniu płatności
Kody błędów
Zwracane przy tworzeniu płatności.
| Kod | Znaczenie |
|---|---|
| 100 | Problem z autoryzacją do API — sprawdź login i hasło serwisu. |
| 101 | Brak wymaganych parametrów albo mają nieprawidłowy format. |
| 102 | Serwis nie ma skonfigurowanych adresów powrotnych. |
| 103 | Nieprawidłowa kwota. |
| 104 | Nieprawidłowy format pola description. |