Bezpieczne Zakupy specyfikacja techniczna implementacji pełnej
Transkrypt
Bezpieczne Zakupy specyfikacja techniczna implementacji pełnej
Bezpieczne Zakupy specyfikacja techniczna implementacji pełnej ____________________________________________________________________________________________ POLCARD is a regis tered tra de ma rk of FIRST D AT A POLSKA S.A., FIRST DAT A POLSKA S.A., Al. Je roz ol imskie 92, 00-807 Wa rszawa , tel.: +48 22 515 30 05, faks : +48 22 515 30 98 www.firstdata.pl Strona 1 z 22 Spis treści Strona ZMIANY ................................................................................................................................................... 3 TERMINOLOGIA...................................................................................................................................... 4 AUTORYZACJA ....................................................................................................................................... 5 POŁĄCZENIE POSIADACZA KARTY DO WITRYNY KONTRAHENTA .............................................................................. 5 AUTORYZACJA PŁATNOŚCI ZA ZAMÓWIENIE I PRZEKAZANIE KONTRAHENTOWI ODPOWIEDZI AUTORYZACYJNEJ ...... 7 PRZEKIEROWANIE KLIENTA, REALIZACJA ZAMÓWIENIA ......................................................................................... 10 OBSŁUGA BŁĘDÓW ............................................................................................................................................. 11 DOSTĘP DO BAZY TRANSAKCJI ............................................................................................................................ 12 ROZLICZENIA ........................................................................................................................................ 12 FORMAT PLIKU ROZLICZENIOWEGO ..................................................................................................................... 14 BUDOWA PLIKU ROZLICZENIOWEGO.................................................................................................................... 14 Nagłówek ..................................................................................................................................... 14 Dane.............................................................................................................................................. 16 Format cfc, dane dla firmy rozliczeniowej (FDP) o transakcjach przeprowadzanych przy pomocy kart bankowych. .......................................................................................................... 16 Format cfd, dane zwrotne z firmy rozliczeniowej (FDP)........................................................... 17 PRZYKŁADY ........................................................................................................................................... 19 FORMULARZ INICJUJĄCY ZAPYTANIE AUTORYZACYJNE ........................................................................................ 19 SKRYPT DO OBSŁUGI ROZLICZEŃ .......................................................................................................................... 20 ZBIÓR CFC-001.TXT (FORMAT CFC) Z ZADEKLAROWANYM SEPARATOREM (,)................................................... 21 ZBIÓR CFC-001.TXT (FORMAT CFC) Z DOMYŚLNYM SEPARATOREM (TABULATOR) ............................................. 21 ZBIÓR CFD-001.TXT (FORMAT CFD) Z ZADEKLAROWANYM SEPARATOREM (,) ................................................... 22 ZBIÓR CFD-001.TXT (FORMAT CFD) Z DOMYŚLNYM SEPARATOREM (TABULATOR).............................................. 22 ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 2 z 22 Zmiany Nr wersji 1.1 13 lipiec, 2000 1.2.1 20 września, 2000 Data 1.2.3 1.2.4 9 lipiec, 2004 1.2.5 2 listopad, 2004 1.2.6 06 październik, 2005 1.3 31 marzec, 2008 Zakres zmiany 1. Odpowiedź autoryzacyjna: 1. Nowe pole test 2. Nowe pole bin 2. Uściślenie zawartości certyfikatów SSL 3. Uściślenie formatu pól odpowiedzi autoryzacyjnej 4. Zapytanie autoryzacyjne: 1. Nowe pole client_ip 5. Obsługa błędów 6. Pozostawienie kontrahentowi tylko jednego numeru pos_id, przeniesienie mechanizmu dynamicznego przydzielania numerów pos_id do FDP 1. Odpowiedź autoryzacyjna 1. Nowe pole auth_code 2. Nowe pole fraud 3. Nowe pole sequence 4. Sposób reakcji na próbę połączenia z błędnym certyfikatem SSL 5. Zmiana kodowania kraju w adresie wysyłki 2. Nowe połączenie do odczytu danych opisujących transakcję 3. Rozliczenia 1. Wyjaśnienie mechanizmu przekazania raportu CFD 1. Postępowanie w przypadku odrzucania przez serwer kontrahenta certyfikatów Thawte 1. Postępowanie w przypadku błędu rozliczeń 98 2. Zmiana typów kart przesyłana w odpowiedzi autoryzacyjnej 1. Dodanie informacji n/t sposobu weryfikacji nowych certyfikatów wydanych przez Thawte (w drzewie razem z VeriSign) 2. Usunięcie informacji n/t stosowania certyfikatów PolCard_TestCA 3. Dodanie informacji o weryfikacji 2 poziomów podpisów w certyfikatach 4. Więcej szczegółów n/t przekazywania pola cc_number_hash 1. Formatowanie dokumentu 1. Rebranding ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 3 z 22 Przeznaczenie dokumentu Niniejszy dokument opisuje: 1. protokół autoryzacji transakcji dokonywanych w systemie Bezpieczne Zakupy; 2. postać zbiorów przeznaczonych do prowadzenia rozliczeń transakcji internetowych, w tym: i. przedstawiania przez Kontrahentów FDP transakcji rozliczeniowych, na które uprzednio uzyskano zgodę FDP; ii. przekazywania przez FDP informacji zwrotnej o przyjęciu bądź odrzuceniu transakcji do rozliczenia. Zakres stosowania dokumentu: Kontrahenci FDP posiadający ważną umowę w zakresie współpracy przy akceptacji kart płatniczych wraz z aneksem na usługę Bezpieczne Zakupy jako załącznik do oferty usługi Bezpieczne Zakupy. Terminologia POLCARD – zarejestrowany znak towarowy w ramach którego świadczona jest usługa Bezpieczne Zakupy FDP – FIRST DATA POLSKA S.A. właściciel marki POLCARD udostępniający usługę Bezpieczne Zakupy adres bankowy - adres podany przez klienta w banku, we wniosku o wydanie karty płatniczej; adres wysyłki - adres pocztowy, pod który zostaną wysłane zamówione towary. Jeśli towar jest niematerialny, to jako adres wysyłki traktowany jest adres e-mail Klienta i numer IP komputera, z którego uzyskał on połączenie do serwera Kontrahenta. Jest to adres podany przez Klienta Kontrahentowi i przekazywany przez Kontrahenta do FDP w procesie autoryzacji zamówienia; amount - całkowita wartość zamówienia Klienta, uwzględniająca wszystkie czynniki, takie jak opłaty manipulacyjne itp.; cc_number_hash/cc_hash - wynik działania jednokierunkowej funkcji skrótu na numerze karty Klienta. Kontrahent może przechowywać wartości tego pola i podejmować decyzje o dokonaniu transakcji znając historie płatności dokonanych z użyciem tej karty; pole to jest przesyłane przez FDP w tzw. odpowiedzi autoryzacyjnej i powinno być prezentowane przez kontrahenta w odpowiednim miejscu w plikach rozliczeniowych (CFC). Nie należy tego pola mylić z BINem karty. ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 4 z 22 BIN – Bank Identification Number – numer identyfikujący bank wydawcę karty, wartość ta jest przesyłana w odpowiedzi autoryzacyjnej, może być stosowana przy okresowych promocjach dla klientów konkretnego banku. internetowy punkt handlowy - punkt w sieci Internet, w którym są lub będą dokonywane transakcje z użyciem karty płatniczej jako środka zapłaty; Klient - osoba zamierzająca zamówić u Kontrahenta towary, usługi bądź informacje, za które zapłaci kartą płatniczą - posiadacz karty; Kontrahent - instytucja prowadząca działalność gospodarczą, która podpisała z FDP umowę o współpracę w zakresie akceptowania i rozliczania transakcji dokonanych z użyciem kart płatniczych oraz aneks na usługę Internet Order Online; order_id - unikalny identyfikator zamówienia, przedstawiony Klientowi po dokonaniu transakcji (np. numer faktury VAT); pos_id - numer identyfikujący serwer Kontrahenta. Numer ten jest nadawany przez FDP. response_code - kod odpowiedzi autoryzacyjnej informujący czy wydawca karty zgodził się na realizację płatności; session_id - unikalny identyfikator zdarzenia polegającego na przejściu przeglądarki Klienta ze stron Kontrahenta na stronę autoryzacyjną FDP w celu dokonania płatności; sklep internetowy - punkt w sieci Internet, w którym są lub będą dokonywane transakcje z użyciem karty płatniczej jako środka zapłaty (inaczej: internetowy punkt handlowy); towar - dobra materialne i niematerialne, za które Klient dokonuje zapłaty kartą płatniczą Kontrahentowi; Autoryzacja Połączenie posiadacza karty do witryny kontrahenta Klient (posiadacz karty) uzyskuje połączenie zgodne z protokołem http, zabezpieczonym technologią SSL z serwerem kontrahenta. Klient zapoznaje się z ofertą kontrahenta i dokonuje wyboru towarów, które chce zamówić. Przed przejściem do autoryzacji zamówienia konieczne jest spełnienie następujących warunków, w dowolnej kolejności: • klient powinien zapoznać się z końcową ceną zamawianych towarów, zawierającą wszystkie przewidywalne składniki (np. koszty wysyłki), • klient powinien podać adres wysyłki, • serwer kontrahenta powinien wygenerować numer session_id., • serwer kontrahenta winien zidentyfikować i zapisać do własnej bazy danych adres IP komputera klienta, który ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 5 z 22 dokonuje zapłaty kartą płatniczą, tego typu dana winna być udostępniana na każde żądanie FDP; Po spełnieniu tych warunków serwer kontrahenta generuje stronę HTML z formularzem odsyłającym klienta do strony autoryzacyjnej FDP. Adres pod który powinien odsyłać formularz jest następujący: https://post.polcard.com.pl/cgi-bin/autoryzacja.cgi Wewnątrz formularza powinny znajdować się niżej opisane pola: Nazwa pola Format Opis zawartości pola session_id ANC {1,1024} Jak w części terminologia. Nowa wartość tego identyfikatora powinna być generowana zawsze przed dostarczeniem klientowi formularza odsyłającego do strony autoryzacyjnej FDP order_id ANC{1,64} Unikalny identyfikator zamówienia (koszyka towarów), znany trzem stronom (klient, kontrahent, FDP), który pojawi się na potwierdzeniu sprzedaży przedstawionym przez sklep posiadaczowi karty po udanej autoryzacji i po decyzji sklepu o dokonaniu sprzedaży. Może to być numer faktury VAT, lub rachunku, który pojawi się na towarzyszącym produktowi, dokumencie papierowym. W przypadku ponownego wygenerowania session_id dla nowej autoryzacji, ten identyfikator nie ulega zmianie. pos_id ANC {1,20} Nadany przez FDP identyfikator serwera kontrahenta (identyfikator wirtualnego "punktu sprzedaży" lub "terminala"), wartość stała dla danego kontrahenta amount NUM {1,10} Wartość zamówienia uwzględniająca wszystkie przewidywalne czynniki. Kwota podana w groszach, tzn. 20 zł 34 gr powinno być zapisane jako 2034 street AN {0,40} Pierwsza linia adresu wysyłki. W większości wypadków powinna zawierać nazwę ulicy i numer lokalu street_n1 AN {0,10} Numer związany z adresem, prawie zawsze jest to numer domu street_n2 AN {0,10} Numer związany z adresem, będzie to numer mieszkania o ile numer mieszkania ma zastosowanie addr2 AN {0,40} Druga linia adresu wysyłki. addr3 AN {0,40} Trzecia linia adresu wysyłki city AN {0,40} Nazwa miasta z adresu wysyłki postcode AN {0,10} Numer kodu pocztowego z adresu wysyłki w formacie 99-999, lub jego odpowiednik dla adresów zagranicznych country AN {1,3} Kod kraju z adresu wysyłki. Kod powinien być taki, jaki stosuje się na samochodowych tablicach rejestracyjnych w danym kraju (Dla Polski="PL", dla Stanów Zjednoczonych Ameryki Pn. "USA", dla Niemiec "D" itd.) language AN {2,2} Język, w którym FDP powinien komunikować się z klientem. Możliwe wartości to: "PL" - polski, "EN" - angielski. email ANC {0,40} Adres e-mail klienta test AN {1,1} Wskaźnik, czy transakcja ma być traktowana jako testowa czy jako produkcyjna. Możliwe są dwie wartości: "N" - produkcyjna, "Y" - testowa client_ip ANC{0,15} Adres IP komputera klienta ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 6 z 22 Gdzie: {x,y} - pole o minimalnej długości x , maksymalnej długości y; ANC - litery małe i duże a-zA-Z, cyfry 0-9, następujące znaki: []{}~@#$%^&*()_+\/<>,.'`* , bez spacji i polskich liter; NUM - cyfry 0-9; AN - jak ANC, z dopuszczonymi spacjami. Kontrahent powinien uniemożliwić więcej niż jedną autoryzację na dany "order_id". W momencie dokonania autoryzacji transakcja z danym "order_id" powinna zostać zaznaczona jako zautoryzowana i w przypadku potrzeby autoryzacji dalszych płatności przez danego klienta powinien być generowany nowy "order_id". FDP może ograniczyć liczbę prób zapłaty z danym "order_id". Po naciśnięciu przez klienta przycisku "Zapłata kartą" nastąpi połączenie do strony autoryzacyjnej FDP. Autoryzacja płatności za zamówienie i przekazanie kontrahentowi odpowiedzi autoryzacyjnej Po połączeniu się ze stroną autoryzacyjną FDP klient (posiadacz karty) wprowadza dodatkowe dane (w tym numer karty i datę jej ważności) konieczne do uzyskania autoryzacji. Autoryzacja jest przeprowadzana przez FDP. Polega ona na skontaktowaniu się z systemem komputerowym banku, który wydał kartę i uzyskaniu odpowiedzi, czy dana płatność może być zrealizowana. Po uzyskaniu odpowiedzi od banku wydawcy FDP przesyła ją kontrahentowi. W tym celu serwer FDP nawiązuje połączenie https zabezpieczone SSL z serwerem kontrahenta wykonując operację POST. Podczas nawiązywania połączenia FDP przedstawia swój certyfikat SSL podpisany przez jeden ze znanych urzędów certyfikacyjnych. Dzięki temu kontrahent ma możliwość upewnienia się, że nadawcą komunikatu jest FDP. Połączenie następuje pod uzgodniony wcześniej z kontrahentem adres URL. Po otrzymaniu przez serwer kontrahenta połączenia pod wskazany adres URL, oprogramowanie serwera kontrahenta powinno w pierwszej kolejności zweryfikować drugą stronę połączenia upewniając się, że jest nią FDP. W tym celu serwer kontrahenta powinien żądać przedstawienia certyfikatu SSL i po jego otrzymaniu upewnić się, że weryfikacja certyfikatu zakończyła się sukcesem, a następnie sprawdzić zawartość poniższych pól certyfikatu: Pole X.509 Symbol Powinno być równe Organization S_DN_O "PolCard S.A." Locality S_DN_L "WARSZAWA" ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 7 z 22 CommonName S_DN_CN "post.polcard.com.pl" Country S_DN_C "PL" Powyższy certyfikat powinien być podpisany przez: Thawte lub Verisign. Certyfikat instytucji podpisującej również należy sprawdzić (poniżej dane dla certyfikatu wydanego przez Thawte): Pole X.509 Symbol Powinno być równe Organization I_DN_O "Thawte Consulting (Pty) Ltd." CommonName I_DN_CN "Thawte SGC CA" Country I_DN_C "ZA" UWAGA! Ze względu na fakt, że powyższy certyfikat jest podpisany przez root CA Verisign, należy bezwzględnie włączyć w serwerze HTTPS weryfikację certyfikatów do 2 poziomów. W przypadku serwera Apache i modułu mod_ssl, linia taka ma postać: SSLVerifyDepth 2 Z uwagi na fakt, iż błędna weryfikacja może oznaczać próbę dokonania nadużycia, zalecane jest zakończenie połączenia bez udzielania jakiejkolwiek odpowiedzi. W wypadku błędnej weryfikacji certyfikatu kontrahent nie powinien analizować odebranych danych. Zakłada się wtedy, że FDP nie skontaktował się z kontrahentem. Serwer kontrahenta powinien w takiej sytuacji przesłać następującą odpowiedź: Content-Type: text/plain Client authentication failed Taka odpowiedź powinna być przesyłana w każdym przypadku błędnej weryfikacji certyfikatu FDP, tzn. również przy odebraniu żądania dostępu do bazy danych transakcji przez FDP, i przy przesłaniu z FDP raportu rozliczeniowego. Po pozytywnej weryfikacji certyfikatu serwer Kontrahenta powinien odczytać informacje zawarte w następujących polach: Nazwa pola Format Zawartość order_id ANC{1,64} Wartość pola order_id przesłanego do FDP przy autoryzacji płatności. session_id ANC{1,1024} Wartość pola session_id przesłanego do FDP przy autoryzacji płatnosci. ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 8 z 22 Nazwa pola Format amount response_code Zawartość NUM{1,10} Wartość pola amount przesłanego do FDP przy autoryzacji płatności. Jednocześnie, jest to maksymalna kwota (wyrażona w groszach), do wysokości której kontrahent może wysłać informacje o dokonanej transakcji z danym session_id w celu jej rozliczenia. ANC{3,3} Kod odpowiedzi informujący, czy wydawca karty zgodził się na realizację płatności. Jeśli tej zgody nie uzyskano, FDP nie rozliczy transakcji z danym session_id. Możliwe kody to: 000 zgoda 100 odmowa cc_number_hash ANC{1,512} Wynik działania jednokierunkowej funkcji skrótu na numerze karty klienta i numerze pos_id. Kontrahent może przechowywać wartości tego pola i podejmować decyzje o dokonaniu transakcji znając historię płatności dokonanych z użyciem tej karty. card_type ANC{1,20} Napis określający typ karty, służy do wydrukowania szczegółów płatności na fakturze (zamiast numeru karty). Te napisy to np.:VISA, ECMC, JCB, PC, PBK Styl, DC address_ok ANC{1,1} Rezultat veryfikacji adresu posiadacza karty: 0 - nie był sprawdzany 1 - adres jest OK. 2 - kod pocztowy jest poprawny test ANC{1,1} Wartość flagi test otrzymanej przez FDP w zapytaniu autoryzacyjnym. Powinna być identyczna z wartością flagi test umieszczonej przez kontrahenta w formularzu służącym do dokonania zapytania autoryzacyjnego, tzn. kontrahent powinien kontrolować czy na transakcje produkcyjne otrzymuje odpowiedzi z flagą "N" a na testowe z flagą "Y". auth_code ANC{1,16} Kod autoryzacji. Jest to kod generowany przez bank-wydawcę karty w razie zaakceptowania transakcji. Wartość tego pola powinna być później odesłana przez kontrahenta w pliku rozliczeniowym. bin NUM{6,6} Pierwsze 6 cyfr numeru karty, identyfikujące jednoznacznie produkt kartowy i bank-wydawcę. fraud NUM{1,1} Wynik oceny ryzyka przeprowadzanej przez FDP. Wartości pola są następujące: 0 - Ocena ryzyka nie została przeprowadzona dla tej transakcji. 1 - Spodziewany brak ryzyka lub niskie ryzyko w ocenie FDP. 2 - Spodziewane wysokie ryzyko transakcji, nie realizuj zlecenia. Okoliczności przeprowadzenia transakcji będą wyjaśniane przez FDP. Skontaktuj się telefonicznie z FDP w celu wyjaśnienia czy transakcję można przeprowadzić. 3 - Nie realizuj transakcji - bardzo wysoki poziom ryzyka. Wartość tego pola ma charakter informacyjny i nie obliguje kontrahenta do zaniechania realizacji transakcji nawet jeśli została przesłana wartość 2 lub 3. Wiążąca jest jedynie wartość pola response_code. Usługa oceny ryzyka ma na celu zminimalizowanie strat kontrahenta związanych ze sprzedażą przez internet. sequence NUM{6,6} Numer kolejny odpowiedzi autoryzacyjnej, nadawany przez FDP. Numeracja zaczyna się od "000000" i kończy się na "999999". Następną wartością po osiągnięciu "999999" jest znów "000000". Istnienie tego numeru ma ułatwić identyfikację transakcji poprzez stworzenie sekwencyjnego ciągu. Numer ten ma znaczenie ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 9 z 22 Nazwa pola Format Zawartość wyłącznie jako ewentualna pomoc przy wyjaśnianiu pomiędzy kontrahentem a FDP historii dokonywanych transakcji. Po sprawdzeniu, ze wartości pól "session_id" i "amount" odpowiadają jednemu z realizowanych zamówień, kontrahent powinien potwierdzić fakt otrzymania odpowiedzi autoryzacyjnej, niezależnie od wartości pola "response_code". Potwierdzenie polega na odesłaniu w odpowiedzi do FDP (w tym samym połączeniu) strony HTML zawierającej parę tagów <url_redirect> i </url_redirect>, wewnątrz której powinien zawrzeć się adres, pod który FDP powinien przekierować przeglądarkę klienta (posiadacza karty). Przykładowa odpowiedź może wyglądać następująco: <html> <body> Otrzymano odpowiedź autoryzacyjną do session_id A00123 <url_redirect>https://www.sklep.pl/welcome_back.cgi</url_redirect> </body> </html> FDP udziela posiadaczowi karty odpowiedzi o powodzeniu czy nie powodzeniu autoryzacji transakcji internetowej, a następnie przekierowuje klienta na właściwą stronę. Przekierowanie klienta, realizacja zamówienia Klient zostaje przekierowany pod adres podany w potwierdzeniu odpowiedzi autoryzacyjnej. Kontrahent podejmuje decyzję o realizacji lub odrzuceniu zamówienia. ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 10 z 22 Obsługa błędów W razie wystąpienia błędu w trakcie przetwarzania autoryzacji przez serwer FDP, nastąpi przekierowanie przeglądarki klienta pod adres uzgodniony z kontrahentem. Przeglądarka klienta połączy się pod w/w adres wykonując operację POST i przekazując dane dotyczące błędu w następujących polach: Nazwa pola order_id session_id Format Zawartość ANC{1,64} Wartość pola order_id przesłanego do FDP przy autoryzacji płatności ANC{1,1024} Wartość pola session_id przesłanego do FDP przy autoryzacji płatnosci. pos_id ANC{1,20} Nadany przez FDP identyfikator serwera kontrahenta (identyfikator wirtualnego "punktu sprzedaży" lub "terminala"), wartość stała dla danego kontrahenta message AN{0,1024} Komunikat o błędzie w języku określonym wcześniej przez wartość pola language. err_code ANC{1,10} Kod błędu, jeden z wymienionych w tabeli poniżej. Kody błędów - wartości pola err_code err_code Znaczenie err01 Nie uzyskano od sklepu potwierdzenia odebrania odpowiedzi autoryzacyjnej Autoryzacja płatności została wykonana przez FDP, ale nie doszło do skutku połączenie do serwera kontrahenta w celu przekazania odpowiedzi autoryzacyjnej. Jeśli autoryzacja była pozytywna, tzn. bank który wydał kartę wyraził zgodę na przeprowadzenie transakcji, to najczęściej (w zależności od banku który wydał kartę) kwota środków dostępnych na karcie zostanie zmniejszona o kwotę transakcji (na kilka dni, po których środki te zostaną odblokowane automatycznie). Nie nastąpi obciążenie konta posiadacza karty, ani płatność dla kontrahenta. err02 Nie uzyskano odpowiedzi autoryzacyjnej Nie udała się autoryzacja płatności przeprowadzana przez FDP, tzn. zapytanie do banku który wydał kartę o możliwość przeprowadzenia transakcji. Zazwyczaj przyczyną powstania tego błędu jest chwilowy wzrost obciążenia sieci autoryzacyjnych i należy ponowić próbę płatności. err03 To zapytanie było już przetwarzane Zapytanie autoryzacyjne identyfikowane przez session_id było już wcześniej przetwarzane przez FDP i uzyskana została zgoda na przeprowadzenie transakcji. Należy ponowić próbę z użyciem innej wartości session_id. err04 Zapytanie autoryzacyjne niekompletne lub niepoprawne Dane przesłane w zapytaniu autoryzacyjnym były niekompletne lub niepoprawne. Zawartość pola message wskazuje na pola których wartość była niepoprawna. err05 Nie udało się odczytać konfiguracji sklepu internetowego Przyczyną powstania tego błędu może być niewłaściwa wartość pola pos_id. err06 Nieudany zapis zapytania autoryzacyjnego Błąd wewnętrzny w systemie FDP. err07 Inna osoba dokonuje płatności. Została przekroczona dozwolona liczba osób które mogą jednocześnie dokonywać płatności. W takiej sytuacji należy ponowić próbę zapłaty za transakcję. FDP po wykryciu takiej sytuacji zwiększy limit jednoczesnych połączeń dla kontrahenta. err08 Nieustalony status połączenia ze sklepem Błąd wewnętrzny w systemie FDP. ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 11 z 22 err_code Znaczenie err09 Przekroczono dozwoloną liczbę poprawek danych Dla danego session_id przekroczono dozwoloną liczbę poprawek danych wprowadzanych przez posiadacza karty, takich jak numer karty, jej data ważności, typ karty, adres posiadacza karty. Należy ponowić próbę płatności z użyciem innej wartości session_id. err10 Przekroczono maksymalną kwotę transakcji Dla danego session_id przekroczono dozwoloną liczbę poprawek danych wprowadzanych przez posiadacza karty, takich jak numer karty, jej data ważności, typ karty, adres posiadacza karty. Należy ponowić próbę płatności z użyciem innej wartości session_id. Rozliczenia Na koniec dnia, serwer FDP połączy się ze specjalną stroną kontrahenta tzw. URL pollingu w celu pobrania plików rozliczeniowych. Pliki te powinny zawierać informacje o transakcjach do rozliczenia, które zostały zaakceptowane przez kontrahenta. W szczególności może się zdarzyć, że te pliki będą zawierały inne transakcje niż lista autoryzacji wykonanych na rzecz danego Kontrahenta w danym dniu. Może tak się zdarzyć wówczas, gdy z jakichś powodów kontrahent nie wysłał zakupionego towaru w dniu autoryzacji, a robi to kilka dni później (na przykład po uzupełnieniu braków magazynowych). Kontrahent może przekazać transakcje do rozliczenia w ciągu 7 dni kalendarzowych od daty autoryzacji. W przypadku zwrotów, Kontrahent: 1. Jeżeli transakcja autoryzacyjna zakończyła się akceptacją nie musi wykonywać dodatkowej specjalnej autoryzacji dla zwrotu. Informację o zwrocie dołącza do pliku rozliczeniowego. 2. Może przysłać zwrot w czasie zwyczajowo przyjętym na akceptację zwrotów, tj.: 3 miesięcy. Limit 7-miu dni od daty autoryzacji nie obowiązuje w przypadku zwrotów, 3. Jako identyfikację transakcji, musi przyjąć od posiadacza karty numer faktury i numer sesji. Nie może przyjąć jawnego numeru karty ani jawnej daty ważności karty, Kontrahent pod znanym FDP adresowi URL umieszcza aplikację, która na zapytanie HTTP GET prześle aktualny, bieżący plik rozliczeniowy, a następnie na zapytanie HTTP POST przyjmie plik z raportem rozliczeniowym z FDP. Ten skrypt, (patrz przykład), podobnie jak skrypt przyjmujący odpowiedź autoryzacyjną z FDP, musi sprawdzić certyfikaty klienta go wywołującego, tak samo jak w przypadku autoryzacji. W połączeniu POST serwer FDP przesyła raport rozliczeniowy jako upload pliku w parametrze o nazwie clearing_report_file, zgodnie z RFC 1867. Przesłanie tego pliku jest widziane przez serwer kontrahenta tak, jak efekt działania przykładowego formularza: <FORM METHOD="POST" ACTION="www.sklep.pl/rozliczenia" ENCTYPE="multipart/form-data"> ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 12 z 22 <INPUT NAME="clearing_report_file"> <INPUT TYPE="SUBMIT" VALUE="Wyslij plik rozliczeniowy"> </FORM> Plik przesłany tą metodą jest możliwy do odebrania w różny sposób, w zależności od typu serwera posiadanego przez kontrahenta. Moduł CGI.pm używany wraz z serwerem Apache udostępnia przesyłany plik jako "filehandle" przesłany w polu o nazwie clearing_report_file. Serwery IIS firmy Microsoft nie mają (lub nie wszystkie mają) zaimplementowaną tą część obsługi HTML, i konieczne może być analizowanie zawartości POST'a napisane we własnym zakresie lub zakupione od firmy zewnętrznej. W szczególności, firma Microsoft informuje na swoich stronach o (prawdopodobnie własnym) produkcie "ActiveFile", który ma za zadanie uzupełnienie tej funkcjonalności. W odpowiedzi na POST z FDP skrypt powinien odesłać potwierdzenie w następującym formacie: Content-Type: text/plain Received [pos_id,batch] Słowa pos_id i batch należy zastąpić odpowiednią wartością pos_id i batch (wartość pola Batch z nagłówka otrzymanego raportu). URL przyjmujący rezultat autoryzacji w FDP musi wykonać te samą wstępną kontrolę (tj.: powyższy skrypt aż do linii [use CGI], gdzie zaczyna się obsługa zbiorów rozliczeniowych). Proces rozliczenia jest powtarzany cyklicznie dla każdego ze zbiorów po kolei (jeden zbiór CFC - przetworzenie - jeden zbiór CFD - kolejny CFC ... itd.). System przeglądania oczekujących zbiorów rozliczeniowych w FDP, będzie ponawiał GET tego URL aż do czasu, kiedy nie dostanie żadnego zbioru. Wówczas system pobierania zbiorów rozliczeniowych przechodzi do następnego URL. Jeśli kontrahent nie otrzyma raportów rozliczeniowych za dany dzień (na przykład w przypadku awarii serwera czy łącza telekomunikacyjnego) przy każdym następnym połączeniu będą ponawiane próby przetworzenia tych zbiorów. ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 13 z 22 Format pliku rozliczeniowego Zbiory są plikami tekstowymi ASCII z konwencją końca linii przyjętą w MS-DOS, tj. linie zakończone są sekwencją dwóch bajtów: CR=0x0D i następującym po nim LF=0x0A. Struktura pliku rozliczeniowego Nagłówek Zbiory składają się z nagłówka, który zawiera linie z ogólnymi informacjami o kontrahencie w formie: <Słowo_kluczowe><dwukropek(tj._znak_":")><opcjonalne_spacje_lub_tab*><informacja> * w kodzie heksadecymalnym spacje - 20, tabulacje - 09 Słowa kluczowe mogą zawierać małe lub duże litery. Program analizujący nagłówek przesyłki musi robić porównanie słów kluczowych bez zwracania uwagi na "wielkość" liter (case-insensitive match). Zdefiniowane słowa kluczowe: Słowo kluczowe Występowanie Tid wymagane Format wymagane Opis Kod punktu sprzedaży klienta - - przydzielany przez FDP. Jest on równy wartości pos_id stosowanej przy autoryzacji. Rozróżnienie formatów danych finansowych, możliwe wartości to: • C – dla pliku CFC Nazwa Adres Data opcjonalne opcjonalne Ref Liczba Suma Md5 opcjonalne opcjonalne opcjonalne D – dla pliku CFD (odpowiedź na rozliczenie wysyłane do FDP). Zmiana znaku separatora pól (domyślnie jest nim tabulator HT). Tutaj "informacją" jest wybierany nowy znak - jeden spośród: '`";,/?~!@#$%^&*_+= Kolejny numer paczki transakcji (zbioru). Ten numer przybiera kolejne wartosci od 000 do 999 i ponownie 000 i stanowi identyfikacje paczki rozliczeniowej. Jest tym samym numerem, który pojawia się w nazwie zbioru. Pełna nazwa kontrahenta FDP Adres kontrahenta FDP Data utworzenia pliku, jeżeli nie występuje przyjmuje się datę odebrania pliku w FDP Numer referencyjny - nadawany przez kontrahenta Liczba rekordów finansowych w przesyłce Suma wartości transakcji zawartych w zbiorze opcjonalne Suma kontrolna części finansowej przesyłki (bez nagłówka) • Separator opcjonalne Batch wymagane opcjonalne ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 14 z 22 Raport z rozliczenia transakcji będzie miał taki sam separator jak zbiór przyjęty do rozliczenia. W przesyłce zwrotnej (tj. wysyłanej z FDP do klienta) mogą dodatkowo wystąpić następujące linie nagłówka: Słowo kluczowe WersjaOprogramowania Opis Wersja oprogramowania systemu FDP Format Rozróżnienie formatów danych finansowych, wartości dopuszczalne jak dla rozliczeniowego Data TID Batch SumaRozliczenia LiczbaTransakcji KwotaUznan LiczbaUznan KwotaObciazen LiczbaObciazen KwotaOdmow LiczbaOdmow KwotaError LiczbaError KwotaUznanTestowych LiczbaUznanTestowych KwotaObciazenTestowych LiczbaObciazenTestowych KwotaOdmowTestowych LiczbaOdmowTestowych pliku Data przetworzenia pliku przez FDP Identyfikator punktu sprzedaży, równy wartości pos_id stosowanej przy autoryzacji. Kolejny numer paczki transakcji (zbioru). Ten numer przybiera kolejne wartosci od 000 do 999 i ponownie 000 i stanowi identyfikację paczki rozliczeniowej. Jest to numer Batch zbioru rozliczeniowego cfc, którego dotyczy raport. Różnica pomiędzy sumą obciążeń i sumą uznań Ilość transakcji odpowiadająca polu Liczba w przesyłce do FDP Suma kwot transakcji w rozliczonych dobro rachunku posiadacza karty Ilość transakcji włączonych do powyższej sumy Suma kwot transakcji obciążających rachunek posiadacza karty Ilość transakcji włączonych do powyższej sumy Suma kwot transakcji nie zrealizowanych Ilość transakcji włączonych do powyższej sumy Suma kwot transakcji z "katastrofalnym" błędem obsługi (ewentualny błąd w procedurach FDP) Ilość transakcji włączonych do powyższej sumy Suma kwot transakcji testowych rozliczonych w dobro rachunku posiadacza karty Ilość transakcji testowych włączonych do powyższej sumy Suma kwot transakcji testowych obciążających rachunek posiadacza karty Ilość transakcji testowych włączonych do powyższej sumy Suma kwot transakcji testowych nie zrealizowanych Ilość transakcji testowych włączonych do powyższej sumy Linie nagłówka zaczynające się znakiem niewidocznym - spacją = 0x20 lub tabulatorem = 0x09, stanowią kontynuacje poprzednich linii nagłówka. Nagłówek kończy się pustą linią, czyli wystąpienie bezpośrednio po sobie dwóch znaków końca linii (z których każdy jest dwubajtową sekwencją) oznacza koniec nagłówka. ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 15 z 22 Dane Wszystko, co następuje po nagłówku jest informacją finansową i ma format linii tekstu z poszczególnymi danymi oddzielonymi od siebie znakiem separatora domyślnie tabulatora (0x09). Format dopuszcza możliwości użycia innego znaku niż znak tabulatora jako separatora pól. Nowy separator jest zdefiniowany w nagłówku. Jeżeli w linii nagłówka "separator:" jest umieszczony inny znak niż zawarty w liście legalnych separatorów, to dla programu przyjmującego przesyłkę, separatorem pozostaje znak tabulatora. Raport z przetwarzania CFD będzie miał ten sam separator który był zdefiniowany w zbiorze z transakcjami CFC. Pola opcjonalne mogą pozostać niewypełnione. Rok jest na kartach zapisywany w formie dwucyfrowej YY. Liczby YY mniejsze niż 60 oznaczają rok w XXI stuleciu, np. 09 oznacza rok 2009. Konwencja nazw zbiorów CFC-xxx.TXT CFD-xxx.TXT zbiory przychodzące do FDP (format cfc) zbiory wychodzące z FDP (format cfd) Format cfc, dane dla firmy rozliczeniowej przeprowadzanych przy pomocy kart bankowych. 1. 2. 3. 4. 5. 6. 7. 8. (FDP) o transakcjach Skrót numeru karty, poprzedzony literą H bez żadnych znaków pomiędzy Session_ID Data transakcji (YYMMDD) Kwota w groszach (tj. bez kropki/przecinka dziesiętnego oddzielającego pełne złote) Wskaźnik określający rodzaj transakcji: Test/Production oraz Credit/Debit/Void - znak TC, TD, TV, PC, PD lub PV. Transakcje 'Production' mogą przesyłać jedynie punkty (sklepy), którym w FDP został nadany odpowiedni status. Transakcje z punktów, które nie mają statusu produkcyjnego, są traktowane jako transakcje testowe niezależnie od przesłanego wskaźnika P/T. Znaczenie znacznika C/V/D jest następujące: Transakcje D obciążają konto posiadacza karty, transakcje C uznają konto posiadacza karty kwotą zwrotu, transakcje V oznaczają transakcje, które były w sklepie autoryzowane, ale sklep z jakichś powodów (np.: niezgodności adresów wysyłki i posiadacza karty) nie będzie realizował zamówienia. 1 Kod Autoryzacji Typ transakcji (I - Internet Order) Order_ID Dostępne są przykłady: 1 Jeśli chcą Państwo dokonać zwrotu na kartę już rozliczonej transakcji, należy ją przedstawiać jako PC (odpowiednio TC dla transakcji testowych). ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 16 z 22 ● Plik w formacie cfc z zadeklarowanym separatorem ● Plik w formacie cfc z domyślnym separatorem Format cfd, dane zwrotne z FDP Dane zwrotne mają ten sam format co dane przesłane do rozliczeń, z dokładnością do dwóch pól poprzedzających dane "formatu C". Wskazują one stan realizacji transakcji. Pole "Kod Autoryzacyjny" może być wypełnione przez FDP w wyniku realizacji transakcji. 1. Wskaźnik realizacji transakcji: T - transakcja przyjęta do rozliczenia, F - transakcja odrzucona, E - transakcja, w trakcie której wystąpił błąd systemu FDP (taki raport transakcji jest powodem do wszczęcia "procedury alarmowej"). 2. kod rozliczenia (patrz: możliwe kody rozliczenia) 3. Skrót numeru karty (poprzedzony litera 'H') 4. Session_ID 5. Data transakcji (YYMMDD) 6. Kwota w groszach (tj. bez kropki/przecinka dziesiętnego oddzielającego pełne złote) 7. Wskaźnik określający rodzaj transakcji: Test/Production/Credit/Debit znak TC lub PC lub TD lub PD 8. Kod Autoryzacji 9. Typ transakcji (I dla transakcji Internetowych) 10. Order_ID Dostępne są przykłady: ● Plik w formacie cfd z zadeklarowanym separatorem ● Plik w formacie cfd z domyślnym separatorem Kody rozliczeń: Status Opis 00 OK., transakcja przyjęta do rozliczenia 01 Nie znaleziono pary session_id + pos_id + cc_hash (nie ma takiej transakcji) 02 Autoryzacja odmowna 03 Rezygnacja Kontrahenta z transakcji przyjęta przez FDP 04 Zbyt późne przedstawienie transakcji do rozliczenia 05 Kwota wyższa od kwoty autoryzacji 06 Transakcja była już rozliczona 07 Próba uznania do nierozliczonej transakcji 08 Kwota poniżej limitu dolnego transakcji ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 17 z 22 Status Opis 09 Nieznany typ transakcji (nie Debit i nie Credit) 10 Brak daty autoryzacji 97 Cc_hash nie jest oznaczony jako hash (brak "H" na początku wiersza 98 Database update error. Przedstaw tę transakcję do rozliczenia później w kolejnym pliku batch. 99 Inny powód nie przyjęcia do rozliczenia, nieodwracalny ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 18 z 22 Przykłady Formularz inicjujący zapytanie autoryzacyjne <FORM METHOD="POST" ACTION="https://post.polcard.com.pl/cgi-bin/autoryzacja.cgi"> <INPUT TYPE="HIDDEN" NAME="session_id" VALUE="A00123"> <INPUT TYPE="HIDDEN" NAME="order_id" VALUE="fak-43/12/98:bac"> <INPUT TYPE="HIDDEN" NAME="pos_id" VALUE="123456"> <INPUT TYPE="HIDDEN" NAME="amount" VALUE="2034"> <INPUT TYPE="HIDDEN" NAME="street" VALUE="Ostrobramska"> <INPUT TYPE="HIDDEN" NAME="street_n1" VALUE="103"> <INPUT TYPE="HIDDEN" NAME="street_n2" VALUE=""> <INPUT TYPE="HIDDEN" NAME="addr2" VALUE=""> <INPUT TYPE="HIDDEN" NAME="addr3" VALUE=""> <INPUT TYPE="HIDDEN" NAME="city" VALUE="Warszawa"> <INPUT TYPE="HIDDEN" NAME="postcode" VALUE="04-041"> <INPUT TYPE="HIDDEN" NAME="country" VALUE="PL"> <INPUT TYPE="HIDDEN" NAME="language" VALUE="PL"> <INPUT TYPE="HIDDEN" NAME="email" VALUE="[email protected]"> <INPUT TYPE="HIDDEN" NAME="test" VALUE="N"> <INPUT TYPE="SUBMIT" VALUE="Platnosc karta"> <FORM> ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 19 z 22 Skrypt do obsługi rozliczeń #!/usr/bin/perl -w # kontrola certyfikatów wykonana przez warstwę SSL, jej rezultaty są dostępne w ENV unless ( $ENV{'SSL_CLIENT_VERIFY'} and ($ENV{'SSL_CLIENT_VERIFY'} eq 'SUCCESS') and ($ENV{'SSL_CLIENT_S_DN_O'} eq 'PolCard S.A.')) { and ($ENV{'SSL_CLIENT_S_DN_L'} eq 'WARSZAWA') and ($ENV{'SSL_CLIENT_S_DN_CN'} eq 'post.polcard.com.pl') and ($ENV{'SSL_CLIENT_S_DN_C'} eq 'PL') and ($ENV{'SSL_CLIENT_I_DN_O'} eq 'Thawte Consulting cc')) { and ($ENV{'SSL_CLIENT_I_DN_CN'} eq 'Thawte Server CA')) { and ($ENV{'SSL_CLIENT_I_DN_C'} eq 'ZA') exit; } else { # test czasu ważności prezentowanego certyfikatu klienta use HTTP::Date; my @F = split / /, $ENV{'SSL_CLIENT_V_START'}; $tm = str2time("$F[1] $F[0] $F[3] $F[2] $F[4]") or exit; exit if ($tm > time); @F = split / /, $ENV{'SSL_CLIENT_V_END'}; $tm = str2time("$F[1] $F[0] $F[3] $F[2] $F[4]") or exit; exit if ($tm < time); } use CGI; $q = CGI->new; if (($filename = $q->param('clearing_report_file')) and ($filename =~ /^cfd/i)) { # w tej gałęzi, skrypt przyjmuje jeden raport CFD; tym zbiorem jest konkretnie # zawartosc parametru: CLEARING_REPORT_FILE, pozostałe parametry tego # formularza, to (duze litery sa tu użyte tylko dla wytłuszczenia): # - POS_ID - numer punktu sprzedaży (pochodzi z linii nagłówka TID zbiory CFC) # - BATCH - numer wysyłki, również pochodzi z nagłówka CFC. # Na koniec, ten skrypt musi zaznaczyć w bazach danych serwera, ze właśnie # odebrany zbiór CFD usuwa odpowiadający mu CFC z kolejki oczekujących na # wysłanie, co daje możliwość drugiej gałęzi tego skryptu, na wysłanie # kolejnego CFC przy następnym wywołaniu # poniższy tekst powinien pojawić się po zakończeniu odbierania pliku. print $q->header(-content_type => 'text/plain'); print "Received [$pos_id,$batch]\n"; # W przypadku wystąpienia błędów uniemożliwiających dalszą obslugę CFD, ta # część skryptu powinna brutalnie przerwać połączenie. } else { print $q->header(-type => "text/plain; charset=iso-8859-2", -content_transfer_encoding => "8bit"); # teraz, ten skrypt wysyła jeden, bieżący CFC. } ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 20 z 22 Zbiór CFC-001.TXT (format cfc) z zadeklarowanym separatorem (,) TID: 76543210 Nazwa: NIET-NET, Telefonia Miedzyplanetarna. Waluta: PLN Separator: , Format: C H1765518abcdef0333333333333t788a657889973,1903,991203,32100,PD,,I,fak-13 H2765518abcdef0955555559765t788a657889972,9705,991207,150,PD,,I,fak-96 H3765518abcdef09871467855555588a657889971,0312,991207,14999,PD,,I,fak-14 Zbiór CFC-002.TXT (format cfc) z domyślnym separatorem (tabulator) TID: 76543210 Nazwa: NIET-NET, Telefonia Miedzyplanetarna. Waluta: PLN Format: C md5: 0946e358c3f174ef2751ed0333eb7cfe H1765518abcdef0333333333333t788a657889973 H1765518abcdef0333333333333t788a657889973 H3765518abcdef09871467855555588a657889971 1903 9705 0312 991203 991207 991207 32100 PD 150 PD 14999 PD I I I fak-13 fak-96 fak-14 ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 21 z 22 Zbiór CFD-001.TXT (format cfd, odpowiedź na CFC-001.TXT) z zadeklarowanym separatorem (,) TID: 76543210 Nazwa: NIET-NET, Telefonia Miedzyplanetarna. Waluta: PLN Separator: , Format: D md5: 3ca22d6f7acf632b2cd797c626deffa4 WersjaOprogramowania: 2.1 T,00,H1765518abcdef0333333333333t788a657889973,1903,991203,32100,PD,,I,fak-13 F,02,H2765518abcdef0955555559765t788a657889972,9705,991207,150,PD,,I,fak-96 F,01,H3765518abcdef09871467855555588a657889971,0312,991207,149999,PD,,I,fak-14 Zbiór CFD-002.TXT (format cfd, odpowiedź na CFC-002.TXT) z domyślnym separatorem (tabulator) TID: 76543210 Nazwa: NIET-NET, Telefonia Miedzyplanetarna. Waluta: PLN Format: D md5: 3ca22d6f7acf632b2cd797c626deffa4 WersjaOprogramowania: 2.1 T F T 00 fak-13 02 fak-96 00 fak-14 H1765518abcdef0333333333333t788a657889973 1903 991203 32100 PD I H1765518abcdef0333333333333t788a657889973 9705 991207 150 PD I H3765518abcdef09871467855555588a657889971 0312 991207 14999 PD I ___________________________________________________________________________________ POLCARD is a registered trademark of FIRST DATA POLSKA S.A. FIRST DATA POLSKA S.A., Al. Jerozolimskie 92, 00-807 Warszawa, tel.: +48 22 515 30 05, faks: +48 22 515 30 98, Sąd rejestrowy: Sąd Rejonowy dla m. st. Warszawy, nr KRS 0000061293, kapitał zakładowy: 5.151.000 zł, kapitał wpłacony: 5.151.000 zł, NIP: 526-02-10-429, www.firstdata.pl Strona 22 z 22