2005-2011 PayU S.A. Wersja 1.57, 04.10.2011
Page 2
Page 3
Wraz z rosnącym zainteresowaniem profesjonalnymi narzędziami dedykowanymi do zbiorczej obsługi płatności za sprzedaż usług oraz towarów w Internecie, pragniemy przedstawić nowy produkt wdrożony przez firmę PayU SA, o nazwie Platnosci.pl. Page 4 Platnosci.pl to serwis adresowany do wszystkich serwisów o charakterze e-commerce, które dla swojej aktywności wymagają profesjonalnych rozwiązań płatniczych. Platnosci.pl to szybkie, bezpieczne i proste metody zapłaty za towary oraz usługi oferowane w Internecie, tak aby klienci odczuwali pełen komfort i wygodę. Lata doświadczeń, poparte profesjonalnym zapleczem technicznym oraz prawnym, pozwalają nam zaproponować bezkonkurencyjny system do obsługi płatności internetowych.
Platnosci.pl - aplikacja realizująca rozliczenie płatności Firma - podmiot korzystający z mechanizmów Platnosci.pl w celu odbioru środków pieniężnych od klienta Page 5 Sklep - sklep internetowy odbierający płatności; jedna firma może posiadać kilka sklepów POS - punkt usługowy, realizujący odbieranie płatności, dla danego punktu usługowego są definiowane wszystkie parametry usługi; jeden Sklep może posiadać kilka punktów usługowych Klient - osoba dokonująca płatności UrlPlatnosci.pl - adres URL pod jakim jest zainstalowana aplikacja Platnosci.pl, https://www.platnosci.pl/paygw/ UrlPozytywny - adres URL aplikacji Sklepu pod jaki Klient będzie przekierowany po prawidłowym rozpoczęciu transakcji UrlNegatywny - adres URL aplikacji Sklepu pod jaki Klient będzie przekierowany po błędnym rozpoczęciu transakcji UrlOnline - adres URL aplikacji Sklepu pod jaki będą wysyłane za pomocą metody POST informacje o zmianie stanu płatności - raporty
wartość opis 100 brak lub błędna wartość parametru pos_id 101 brak parametru session_id 102 brak parametru ts 103 brak lub błędna wartość parametru sig 104 brak parametru desc 105 brak parametru client_ip 106 brak parametru first_name 107 brak parametru last_name 108 brak parametru street 109 brak parametru city 110 brak parametru post_code 111 brak parametru amount (lub/oraz amount_netto dla usługi SMS) 112 błędny numer konta bankowego 113 brak parametru email 114 brak numeru telefonu 200 inny chwilowy błąd 201 inny chwilowy błąd bazy danych 202 POS o podanym identyfikatorze jest zablokowany 203 niedozwolona wartość pay_type dla danego pos_id 204 podana metoda płatności (wartość pay_type) jest chwilowo zablokowana dla danego pos_id, np. przerwa konserwacyjna bramki płatniczej 205 kwota transakcji mniejsza od wartości minimalnej 206 kwota transakcji większa od wartości maksymalnej 207 przekroczona wartość wszystkich transakcji dla jednego klienta w ostatnim przedziale czasowym 208 POS działa w wariancie ExpressPayment lecz nie nastąpiła aktywacja tego wariantu współpracy (czekamy na zgodę działu obsługi klienta) 209 błędny numer pos_id lub pos_auth_key 500 transakcja nie istnieje 501 brak autoryzacji dla danej transakcji 502 transakcja rozpoczęta wcześniej 503 autoryzacja do transakcji była już przeprowadzana 504 transakcja anulowana wcześniej 505 transakcja przekazana do odbioru wcześniej 506 transakcja już odebrana 507 błąd podczas zwrotu środków do klienta 599 błędny stan transakcji, np. nie można uznać transakcji kilka razy lub inny, prosimy o kontakt 999 inny błąd krytyczny - prosimy o kontakt Page 6 value description 1 nowa 2 anulowana 3 odrzucona 4 rozpoczęta
5 oczekuje na odbiór 7 płatność odrzucona, otrzymano środki od klienta po wcześniejszym anulowaniu transakcji, lub nie było możliwości zwrotu środków w sposób automatyczny, sytuacje takie będą monitorowane i wyjaśniane przez zespół Platnosci.pl 99 płatność odebrana - zakończona 888 błędny status - prosimy o kontakt Page 7 Status 2 - anulowana pojawi się automatycznie po określonej liczbie dni (punkt 2.4) od utworzenia lub rozpoczęcia transakcji (Statusy 1 lub 4) jeśli do tego czasu nie zostanie ona rozliczona (nie wpłyną środki do systemu Płatności.pl). Status ten pojawi się również po wywołaniu akcji anuluj w panelu administracyjnym bądź po wywołaniu metody Payment/cancel dla transakcji będącej w statusie 1 lub 4. Status 3 - odrzucona pojawi się wówczas, gdy użytkownik dla transakcji będącej w statusie 5 - oczekuje na odbiór wywoła akcję anuluj w panelu lub metodę Payment/cancel, a wybrany typ płatności nie pozwala na automatyczne zwrócenie środków do klienta (czyli w większości dostępnych typów płatności). Status 3 - odrzucona pojawi się również gdy w przypadku anulowanej (status 2) transakcji nastąpi jej rozliczenie (wpływ środków do systemu Płatności). W przypadku odebrania transakcji (akcja odbierz w panelu lub wywołanie metody Payment/confirm ), która posiada status 3 - odrzucona oraz gdy użytkownik nie ma włączonych autoodbiorów wpłat, status transakcji zmieni się na 5 - oczekuje na odbiór, wówczas należy jeszcze raz wykonać akcję odbierz w panelu lub wywołać metodę Payment/confirm, by zakończyć transakcję czyli przejść do statusu 99 - zakończona. W przypadku gdy zaś chcemy zwrócić do klienta środki z transakcji będącej w statusie 3, należy wykonać dla tej transakcji akcję anuluj w panelu bądź wywołać metodę Payment/cancel. Status 4 - rozpoczęta jest stanem pośrednim i nie musi wystąpić transakcja może przejść do stanu oczekuje na odbiór lub zakończona (w przypadku włączonej opcji autoodbiór wpłat) bezpośrednio ze stanu nowa. Status 5 - oczekuje na odbiór pojawi się tylko wtedy gdy mamy wyłączoną opcje Automatyczne odbieranie, w takim przypadku Sklep ma określoną ilość dni na odebranie płatności (czas ten jest zgodny z czasem automatycznego anulowania płatności podanym w tabeli w punkcie 2.4 i ustalany odrębnie dla każdego typu płatności). Gdy płatność taka nie zostanie odebrana w odpowiednim terminie zostanie ona automatycznie anulowana. Odebranie płatności należy wykonać wywołując metodę Payment/confirm lub poprzez panel administracyjny serwisu. Status 7 - zwrot środków do klienta pojawi się wówczas gdy transakcja ma status 3 odrzucona a użytkownik wykona akcję anuluj w panelu lub wywoła metodę Payment/cancel.
W przypadku wyłączonej opcji autoodbioru wpłat : Page 8 W przypadku włączonej opcji autoodbioru wpłat :
parametr pole wymagane typ danych opis pos_id tak INT wartość nadana przez Platnosci.pl pos_auth_key tak STR {7,7} wartość nadana przez Platnosci.pl pay_type nie ENUM parametr opcjonalny, zalecamy nie podawać tego parametru 1 session_id tak STR {1,1024} identyfikator płatności - unikalny dla klienta (para identyfikatorów pos_id, session_id musi być unikalna w systemie - czyli session_id nie może się powtórzyć w ramach tego samego POS a) amount tak NUM {1,10} kwota w groszach desc tak STR {1,50} krótki opis - pokazywany klientowi, trafia na wyciągi order_id nie STR {1,1024} numer zamówienia desc2 nie STR {0,1024} dowolna informacja trsdesc nie STR {0,27} dodatkowy opis transakcji dla przelewów bankowych first_name tak STR {0,100} imię last_name tak STR {0,100} nazwisko street nie STR {0,100} ulica street_hn nie STR {0,10} numer domu street_an nie STR {0,10} numer mieszkania city nie STR {0,100} miasto post_code nie STR {0,20} kod pocztowy country nie STR {0,100} kod kraju klienta (dwuliterowy) zgodnie z ISO-3166 http://www.chemie.fuberlin.de/diverse/doc/iso_3166.html email tak STR {0,100} adres email phone nie STR {0,100} numer telefonu, można podać kilka numerów rozdzielając je przecinakami language nie ENUM kod języka zgodnie z ISO-639 http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt (aktualnie pl, en) client_ip tak STR {7,15} adres IP klienta w formacie D{1,3}.D{1,3}.D{1,3}.D{1,3} js nie ENUM ( 0, 1 ) wartość określa czy przeglądarka klienta ma włączoną obsługę JavaScript payback_login nie STR {0,40} login PAYBACK, Klienta, dla którego zostaną przyznane punkty PAYBACK sig nie STR {32} suma kontrolna przesyłanych parametrów formularza 2 ts nie STR znacznik czasowy wykorzystywany do obliczenia wartości sig Page 9 1 W przypadku braku parametru pay_type wyświetli się okno z wyborem wszystkich typów płatności dostępnych dla danego pos_id (lista typów płatności punkt 2.4) 2 Więcej informacji punkt 3.6
W zależności od typu płatności, może być wymagane podanie wartości oznaczonych w tej tabelce jako niewymagane. Dodatkowe informacje znajdują się przy opisach poszczególnych typów płatności, punkt (punkt 2.4) nazwa wartości transakcji czas auto anulowania (dni) opis m 0,50-999999,99 10 mtransfer - mbank n 0,50-999999,99 10 MultiTransfer - MultiBank w 0,50-7000,00 3 10 BZWBK - Przelew24 o 0,50-999999,99 10 Pekao24Przelew - Bank Pekao i 0,50-999999,99 10 Płacę z Inteligo d 0,50-999999,99 10 Płać z Nordea p 0,50-999999,99 10 Płać z ipko h 0,50-999999,99 10 Płać z BPH g 0,50-999999,99 10 Płać z ING l 0,50-999999,99 10 Credit Agricole u 0,50-999999,99 10 Eurobank me 0,50-999999,99 10 Meritum Bank ab 0,50-999999,99 10 Płacę z Alior Bankiem wp 0,50-999999,99 10 Przelew z Polbank wm 0,50-999999,99 10 Przelew z Millennium wk 0,50-999999,99 10 Przelew z Kredyt Bank wg 0,50-999999,99 10 Przelew z BGŻ wd 0,50-999999,99 10 Przelew z Deutsche Bank wr 0,50-999999,99 10 Przelew z Raiffeisen Bank wc 0,50-999999,99 10 Przelew z Citibank wn 0,50-999999,99 10 Przelew z Invest Bank wi 0,50-999999,99 10 Przelew z Getin Bank wy 0,50-999999,99 10 Przelew z Bankiem Pocztowym c 1,01-7000,00 4 5 karta kredytowa b 0,50-999999,99 10 Przelew bankowy t 0,50-1000,00 1 płatność testowa - zostanie wyświetlony formularz, w którym można bezpośrednio zmienić status transakcji Page 10 3 Jest to również limit miesięczny dla jednego klienta. 4 Istnieje możliwośd indywidualnego ustalenia limitów.
Typ test służy do generowania płatności testowych, środki pozyskane z takich transakcji nie są przekazywane do Sklepu, typ ten nie wymaga żadnych dodatkowych parametrów dla nowej płatności. Transakcje testowe są domyślnie wyłączone, są również automatycznie blokowane po 3 dniach od ostatniego ich użycia. W celu przeprowadzania testów należy aktywować ten rodzaj płatności za pomocą opcji Moje sklepy -> Nazwa sklepu -> Lista punktów płatności -> Nazwa punktu, następnie zmieniamy status dla Płatności testowej poprzez kliknięcie w kolumnie Stan. Page 11
Integracja z Platnosci.pl W aplikacji Platnosci.pl każdy Sklep może posiadać wiele punktów przyjmujących płatności zwanych POS. Dla każdego POS a Sklep podaje: UrlPozytywny, UrlNegatywny oraz UrlOnline. Platnosci.pl podaje dla Sklepu identyfikator utworzonego POS a, ciągi znaków key1 i key2 (punkt 3.4), dane te dostępne są w panelu administracyjnym aplikacji Platnosci.pl, po zarejestrowaniu odpowiednich usług. Page 12 Wszystkie potrzebne dane konfiguracyjne znajdą Państwo w Moje sklepy -> Nazwa sklepu -> Lista punktów płatności -> Nazwa punktu. Po zakończonym procesie płatności Klient może zostać przekierowany pod podany przez Sklep adres URL. W zależności od statusu transakcji zostanie wykorzystany odpowiedni adres UrlPozytywny lub UrlNegatywny. Adresy powrotu do Sklepu mają tylko charakter informacyjny, nie można na ich podstawie podejmować żadnych decyzji. Adresy powrotu mogą zawierać następujące stałe, które zostaną zamienione na odpowiednie wartości zgodnie z poniższą tabelką: stała opis %transid% identyfikator nowej transakcji utworzonej w aplikacji Platnosci.pl %posid% wartości pos_id %paytype% wartości pay_type %sessionid% wartości session_id %amountps% wartości amount - jako separator kropka %amountcs% wartości amount - jako separator przecinek %orderid% wartości order_id %error% numer błędu zgodnie z tabelką podaną w punkcie 2.1 jest wykorzystywany tylko przy UrlNegatywny Przykłady: http://www.sklep.pl/status_ok.html?pos_id=%posid%&session_id=%sessionid% http://www.sklep.pl/status_error.html?pos_id=%posid%&session_id=%sessionid%&error=%error%
Adres URL dla aplikacji Platnosci.pl tworzymy według następującego schematu: gdzie: UrlPlatnosci.pl Kodowanie NazwaProcedury URL = UrlPlatnosci.pl/Encoding/ProcedureName Adres bazowy aplikacji Platnosci.pl (https://www.platnosci.pl/paygw) jedna z wartości: ISO, UTF, WIN jedna z wartości: NewPayment, Payment/get, Payment/confirm, Payment/cancel (Payment/get2 na potrzeby usługi SMSPremium) Page 13 W zależności od tego jakiej strony kodowej używa aplikacja Sklepu należy wybrać odpowiednie kodowanie przy odwołaniu do procedur Platnosci.pl, i tak: nazwa w Platnosci.pl użyte kodowanie ISO ISO-8859-2 UTF UTF-8 WIN Windows-1250 Dla procedur: Payment/get, Payment/confirm, Payment/cancel, możemy jeszcze podać format w jakim mają być przesłane dane, czyli mamy następujący schemat: URL = UrlPlatnosci.pl/Encoding/ProcedureName/Format gdzie Format może być jedną z wartości: xml lub txt, domyślnie jest wybierany xml. Każde przesłanie polecania oraz każda odpowiedź generowana przez Platnosci.pl zawiera podpis MD5, dzięki temu można zweryfikować poprawność danych. Podpisy tworzymy według następującego schematu (znak + - oznacza operację łączenia łańcuchów znaków): gdzie: sig = md5 (pos_id + session_id + value 1 + value 2 +... + value n + ts + key ) pos_id session_id wartosc 1... wartosc n ts key wartość nadana przez Platnosci.pl identyfikator płatności - unikalny dla klienta lista dodatkowych wartości, zostanie podana przy opisie poszczególnych metod dowolny losowy ciąg znaków, proponowany aktualny czas w sekundach ciąg znaków znany przez Platnosci.pl oraz Sklep
W aplikacji Platnosci.pl dla danego pos_id są przypisane dwie wartości key, key1 - klucz używany podczas sprawdzania podpisu przysłanego przez Sklep key2 - klucz używany do generowania podpisu wysyłanego do Sklepu W celu utworzenia nowej płatności należy na swojej stronie umieścić odpowiedni formularz, który przekieruje klienta do serwisu Platnosci.pl do procedury NewPayment (punkt 3.3). Zalecane jest korzystanie z metody POST, jeżeli jest to utrudnione można ewentualnie użyć metody GET. Lista parametrów oraz ich znaczenie zawarta jest w punkcie 2.3. Page 14 Po zakończonej płatności Klient zostanie przekierowany na adres UrlPozytywny lub UrlNegatywny za pomocą metody GET. Może się też zdarzyć, że Klient nie powróci wcale do aplikacji Sklepu 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 w punkcie 3.7. Przykładowy formularz z minimalną liczbą parametrów: <form action= https://www.platnosci.pl/paygw/iso/newpayment method= POST name= payform > Name: <inputtype= text name= first_name value= ><br/> Surname: <inputtype= text name= last_name value= ><br/> E-mail: <inputtype= text name= email value= ><br/> <input type= hidden name= pos_id value= 12345 > <input type= hidden name= pos_auth_key value= wq2io3q > <input type= hidden name= session_id value= 1234565 > <input type= hidden name= amount value= 1000 > <input type= hidden name= desc value= Opispłatności > <input type= hidden name= client_ip value= 123.123.123.123 > <input type= hidden name= js value= 0 > <input type= submit value= Zapłać poprzez Platnosci.pl > </form> <script language= JavaScript type= text/javascript > <!-- document.forms['payform'].js.value=1; --> </script>
Opcjonalnie aplikacja Sklepu może dodać do formularza nowej płatności (NewPayment) sumę kontrolną wszystkich przekazywanych parametrów. W celu wykorzystania tej opcji dodajemy do formularza dwa dodatkowe parametry: ts sig znacznik czasowy, wartość potrzebna w celu weryfikacji podpisu, dowolny losowy ciąg znaków, np. czas w sekundach podpis przesłanej informacji Page 15 gdzie wartość sig obliczamy według następującego wzoru: sig = md5 ( pos_id + pay_type + session_id + pos_auth_key + amount + desc + desc2 + trsdesc + order_id + first_name + last_name + payback_login + street + street_hn + street_an + city + post_code + country + email + phone + language + client_ip + ts + key1 ) Jeżeli dana wartość nie jest przekazywana w formularzu tworzącym nową płatność używamy pustego ciągu znaków. W przypadku gdy wartość sig zostanie błędnie wyliczona lub zostaną zmienione wartości innych przekazywanych parametrów nowa płatność nie zostanie utworzona. Klient zostanie przekierowany na UrlNegatywny z kodem błędu 103. Aplikacja Sklepu jest zobowiązana do sprawdzania podpisów przekazywanych informacji. Każdorazowa zmian stanu transakcji jest raportowana do aplikacji Sklepu. Na podany adres UrlOnline jest wysyłane żądanie POST z następującymi parametrami: nazwa opis pos_id identyfikator POS a session_id wartość podana przez Sklep w trakcie tworzenia płatności ts znacznik czasowy, wartość potrzebna w celu weryfikacji podpisu sig podpis przesłanej informacji - punkt 3.4 Gdzie wartość sig, obliczamy według następującego wzoru: sig = md5 ( pos_id + session_id + ts + key2 )
Wysłanie komunikatu o zmianie statusu transakcji nie niesie żadnej informacji, szczegóły transakcji i jej aktualny status aplikacja Sklepu MUSI odczytać i odpowiednio przeanalizować samodzielnie za pomocą mechanizmów opisanych w punkcie 3.7.2. Po otrzymaniu takiego wywołania aplikacja Sklepu MUSI w odpowiedzi wysłać ciąg znaków OK, w przypadku otrzymania innej odpowiedzi zostanie ona zapisana w bazie i powiadomienie będzie uznane jako nieodebrane. Page 16 Aplikacja Sklepu powinna uwzględnić sytuację, gdy powiadomienie zostanie wysłane kilka razy dla tej samej transakcji o tym samym statusie. Na każde powtórzone powiadomienie też należy odpowiedzieć OK. Dla jednego POS a w tym samym czasie jest wysyłane jedno żądanie POST, należy jednak uwzględnić możliwość wysłania kilku żądań równolegle dla tego samego POS a. Powiadomienia są wysyłane natychmiast po zmianie statusu płatności, w przypadku gdy powiadomienie nie zostanie odebrane przez aplikację Sklepu zostanie ono wysłane ponownie po zadanym czasie zgodnie z poniższą tabelką: próba opóźnienie 0-10 1 minuta 11-15 3 minuty 16-20 5 minut 21-25 10 minut 26-50 15 minut 51-75 30 minut 75-99 60 minut > = 100 stop wysyłania W celu odczytania aktualnego stanu transakcji należy wywołać procedurę Payment/get (punkt 3.3) metodą POST, podając następujące parametry: nazwa opis pos_id identyfikator POS a session_id wartość podana przez Sklep w trakcie tworzenia płatności ts znacznik czasowy, wartość potrzebna w celu weryfikacji podpisu sig podpis przesłanej informacji - punkt 3.4 Gdzie wartość sig, obliczamy według następującego wzoru: sig = md5 ( pos_id + session_id + ts + key1 )
W odpowiedzi otrzymamy następujące strony zawierające informacje Format txt : status:ok trans_id:7 trans_pos_id:1 trans_session_id:417419 trans_order_id: trans_amount:200 trans_status:5 trans_pay_type:t trans_pay_gw_name:pt trans_desc:wpłatadlatest@test.pl trans_desc2: trans_create:2004-08-2310:39:52 trans_init:2004-08-3113:42:43 trans_sent:2004-08-3113:48:13 trans_recv: trans_cancel: trans_auth_fraud:0 trans_ts:1094205761232 trans_sig:b6d68525f724a6d69fb1260874924759 Page 17 Format xml : <?xml version= 1.0 encoding= UTF-8?> <response> <status>ok</status> <trans> <id>7</id> <pos_id>1</pos_id> <session_id>417419</session_id> <order_id></order_id> <amount>200</amount> <status>5</status> <pay_type>t</pay_type> <pay_gw_name>pt</pay_gw_name> <desc>wpłatadlatest@test.pl</desc> <desc2></desc2> <create>2004-08-2310:39:52</create> <init>2004-08-3113:42:43</init> <sent>2004-08-3113:48:13</sent> <recv></recv> <cancel></cancel> <auth_fraud>0</auth_fraud> <ts>1094205828574</ts> <sig>a95dc2145079b16a3668175279c35736</sig> </trans> </response>
Page 18
W danych odesłanych przez Platnosci.pl wartość sig, obliczamy według następującego wzoru: sig = md5 ( pos_id + session_id + order_id + status + amount + desc + ts + key2 ) Page 19 Znaczenie poszczególnych pól komunikatu opisują poniższe tabelki: Pola podstawowe: pole txt pole xml znaczenie status response/status status przetworzenia komunikatu - dla prawidłowego OK trans_id response/trans/id unikalny identyfikator transakcji nadawany przez Platnosci.pl trans_pos_id response/trans/pos_id identyfikator POS a dla jakiego utworzono transakcję trans_session_id response/trans/session_id wartość nadana przez aplikację Sklepu podczas tworzenia transakcji trans_order_id response/trans/order_id wartość nadana przez aplikację Sklepu podczas tworzenia transakcji trans_amount response/trans/amount aktualna wartość transakcji w groszach trans_status response/trans/status aktualny status transakcji zgodnie z punktem 2.2 trans_pay_type response/trans/pay_type typ płatności zgodnie z punktem 2.4 trans_pay_gw_name response/trans/pay_gw_name nazwa bramki realizującej transakcję - informacja wewnętrzna aplikacji Platnosci.pl trans_desc response/trans/desc wartość nadana przez aplikację Sklepu podczas tworzenia transakcji trans_desc2 response/trans/desc2 wartość nadana przez aplikację Sklepu podczas tworzenia transakcji trans_create response/trans/create data utworzenia transakcji trans_init response/trans/init data rozpoczęcia transakcji trans_sent response/trans/sent data przekazania transakcji do odbioru trans_recv response/trans/recv data odbioru transakcji trans_cancel response/trans/cance data anulowania transakcji trans_auth_fraud response/trans/auth_fraud informacja wewnętrzna aplikacji Platnosci.pl trans_ts response/trans/ts wartość potrzebna do obliczenia podpisu trans_sig response/trans/sig podpis komunikatu - wynik funkcji md5
Pola dodatkowe - dla wybranych typów płatności : - MultiBank, mbank, BZWBK pole txt pole xml znaczenie add_cc_number_hash response/trans/add_cc_number_hash hash numeru konta bankowego nadawcy płatności (pole uzupełniane po pewnym czasie) Page 20 - karta kredytowa pole txt pole xml znaczenie add_cc_number_hash response/trans/add_cc_number_hash hash numeru karty płatniczej nadawcy płatności add_cc_bin response/trans/add_cc_bin BIN - numer identyfikacyjny banku - wystawcy karty - ING pole txt pole xml znaczenie add_cc_number_hash response/trans/add_cc_number_hash hash numeru konta bankowego nadawcy płatności (pole uzupełniane po pewnym czasie) add_cc_number response/trans/add_cc_number numer rachunku bankowego odbiorcy płatności add_owner_name response/trans/add_owner_name nazwa odbiorcy płatności add_owner_address response/trans/add_owner_address adres odbiorcy płatności add_trans_title response/trans/add_trans_title tytuł płatności - przelew bankowy pole txt pole xml znaczenie add_cc_number response/trans/add_cc_number numer rachunku bankowego odbiorcy płatności add_bank_name response/trans/add_bank_name nazwa banku odbiorcy płatności add_owner_name response/trans/add_owner_name nazwa odbiorcy płatności add_owner_address response/trans/add_owner_address adres odbiorcy płatności add_trans_title response/trans/add_trans_title tytuł płatności add_trans_prev response/trans/add_trans_prev link do strony z podglądem druku przelewu bankowego add_trans_add_desc response/trans/add_trans_add_desc dodatkowy opis transakcji umieszczany na druku przelewu bankowego
- płatność testowa pole txt pole xml znaczenie add_test response/trans/add_test zawsze wartość 1 add_testid response/trans/add_testid identyfikator transakcji Odebranie płatności, czyli zatwierdzenie transakcji wykonujemy wywołując procedurę Payment/confirm metodą POST, podając takie same parametry jak w przypadku odczytu informacji o transakcji (punkt 3.7.2). Page 21 Wywoływanie tej metody jest konieczne tylko w przypadku wyłączenia opcji Autoodbiór dla danego typu płatności. W celu anulowania lub odrzucenia płatności wywołujemy procedurę Payment/cancel metodą POST, podając takie same parametry jak w przypadku odczytu informacji o transakcji (punkt 3.7.2). Dla procedur Payment/confirm oraz Payment/cancel otrzymujemy w odpowiedzi następujące strony: Poprawne wykonanie - format txt : status:ok trans_id:7 trans_pos_id:1 trans_session_id:417419 trans_ts:1094206530505 trans_sig:9da7c868407fedae6f1b6aca9054632b Poprawne wykonanie - format xml : <?xml version= 1.0 encoding= UTF-8?> <response> <status>ok</status> <trans> <id>7</id> <pos_id>1</pos_id> <session_id>417419</session_id> <ts>1094205828574</ts> <sig>a95dc2145079b16a3668175279c35736</sig> </trans> </response>
W danych odesłanych przez Platnosci.pl wartość sig, obliczamy według następującego wzoru: sig = md5 ( pos_id + session_id + ts + key2 ) Błąd - format txt : Page 22 status:error error_nr:503 error_message: Błąd - format xml : <?xml version= 1.0 encoding= UTF-8?> <response> <status>error</status> <error> <nr>503</nr> <message></message> </error> </response> Do opisywanych procedur istnieje również interfejs WEBAPI/SOAP znajdujący się pod adresem: https://www.platnosci.pl/paygw/webapi/payments odpowiedni plik WSDL można pobrać z adresu: https://www.platnosci.pl/paygw/webapi/payments?wsdl W przypadku dodatkowych pytań prosimy o kontakt.
parametr pole wymagane typ danych opis pos_id tak INT wartość nadana przez Platnosci.pl pos_auth_key tak STR {7,7} wartość nadana przez Platnosci.pl session_id tak STR {1,1024} identyfikator płatności - unikalny dla klienta amount _netto tak NUM {1,10} kwota w groszach, lista dozwolonych wartości znajduje się poniżej desc tak STR {1,50} krótki opis - pokazywany klientowi, trafia na wyciągi i inne miejsca order_id nie STR {1,1024} numer zamówienia desc2 nie STR {0,1024} dowolna informacja first_name nie STR {0,100} imię last_name nie STR {0,100} nazwisko street nie STR {0,100} ulica street_hn nie STR {0,10} numer domu street_an nie STR {0,10} numer mieszkania city nie STR {0,100} miasto post_code nie STR {0,20} kod pocztowy country nie STR {0,100} kod kraju klienta (dwuliterowy) zgodnie z ISO- 3166 http://www.chemie.fuberlin.de/diverse/doc/iso_3166.html email nie STR {0,100} adres email phone nie STR {0,100} numer telefonu, można podać kilka numerów rozdzielając je przecinakami language nie ENUM kod języka zgodnie z ISO-639 http://www.ics.uci.edu/pub/ietf/http/related/iso639.tx t (aktualnie pl, en) client_ip tak STR {7,15} adres IP klienta w formacie D{1,3}.D{1,3}.D{1,3}.D{1,3} js nie ENUM ( 0, 1 ) wartość określa czy przeglądarka klienta ma włączoną obsługę JavaScript Page 23
Dla transakcji Premium SMS, możliwe jest podanie wartości transakcji zgodnie z poniższą tabelką: wartość w gr. numer Premium SMS 123 71XX 246 72XX 369 73XX 615 75XX 738 76XX 1107 79XX W przypadku podania innej wartości transakcja nie zostanie utworzona. Page 24 W celu utworzenia nowej transakcji SMS należy na swojej stronie umieścić odpowiedni formularz, który przekieruje klienta do serwisu Platnosci.pl na stronę UrlPlatnosci.pl/Encoding/NewSMS gdzie: UrlPlatnosci.pl Kodowanie Adres bazowy aplikacji Platnosci.pl (https://www.platnosci.pl/paygw) jedna z wartości: ISO, UTF, WIN zawierającą pozostałe informacje potrzebne do przeprowadzenia aktywacji usługi za pomocą Premium SMS. Formularz musi zawierać parametry zgodne z podanymi w tabelce (punkt 4.1), poniżej przykładowy Formularz: <form action= https://www.platnosci.pl/paygw/iso/newsms method= POST name= smsform > <input type= hidden name= pos_id value= 12345 > <input type= hidden name= pos_auth_key value= w1po3nb > <input type= hidden name= session_id value= 1234565 > <input type= hidden name= amount_netto value= 100 > <input type= hidden name= desc value= Service activation > <input type= hidden name= client_ip value= 123.123.123.123 > <input type= hidden name= js value= 0 > <input type= submit value= Activate the service using PremiumSMS > </form> <scripts language= JavaScript type= text/javascript > <!-- document.forms['smsform'].js.value=1; --> </script>
Opcjonalnie aplikacja Sklepu może dodać do formularza nowej płatności (NewPayment) sumę kontrolną wszystkich przekazywanych parametrów. W celu wykorzystania tej opcji dodajemy do formularza dwa dodatkowe parametry: ts znacznik czasowy, wartość potrzebna w celu weryfikacji podpisu, dowolny losowy ciąg znaków, np. czas w sekundach sig podpis przesłanej informacji Page 25 gdzie wartość sig obliczamy według następującego wzoru: sig = md5 ( pos_id + pay_type + session_id + pos_auth_key + amount_netto + desc + desc2 + trsdesc + order_id + first_name + last_name + payback_login + street + street_hn + street_an + city + post_code + country + email + phone + language + client_ip + ts + key1 ) Jeżeli dana wartość nie jest przekazywana w formularzu tworzącym nową płatność używamy pustego ciągu znaków. W przypadku gdy wartość sig zostanie błędnie wyliczona lub zostaną zmienione wartości innych przekazywanych parametrów nowa płatność nie zostanie utworzona. Klient zostanie przekierowany na UrlNegatywny z kodem błędu 103.
Status transakcji Premium SMS Sklep może odczytać podobnie jak dla pozostałych form płatności (punkt 3.7). Ze względu na fakt iż obsługa transakcji SMS objęta jest podatkiem VAT, zestaw informacji przekazywanych w szczegółach transakcji SMS uzupełniony jest o kwotę netto transakcji. W celu odczytania aktualnego stanu transakcji SMS należy wywołać procedurę Payment/get2 (punkt 3.3) metodą POST, podając następujące parametry: nazwa opis pos_id identyfikator POS a session_id identyfikator transakcji ts znacznik czasowy, wartość potrzebna w celu weryfikacji podpisu sig podpis przesłanej informacji - punkt 3.4 Page 26 Gdzie wartość sig, obliczamy według następującego wzoru: sig = md5 ( pos_id + session_id + ts + key1 ) W odpowiedzi otrzymamy następujące strony zawierające informacje Format txt : status:ok trans_id:7 trans_pos_id:1 trans_session_id:417419 trans_order_id: trans_amount:246 trans_amount_netto:200 trans_status:5 trans_pay_type:s trans_pay_gw_name:av trans_desc:wpłatadlatest@test.pl trans_desc2: trans_create:2004-08-2310:39:52 trans_init:2004-08-3113:42:43 trans_sent:2004-08-3113:48:13 trans_recv: trans_cancel: trans_auth_fraud:0 trans_ts:1094205761232 trans_sig:b6d68525f724a6d69fb1260874924759
Format xml : <?xml version= 1.0 encoding= UTF-8?> <response> <status>ok</status> <trans> <id>7</id> <pos_id>1</pos_id> <session_id>417419</session_id> <order_id></order_id> <amount>246</amount> <amount_netto>200</amount_netto> <status>5</status> <pay_type>s</pay_type> <pay_gw_name>av</pay_gw_name> <desc>wpłatadlatest@test.pl</desc> <desc2></desc2> <create>2004-08-2310:39:52</create> <init>2004-08-3113:42:43</init> <sent>2004-08-3113:48:13</sent> <recv></recv> <cancel></cancel> <auth_fraud>0</auth_fraud> <ts>1094205828574</ts> <sig>a95dc2145079b16a3668175279c35736</sig> </trans> </response> Page 27 W danych odesłanych przez Platnosci.pl wartość sig, obliczamy według następującego wzoru: sig = md5 ( pos_id + session_id + order_id + status + amount + amount_netto + desc + ts + key2 )