this guide

Transkrypt

this guide
Homepay Sp. z o.o.
ul. Grzybowska 87
00-844 Warszawa
tel./fax: +48.22 266 85 25/24
[email protected]
http://homepay.pl
Dokumentacja techniczna usług paysafecard dla serwisu http://homepay.pl
(wersja: 1.0.1; ostatnia modyfikacja: 9 czerwiec 2016)
Dokumentacja techniczna
1. Tworzenie nowej płatności
W celu utworzenia nowej płatności należy na swojej stronie umieścić odpowiedni formularz
wysyłany metodą HTTP/POST, który przekieruje klienta do serwisu Homepay (patrz: Adres
aplikacji Homepay). Lista parametrów oraz ich znaczenie zawarta jest w punkcie: Parametry
płatności paysafecard.
Po zakończonej płatności Klient zostanie przekierowany na adres HTTP Adres powrotny (płatność
OK) lub Adres powrotny (błąd płatności). Może się też zdarzyć, że Klient nie powróci wcale do
aplikacji Partnera, dlatego informacja przekazywana za pomocą tych adresów nie ma znaczenia
wiążącego, nie można na jej podstawie podejmować żadnych decyzji dotyczących płatności.
Sposób przekazywania informacji o transakcjach jest opisany na podstronie: Odbiór informacji o
płatności.
Przykładowy formularz z minimalną liczbą parametrów:
<form method="post" name="paysafecard" action="https://ssl.homepay.pl/paysafecard/">
<input type="hidden" name="uid" value="1">
<input type="hidden" name="public_key" value="d41d8cd98f00b204e9800998ecf8427e">
<input type="hidden" name="amount" value="100">
<input type="hidden" name="crc" value="71b9e2e31162837a421d3e3a8e41d828">
</form>
2. Parametry płatności paysafecard
Parametr Wymagany
Typ
Znaczenie
uid
Tak
INT
identyfikator użytkownika – odbiorcy płatności w
systemie Homepay
public_key
Tak
STR {32}
klucz publiczny dla płatności paysafecard nadany przez
Homepay1 służący do wygenerowania podpisu
amount
Tak
INT
label
Nie
STR {0,64}
control
Nie
STR {0,200} dowolna informacja zdefiniowana przez Partnera lub
aplikację Partnera przekazywana pod Adres powiadomień
o przebiegu płatności
success_url
Nie
STR {0,700} adres2 powrotny (płatność OK) na który Klient zostanie
przekierowany po poprawnej płatności
failure_url
Nie
STR {0,700} adres2 powrotny (błąd płatności) na który Klient zostanie
przekierowany w przypadku błędu
notify_url
Nie
STR {0,700} adres2 do odbioru informacji o płatności
crc
Tak
STR {32}
kwota w groszach
opis transakcji widoczny na wyciągach
suma kontrolna przesyłanych parametrów formularza 3
Wszelkie wartości tekstowe z powyższego formularz przekazywane do Homepay należy kodować
w UTF-8.
1/4
Homepay Sp. z o.o.
ul. Grzybowska 87
00-844 Warszawa
tel./fax: +48.22 266 85 25/24
[email protected]
http://homepay.pl
1
Klucz publiczny paysafecard dostępny jest w panelu partnera Homepay w zakładce paysafecard
→ Ustawienia. Więcej informacji w punkcie: Podpisywanie formularza.
2
Wszystkie adresy przekazywane do Homepay należy, ze względu na znaki specjalne, poddać
kodowaniu URL (URL encoding, application/x-www-form-urlencoded, znak spacji zamieniany na
'+'), np. w PHP służy do tego funkcja urlencode.
3
Więcej informacji w punkcie: Podpisywanie formularza.
3. Statusy transakcji
Status
Opis
0
nowa
1
rozpoczęta
2
zakończona
3
przetestowana (tylko dla trybu testowego)
4
odrzucona
5
wygasła
4. Adres aplikacji Homepay
Adres URL dla aplikacji Homepay dla płatności paysafecard to:
https://ssl.homepay.pl/paysafecard/
5. Podpisywanie formularza
Aplikacja Partnera musi dodać do formularza płatności paysafecard sumę kontrolną wszystkich
przekazywanych parametrów. W tym celu do formularza dodajemy specjalny parametr: crc.
Algorytm generowania podpisu formularza:
a) Posortuj wszystkie pola formularza zgodnie z tabelą Parametry płatności paysafecard.
b) Dokonaj konkatenacji wartości wszystkich pól formularza zgodnie z wcześniej
wyznaczonym porządkiem.
c) Do tak powstałego ciągu znaków dodaj na końcu swój klucz prywatny paysafecard.
Klucz prywatny paysafecard dostępny jest w panelu partnera Homepay w zakładce
paysafecard → Ustawienia. UWAGA! Klucza prywatnego nie należy podawać w żaden
sposób do widoku publicznego (np. jako pole formularza w HTML), służy on wyłącznie
do ostatecznego podpisania formularza, a ujawnienie go naraża Partnera na możliwość
oszustwa.
d) Cały ciąg należy poddać haszowaniu algorytmem MD5.
W przypadku, gdy wartość crc zostanie błędnie wyliczona lub zostaną zmienione wartości innych
przekazywanych parametrów płatność zostanie odrzucona przez Homepay, a Klientowi zostanie
wyświetlony błąd przebiegu płatności.
Pseudokod algorytmu generowania podpisu parametrów formularza:
generate_crc(form, privateKey) {
content = ""
foreach value in form {
content = content + value
}
content = content + privateKey
return md5(content)
}
2/4
Homepay Sp. z o.o.
ul. Grzybowska 87
00-844 Warszawa
tel./fax: +48.22 266 85 25/24
[email protected]
http://homepay.pl
Podpis przykładowego formularza
Dokonanie konkatenacja wartości wszystkich pól formularza z dodanym na końcu swoim kluczem
prywatnym.
W
tym
przykładzie
użyjemy
fałszywego
klucza
publicznego
d41d8cd98f00b204e9800998ecf8427e oraz prywatnego 098f6bcd4621d373cade4e832627b4f6:
1d41d8cd98f00b204e9800998ecf8427e100098f6bcd4621d373cade4e832627b4f6
Powyższa wartość jest użyta do podpisu po wykonaniu haszowania MD5, którego wynik to:
71b9e2e31162837a421d3e3a8e41d828
Element formularza HTML zawierający wygenerowany podpis:
<input type="hidden" name="crc" value="71b9e2e31162837a421d3e3a8e41d828">
6. Odbiór płatności
Podając w formularzu wartości dla parametru Adres odbioru informacji o płatności każde
zakończenie płatności (niezależnie od statusu) raportowane jest przez żądanie HTTP/POST pod
wskazany adres (np. do aplikacji Partnera). Powiadomienia wysyłane są natychmiast po zmianie
statusu płatności. Wszelkie informacje dotyczące płatności znajdują się w parametrze tablicy POST
żądania o nazwie: json, który zawiera dane w tabeli w formacie JSON:
Parametr
Typ
Znaczenie
psc_id
INT
identyfikator transakcji Homepay
psc_usr_id
INT
identyfikator Partnera w Homepay
psc_time
INT
znacznik czasu (UNIX timestamp) ostatniej zmiany statusu
transakcji
psc_status
ENUM
status transakcji, patrz punkt: Statusy transakcji
psc_amount
DECIMAL(10,2) kwota transakcji
psc_provision
DECIMAL(1,3) procent prowizji Homepay
psc_email
STR {1,100}
adres e-mail klienta dokonującego płatności podany na
stronie wpłaty paysafecard Homepay
psc_merchant_label
STR {0,64}
opis transakcji widoczny na wyciągach
psc_merchant_data
STR {0,200}
dowolna informacja zdefiniowana przez Partnera lub
aplikację Partnera w formularzu
Przykładowe dane wysyłane przez Homepay:
[{"psc_id":123,"psc_usr_id":1,"psc_time":1234567890,"psc_status":3,"psc_amount":1.23,"psc_provision":0.15,"psc_
email":"[email protected]","psc_merchant_label":"Test","psc_merchant_data":10}]
Dane JSON należy konwertować w sposób czytelny dla aplikacji Partnera, np. w PHP przez funkcję
json_decode do tablicy (array) lub obiektu PHP.
Homepay oczekuje od aplikacji Partnera potwierdzenia odbioru i prawidłowego odczytu danych
poprzez zwrócenie pustej strony zawierającej wyłącznie tablicę JSON z parametrami:
Parametr
psc_id
psc_return
Typ
Znaczenie
INT
identyfikator transakcji Homepay przekazany przez Homepay
w żądaniu przychodzącym
INT, STATIC
1 – w przypadku prawidłowego odbioru
0 – w przypadu błędu
3/4
Homepay Sp. z o.o.
ul. Grzybowska 87
00-844 Warszawa
tel./fax: +48.22 266 85 25/24
[email protected]
http://homepay.pl
Przykładowe dane oczekiwane przez Homepay:
[{"psc_id":123,"psc_return":1}]
W przypadku nieodebrania powiadomienia, błędnego odbioru powiadomienia lub zwrócenia błędu
przy odbiorze powiadomienia Homepay podejmie 50 prób ponownego powiadomienia, gdzie każde
kolejne będzie wysyłane w 60 sekundowym odstępie od poprzedniego. Po przekroczeniu limitu
błędnych prób Homepay zaniecha dalszej wysyłki powiadomień niezależnie od stanu transakcji
oraz informacji odebranych przez klienta i statusu ich przetworzenia.
UWAGA! Aplikacja Partnera jest zobowiązana do sprawdzenia adresu IP z którego pochodzą
przychodzące informacje oraz potwierdzenie, czy adres pochodzi z puli adresacji IP Homepay
dostępnej pod adresem: http://get.homepay.pl (adresy oddzielane znakiem przecinka)
7. Tryb testowy
Homepay udostępnia swoim Partnerom tryb symulacji płatności, tzw. „tryb testowy”, który pozwala
na przetestowanie integracji na linii Partner ↔ Homepay. W trybie testowym wszystkie płatności są
automatycznie akceptowane bez kontaktu z paysafecard i konieczności podawania kodów kart.
Tryb testowy można włączyć w Panelu Partnera Homepay w zakładce paysafecard → Ustawienia.
Aby wyłączyć tryb testowy należy wykonać identyczną czynność.
UWAGA! Tryb testowy można włączyć i wyłączyć wyłącznie manualnie. Pozostawienie
włączonego trybu testowego może narazić Partnera na straty w związku z brakiem poboru opłat.
8. Przykładowy skrypt PHP
Przykładowy skrypt obustronnej komunikacji dla integracji paysafecard w Homepay w języku PHP
dostępny jest w Panelu Partnera Homepay w zakładce Homepay → Dokumentacje w tabeli
„Przykładowe skrypty – pozostałe”.
W przypadku problemów z integracją należy kontaktować się z działem technicznym pod nr tel
+48.22 266 85 27 lub pod adresem e-mail [email protected]
4/4