Integracja Merchanta - dokumentacja techniczna

Transkrypt

Integracja Merchanta - dokumentacja techniczna
Integracja Merchanta
- dokumentacja techniczna
Wer 01/25
Warszawa, Wrzesień 2011
Integracja Merchanta – dokumentacja techniczna eService S.A.
1
1. Modyfikacje dokumentu
Data modyfikacji Wersja
Opis
2010-11-15
Wer 01/01
Tadeusz Żurawski – wersja podstawowa dokumentu
2010-11-18
Wer 01/02
Sebastian Ramatowski – uzupełnienie informacji
2010-11-19
Wer 01/03
Tadeusz Żurawski – uzupełnienie informacji
o mdStatus i wymagania techniczne
2010-12-07
Wer 01/04
Sebastian Ramatowski – uzupełnienie informacji
2010-12-07
Wer 01/05
Tadeusz Żurawski – modyfikacja tekstu
2010-12-08
Wer 01/06
Tadeusz Żurawski – uzupełnienie informacji
2010-12-08
Wer 01/07
Sebastian Ramatowski – uzupełnienie informacji
2010-12-13
Wer 01/08
Tadeusz Żurawski – uzupełnienie informacji
2010-12-14
Wer 01/09
Tadeusz Żurawski – uzupełnienie informacji
2010-12-20
Wer 01/10
Tadeusz Żurawski – uzupełnienie o spis treści
2010-12-31
Wer 01/11
Tadeusz Żurawski – modyfikacja dokumentacji
2011-01-05
Wer 01/12
Tadeusz Żurawski – wprowadzenie ograniczeń do
OrderId
2011-01-24
Wer 01/13
Tadeusz Żurawski – wprowadzenie informacji o
przelewach
2011-01-24
Wer 01/14
Sebastian Ramatowski – modyfikacja dokumentu
2011-02-02
Wer 01/15
Tadeusz Żurawski – modyfikacja dokumentu
2011-02-02
Wer 01/16
Sebastian Ramatowski – uzupełnienie informacji
2011-02-04
Wer 01/17
Sebastian Ramatowski – modyfikacja kodów walut
2011-02-07
Wer 01/18
Sebastian Ramatowski – modyfikacja dokumentu
2011-02-07
Wer 01/19
Tadeusz Żurawski – modyfikacja dokumentu
2011-02-08
Wer 01/20
Edyta Wypart – korekta
2011-02-17
Wer 01/21
Tadeusz Żurawski – modyfikacja dokumentu
2011-03-31
Wer 01/22
Tadeusz Żurawski – uzupełnienie informacji o
powiadomieniu i systemie PayPal
2011-04-04
Wer.01/23
Edyta Wypart – korekta
Integracja Merchanta – dokumentacja techniczna eService S.A.
2
2011-08-25
Wer. 01/24
Boroński Radosław – uzupełnienie informacji
dotyczących usługi PayPal
2011-09-23
Wer. 01/25
Norbert Bielski – uzupełnienie przykładów HTTP z
wymaganymi parametrami o wpis dotyczący
pendingUrl
Integracja Merchanta – dokumentacja techniczna eService S.A.
3
Spis treści:
1. Modyfikacje dokumentu......................................................................................... 2
2. eService Payment Gateway .................................................................................. 5
2.1.
Przeznaczenie dokumentu..................................................................................... 5
2.1.
Zalety eService Payment Gateway ........................................................................ 5
2.2.
Wymagania techniczne dla Systemu Sklepu.......................................................... 6
2.3.
Weryfikacja posiadacza karty................................................................................. 6
3. Udostępnienie płatności w sklepie ........................................................................ 7
3.1.
Uwierzytelnienie Merchanta - TOKEN.................................................................... 8
3.2.
Metody płatności ...................................................................................................11
3.3.
Typ Transakcji (TranTyp) ......................................................................................12
3.4.
Model 1 – Główna strona płatności eService (model domyślny, zalecany) ...........12
3.5.
Model 2 – Wybór formy płatności na stronie sklepu ..............................................24
3.6.
Metoda automatycznego powiadamiana sklepu o zmianie statusu zamówienia ....33
3.7.
Metoda płatności PayPal.......................................................................................38
4. Przejście do systemu produkcyjnego .................................................................. 45
5. Zarządzanie transakcjami ................................................................................... 48
5.1.
Zarządzanie transakcjami przez Panel Administracyjny Akceptanta (model
podstawowy) ....................................................................................................................48
5.2.
Zarządzanie transakcjami przez API (model rozszerzony) ....................................49
6. Natychmiastowe potwierdzanie transakcji........................................................... 50
7. Kontakt ................................................................................................................ 52
Integracja Merchanta – dokumentacja techniczna eService S.A.
4
2. eService Payment Gateway
2.1.
Przeznaczenie dokumentu
Niniejszy dokument opisuje podstawowe metody umożliwiające
obsługę transakcji dokonywanych za pomocą elektronicznych form
płatności z wykorzystaniem eService Payment Gateway.
Przedstawione w dokumencie modele integracji oprogramowania
sklepu z eService są zalecanymi modelami domyślnymi.
2.1.
Zalety eService Payment Gateway
2.1.1. Zalety dla posiadaczy kart
Zalety bezpiecznych płatności eService Payment Gateway dla posiadacza karty:
bezpieczne zakupy online,
brak potrzeby zakupu dodatkowego oprogramowania,
brak konieczności podawania numerów kart w sklepie.
.
2.1.2. Zalety dla Sprzedawców
Zalety bezpiecznych płatności eService Payment Gateway dla Merchantów:
łatwa integracja oprogramowania używanego przez sprzedawcę,
wzrost sprzedaży połączony ze wzrostem zaufania klientów (klient bardziej ufa
rozwiązaniom, w których nie podaje numerów kart na stronie sklepu),
zmniejszenie ryzyka nadużyć finansowych,
minimalizacja wzajemnych oddziaływań klienta i sprzedawcy,
przenoszenie zobowiązania ze sprzedawcy na bank wystawcę karty.
Integracja Merchanta – dokumentacja techniczna eService S.A.
5
2.2.
Wymagania techniczne dla Systemu Sklepu
System sklepu powinien spełniać następujące warunki:
•
ustalony stały publiczny nr IP,
•
przekierowanie do systemu płatniczego musi przenosić na stronę eService
(nie może obsługiwać strony eService we FRAME ani POP-UP),
•
wykorzystywać połączenie szyfrowane do wysyłania informacji,
•
zalecane wykorzystywać połączenie szyfrowane do odbioru informacji.
2.3.
Weryfikacja posiadacza karty
Usługa autoryzacji karty jest dokonywana w czasie rzeczywistym.
Proces ten składa się z faz:
klient wypełnia zakupu odpowiednie pola na stronie eService podając numer
karty, rodzaj karty itd. Następnie klient wciska przycisk „Płacę”.
po naciśnięciu przycisku „Płacę”, do wystawcy karty (Visa lub MasterCard)
wysyłana jest prośba o autentykację Klienta (3-D Secure). Wystawca
sprawdza czy kupujący jest zarejestrowany w programie.
jeśli posiadacz karty jest zarejestrowany to automatycznie otwiera się strona
banku i wtedy wpisuje on swoje sekretne hasło autentykujące.
jeśli hasło zostanie zatwierdzone przez bank to rozpoczyna się właściwy
proces autoryzacji.
jeśli hasło nie zostanie zatwierdzone to autoryzacja nie zostanie dokonana.
Integracja Merchanta – dokumentacja techniczna eService S.A.
6
3. Udostępnienie płatności w sklepie
W niniejszym rozdziale opisano sposoby, w jakie sklep może udostępnić możliwość
przejścia przez proces płatności swojemu klientowi:
Model 1 – wybór formy płatności na głównej stronie płatniczej eService
(model zalecany),
Model 2 – wybór formy płatności na stronie sklepu.
Do potrzeb integracji z systemem testowym wykorzystywane są następujące dane:
ClientId 720000001111101 – tylko karty płatnicze
ClientId 720000001111102 – karty płatnicze i przelewy
Password 123456
Numer karty VISA 4242424242424242
Data ważności
01/2014 – transakcja OK
01/2010 – transakcja NOK
Kod cvv2/cvc2/CID 000
Obok płatności kartowych jest możliwość wykonania płatności za pomocą przelewów
elektronicznych. Z punktu widzenia integracji systemów sklepu i eService, operacje
przelewów nie różnią się od płatności kartami.
UWAGA:
Mając na uwadze powyższe oraz fakt, iż banki nie udostępniają testowych
systemów bankowych, eService zaleca przeprowadzanie testów płatności
eService Payment Gateway poprzez wykonanie transakcji elektronicznych
wyłącznie za pomocą kart płatniczych.
Integracja Merchanta – dokumentacja techniczna eService S.A.
7
3.1.
Uwierzytelnienie Merchanta - TOKEN
Usługa Token jest odpowiedzialna za początkową rejestrację transakcji, zależy
w dużym stopniu od kwoty transakcji, która musi być stała dla danej płatności.
Sprawdza także nazwę użytkownika i hasło sprzedawcy. Serwis zwraca unikalny
identyfikator (Token) używany do identyfikacji transakcji w kolejnych etapach. Usługa
Token jest ujawniana w oprogramowaniu sprzedawcy - komunikacja nie jest
widoczna dla zleceniodawcy.
Pola do wysłania dla weryfikacji Akceptanta:
Nazwa parametru Opis parametru
ClientId MID sprzedawcy
Password Hasło sprzedawcy
OrderId
Unikalny numer zamówienia sprzedawcy może zawierać
znaki [0-9][A-Z][a-z] oraz [-] i mieć długość do 64 znaków.
Kwota transakcji z dwoma miejscami po przecinku lub kropce,
Total musi być taka sama dla dokończenia transakcji przez klienta
– nie może ulec zmianie w trakcie płatności)
Currency
Kod waluty zgodnie ze standardami ISO4217. Wartość
liczbowa reprezentowane jako ciąg znaków. Dla PLN - 985.
Obsługiwane waluty ( Currency) :
Kod Waluta
985 PLN
978 EUR
840 USD
826 GBP
756 CHF
208 DKK
124 CAD
Integracja Merchanta – dokumentacja techniczna eService S.A.
8
578 NOK
752 SEK
643 RUB
440 LTL
946 RON
428 LVL
203 CZK
392 JPY
348 HUF
191 HRK
980 UAH
949 TRY
223 EEK
Powyższe parametry muszą zostać wysłane metodą „post” pod adres:
https://testvpos.eservice.com.pl/pg/token
Przykład HTTP z wymaganymi parametrami.
<form method="post" action="https://testvpos.eservice.com.pl/pg/token">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="Password" value="123456" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
</form>
Odpowiedz z serwera:
Nazwa parametru Opis parametru
status
OK – gdy transakcja została zarejestrowana
ERROR – gdy transakcja nie została zarejestrowana
Integracja Merchanta – dokumentacja techniczna eService S.A.
9
Wygenerowany token (dla statusu==OK)
msg Lista błędnych wiadomości oddzielonych przecinkiem (dla
statusu==ERROR)
Przykład wiadomości z wygenerowanym tokenem:
status=OK&msg=86c830280a85416faf75e3cafc492162
Przykłady wiadomości z błędami:
status=ERROR&msg=amount-lack,currency-invalid,order-number-invalid
status=ERROR&msg=amount-invalid
Kody błędów:
Nazwa błędu Opis błędu
amount-lack Brak kwoty
amount-invalid Zły format kwoty
currency-lack Brak waluty
currency-invalid Nie obsługiwana waluta
order-number-lack Brak numeru zamówienia
order-number-invalid Nieprawidłowy numer zamówienia
order-number-duplicated Transakcja z tym numerem zamówienia już istnieje
merchant-lack Brak ID sprzedawcy
merchant-invalid Sprzedawca lub hasło nieprawidłowe
password-lack Brak hasła sprzedawcy
Integracja Merchanta – dokumentacja techniczna eService S.A.
10
3.2.
Metody płatności
Wyróżniamy trzy podstawowe metody płatności:
Metody płatności kartami:
Metoda płatności (PaymentMethod) Opis
VISA Płatności kartami Visa
MASTERCARD Płatności kartami MasterCard
MAESTRO Płatności kartami Maestro
AMEX Płatności kartami American Express
DINERS Płatności kartami Diners Club i Discover
Metody płatności przelewami:
Metoda płatności (PaymentMethod) Opis
BZWBK Bank Zachodni WBK
INTELIGO Inteligo
MTRANSFER mBank
MULTIBANK MultiBank
PEKAO Bank Pekao S.A.
ING Bank ING
LUKAS Lukas Bank
CITIBANK Bank Handlowy Citibank (PayByNet)
NORDEA Nordea (PayByNet)
MILLENNIUM Bank Millenium
MILLENNIUM_KIR Bank Millenium (PayByNet)
KREDYT Kredyt Bank
RAIFFEISEN Raiffeisen Bank
INVEST Invest Bank
DEUTSCHE Deutsche Bank
IPKO iPKO
Integracja Merchanta – dokumentacja techniczna eService S.A.
11
BPH BPH
ALIOR Alior Bank
EUROBANK Eurobank
Metoda płatności PayPal:
Metoda płatności (PaymentMethod) Opis
PAYPAL Metoda płatności PayPal
3.3.
Typ Transakcji (TranTyp)
Wyróżniamy dwa podstawowe typy transakcji:
PreAuth – jest to transakcja z rezerwacją środków z późniejszym dopełnieniem
transakcji
Auth – jest to standardowa autoryzacja kartą płatniczą z wykonaniem od razu
transakcji
finansowej.
Po
poprawnym
zrealizowaniu
transakcji
następuję
automatyczne rozliczenie transakcji
UWAGA:
Wykonywanie transakcji Auth (Autorozliczenie) jest standardowo zablokowane
w eService Payment Gateway. Jeżeli prowadzony przez Państwa model wdrożenia
wymaga jego aktywacji, prosimy o kontakt z eService (patrz rozdział „Kontakt”).
3.4.
Model 1 – Główna strona płatności eService (model domyślny,
zalecany)
W tym modelu sprzedawca, po skompletowaniu przez kupującego zamówienia
w sklepie, przekierowuje go na główna stronę płatności eService, gdzie dokonywany
jest wybór jednej z dostępnych form płatności.
Integracja Merchanta – dokumentacja techniczna eService S.A.
12
System wymaga od sklepu w tym przypadku zamieszczenia swoich danych i danych
dotyczących sprzedaży.
Pola poniżej są obowiązkowe:
Nazwa parametru Opis parametru
ClientId Numer sprzedawcy nadany przez eService – MID
StoreType Typ sprzedawcy .(Dla tego modelu musi być "3d_pay_hosting")
Token Token przesłany z systemu – patrz punkt 2.1.
TranType Pole musi zawierać „Auth” lub „PreAuth” – patrz punkt 2.3.
Total Kwota transakcji
Currency
Kod waluty zgodnie ze standardami ISO4217. Wartość liczbowa
reprezentowane jako ciąg znaków. Dla PLN - 985.
OrderId Unikalny numer zamówienia sprzedawcy
ConsumerName Imię kupującego
ConsumerSurename Nazwisko kupującego
okUrl
failUrl
pendingUrl
lang
Strona internetowa na którą ma być przekierowanie w
przypadku pomyślnej procedury płatności
Strona internetowa na którą ma być przekierowanie w
przypadku niepomyślnej procedury płatności
Strona internetowa na którą ma być przekierowanie w
przypadku oczekującej procedury płatności
Język formatki płatności (pl dla języka polskiego, en dla języka
angielskiego)
Przykład HTTP z wymaganymi parametrami.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
Integracja Merchanta – dokumentacja techniczna eService S.A.
13
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
<input type="hidden" name="pendingUrl" value=" https://www.teststore.com/pending.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="lang" value="pl" />
</form>
Po poprawnym przesłaniu danych do systemu płatniczego eService nastąpi
przekierowanie
do
strony
wyboru
sposobu
płatności.
Przykładowa
strona
zamieszczona jest poniżej.
Pojawienie się tej strony świadczy o poprawnym przekazaniu niezbędnych informacji
do rozpoczęcia procesu płatności. Następnie klient wybiera sposób płatności
wyświetlane mu jest odpowiednie okno z formularzem do wypełnienia, lub
przekierowany jest do wybranego banku (przelewy).
Dla wersji z obsługą kart płatniczych (MID: 720000001111101) pojawi się strona
zamieszczona poniżej.
Integracja Merchanta – dokumentacja techniczna eService S.A.
14
Integracja Merchanta – dokumentacja techniczna eService S.A.
15
Dla wersji z obsługą przelewów (MID: 720000001111102) pojawi się strona
zamieszczona poniżej.
Integracja Merchanta – dokumentacja techniczna eService S.A.
16
Ekran po wybraniu metody płatności kartą VISA
Po poprawnym wpisaniu danych i zatwierdzeniu przez wciśnięcie przycisku „Płacę”,
system po weryfikacji wygeneruje status transakcji, który po upływie domyślnego
czasu (30s) przekieruje na odpowiedni link powrotny. Będzie to link okUrl w sytuacji
powodzenia transakcji lub failUrl w sytuacji niepowodzenia transakcji.
Integracja Merchanta – dokumentacja techniczna eService S.A.
17
Poniżej przykład strony z komunikatem o pozytywnym zakończeniu transakcji, na
którą, zostanie przekierowany płacący (na zdefiniowany przez Merchanta okUrl).
Pola poniżej nie są obowiązkowe, można je traktować jako dodatkowe:
Nazwa parametru Opis parametru
Numer
ID
transakcji
dla
uwierzytelnienia
3D
zostaje
PayerTxnId wygenerowany przez system. (musi być zakodowany jako
based64 i mieć 28 znaków)
refreshtime
Czas oczekiwania na przekierowanie. (Domyślnie 30s jeżeli nie
jest podany)
TelVoice Numer telefonu
Email Adres e-mail
BillToCompany Nazwa firmy
BillToName Nazwa sprzedawcy
BillToStreet1 Adres sprzedawcy
Integracja Merchanta – dokumentacja techniczna eService S.A.
18
BillToStreet2 Adres 2 linii
BillToStreet3 Adres 3 linii
BillToStateProv Region
BillToCity Miasto
BillToPostalCode Kod pocztowy
BillToCountry ISO03166 Kod kraju (dla Polski 616)
ShipToCompany Nazwa firmy dostarczającej
ShipToName Nazwa osoby dostarczającej
ShipToStreet1 Adres dostarczającego
ShipToStreet2 Adres 2 linii
ShipToStreet3 Adres 3 linii
ShipToStateProv Region dostarczenia
ShipToCity Miasto dostarczenia
ShipToPostalCode Kod pocztowy miejsca dostarczenia
ShipToCountry ISO03166 Kod kraju (dla Polski 616)
ItemNumber1 Numer produktu
ProductCode1 Kod produktu
Qty1 Ilość
Desc1 Opis
Id1 ID produktu
Price1 Cena
Total1 Koszt całkowity
Przykład HTTP z wymaganymi i opcjonalnymi parametrami.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
Integracja Merchanta – dokumentacja techniczna eService S.A.
19
<input type="hidden" name="pendingUrl" value=" https://www.teststore.com/pending.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="lang" value="pl" />
<input type="hidden" name="PayerTxnId" value="egsF658v9uNpdqmksFZ5j9xHV/U=" />
<!—Informacje o sprzedającem [Opcjonalne]-->
<input type="hidden" name="TelVoice" value="012345678">
<input type="hidden" name="Email" value="[email protected]">
<input type="hidden" name="BillToCompany" value="Billing Company">
<input type="hidden" name="BillToName" value="John Smith">
<input type="hidden" name="BillToStreet1" value="Address line 1">
<input type="hidden" name="BillToStreet2" value="Address line 2">
<input type="hidden" name="BillToStreet3" value="Address line 3">
<input type="hidden" name="BillToCity" value="Warsaw">
<input type="hidden" name="BillToStateProv" value="mystate">
<input type="hidden" name="BillToPostalCode" value="12345">
<input type="hidden" name="BillToCountry" value="616">
<!—Informacje o dostawcy [Opcionalne]-->
<input type="hidden" name="ShipToCompany" value="Shipping Company">
<input type="hidden" name="ShipToName" value="John Smith">
<input type="hidden" name="ShipToStreet1" value="Address line 1">
<input type="hidden" name="ShipToStreet2" value="Address line 2">
<input type="hidden" name="ShipToStreet3" value="Address line 3">
<input type="hidden" name="ShipToCity" value="Warsaw">
<input type="hidden" name="ShipToStateProv" value="mystate">
<input type="hidden" name="ShipToPostalCode" value="12345">
<input type="hidden" name="ShipToCountry" value="616">
<!—Pozostałe paramerty [Opcjonalne]-->
<input type="hidden" name="ItemNumber1" value="a5">
<input type="hidden" name="ProductCode1" value="a5">
<input type="hidden" name="Qty1" value="3">
<input type="hidden" name="Desc1" value="a5 desc">
<input type="hidden" name="Id1" value="a5">
<input type="hidden" name="Price1" value="6.25">
<input type="hidden" name="Total1" value="7.50">
</form>
Integracja Merchanta – dokumentacja techniczna eService S.A.
20
Zmienna PayerTxnId może przyjmować wartość:
$data['PayerTxnId'] = trim(base64_encode(genxid()));
function genxid(){
$let = "ABCDEFGIKLMNOPRSTUWXYZ";
$num = "234567890";
$xid = substr($let, rand(0,(strlen($let)-1)), 1) .
substr($let, rand(0,(strlen($let)-1)), 1) .
substr($let, rand(0,(strlen($let)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($let, rand(0,(strlen($let)-1)), 1) .
substr($let, rand(0,(strlen($let)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) ;
return $xid;
}
Powyższe parametry muszą zostać wysłane pod adres:
https://testvpos.eservice.com.pl/fim/eservicegate
Pola, które wyśle sprzedawca mogą być wysyłane jako ukryte. Jeśli formularz
zostanie dostarczony do akceptanta nastąpi przygotowanie do zatwierdzenia
płatności. Po zakończeniu tego procesu informacje na temat weryfikacji z poniższymi
Integracja Merchanta – dokumentacja techniczna eService S.A.
21
parametrami będą kierowane do okUrl strony sprzedawcy (w przypadku powodzenia
transakcji) lub failUrl (w przypadku gdy transakcja będzie odrzucona).
Pola odpowiedzi przychodzące do Merchanta:
Nazwa parametru Opis parametru
Kod odpowiedzi:
Response
„Approved” – Zaakceptowana transakcja
„Error" – Wystąpił błąd
„Declined” – Odrzucona transakcja
ClientId Numer sprzedawcy nadany przekazany przez sklep
StoreType Typ sprzedawcy .(Dla tego modelu to "3d_pay_hosting")
Token
TranType
Token przesłany z systemu eService przy uwierzytelnieniu
merchanta – patrz punkt 2.1.
Pole określające typ transakcji ( „Auth” lub „PreAuth” ) –
patrz punkt 2.3.
Total Kwota transakcji
Currency
Kod waluty zgodnie ze standardem ISO4217. Wartość
liczbowa reprezentowane jako ciąg znaków. Dla PLN - 985.
OrderId Unikalny numer zamówienia sprzedawcy
ConsumerName Imię kupującego
ConsumerSurename Nazwisko kupującego
PaymentMethod Metoda płatności – patrz punkt 2.2.
mdStatus Status kodu dla uwierzytelnienia metodą 3D
AuthCode Kod weryfikacji transakcji
vendorCode Kod błędu dostawcy metody 3D
ErrMsg Informacja o przyczynie błędu
ProcReturnCode 2 cyfrowe status transakcji. 00 dla autoryzacji pozytywnej
Integracja Merchanta – dokumentacja techniczna eService S.A.
22
Parametr mdStatus zawiera informacje na temat uwierzytelniania 3D.
Kody mdStatus:
Wynik
url
mdStatus Opis
Authenticated transaction (Full 3D)
ok
1
Operacja zatwierdzona
Card not participating or attempt
ok
2,3,4
Karta nie obsługuje 3D
fail
5,6,7,8
Autoryzacja niemożliwa
(Half 3D)
Authentication not available or
system error
Authentication failed
do wykonania
fail
0
Operacja odrzucona
Integracja Merchanta – dokumentacja techniczna eService S.A.
23
3.5.
Model 2 – Wybór formy płatności na stronie sklepu
W tym modelu sprzedawca, po skompletowaniu przez kupującego zamówienia
w sklepie, umożliwia kupującemu dokonanie wyboru formy płatności na swojej
stronie. W następnym kroku kupujący przekierowany jest do właściwego banku lub
na stronę płatności kartą.
System wymaga od sklepu w tym przypadku zamieszczenia swoich danych i danych
dotyczących sprzedaży.
Pola poniżej są obowiązkowe:
Nazwa parametru Opis parametru
ClientId Numer sprzedawcy nadany przez eService – MID
StoreType
Typ sprzedawcy .(Dla tego modelu musi być
"3d_pay_hosting_pm")
Token Token przesłany z systemu – patrz punkt 2.1.
TranType
Pole określające typ transakcji ( „Auth” lub „PreAuth” ) – patrz
punkt 2.3.
Total Suma transakcji
PaymentMethod
Currency
Metoda płatności (VISA / MASTERCARD / MAESTRO /
DINERS / BZWBK / INELIGO …) – patrz punkt 2.2.
Kod waluty zgodnie ze standardem ISO4217. Wartość liczbowa
reprezentowane jako ciąg znaków. Dla PLN - 985.
OrderId Unikalny numer zamówienia sprzedawcy
ConsumerName Imię kupującego
ConsumerSurename Nazwisko kupującego
okUrl
failUrl
lang
Strona internetowa na którą ma być przekierowanie w
przypadku pomyślnej procedury płatności
Strona internetowa na którą ma być przekierowanie w
przypadku niepomyślnej procedury płatności
Język formatki płatności (pl dla języka polskiego, en dla języka
angielskiego)
Integracja Merchanta – dokumentacja techniczna eService S.A.
24
Przykład HTTP z wymaganymi parametrami.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting_pm" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="PaymentMethod" value="VISA" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
<input type="hidden" name="pendingUrl" value=" https://www.teststore.com/pending.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="lang" value="pl" />
</form>
Po poprawnym przesłaniu danych do systemu płatniczego eService SA nastąpi
przekierowanie do strony z formularzem do wypełnienia.
Integracja Merchanta – dokumentacja techniczna eService S.A.
25
Po poprawnym wpisaniu danych i zatwierdzeniu przez wciśnięcie przycisku „Płacę”,
system po weryfikacji wygeneruje status transakcji, który po upływie domyślnego
czasu (30s) przekieruje na odpowiedni link powrotny. Będzie to link okUrl w sytuacji
powodzenie transakcji lub failUrl w sytuacji niepowodzenia transakcji.
Poniżej przykład strony z komunikatem o pozytywnym zakończeniu transakcji, na
którą, po zakończeniu domyślnego czasu (30s), zostanie przekierowana na
zdefiniowany przez Merchant okUrl.
Integracja Merchanta – dokumentacja techniczna eService S.A.
26
Pola poniżej nie są obowiązkowe, można je traktować jako dodatkowe:
Nazwa parametru Opis parametru
Numer
ID
transakcji
dla
uwierzytelnienia
3D
zostaje
PayerTxnId wygenerowany przez system. (musi być zakodowany jako
based64 i mieć 28 znaków)
refreshtime
Czas oczekiwania na przekierowanie. (Domyślnie 30s jeżeli nie
jest podany)
TelVoice Numer telefonu
Email Adres e-mail
BillToCompany Nazwa firmy
BillToName Nazwa sprzedawcy
BillToStreet1 Adres sprzedawcy
BillToStreet2 Adres 2 linii
BillToStreet3 Adres 3 linii
BillToStateProv Region
BillToCity Miasto
Integracja Merchanta – dokumentacja techniczna eService S.A.
27
BillToPostalCode Kod pocztowy
BillToCountry ISO03166 Kod kraju (dla Polski 616)
ShipToCompany Nazwa firmy do której ma być dostarczane zamówienie
ShipToName Osoba kontaktowa do przyjęcia zamówienia
ShipToStreet1 Adres dostarczenia zamówienia
ShipToStreet2 Adres 2 linii
ShipToStreet3 Adres 3 linii
ShipToStateProv Region dostarczenia
ShipToCity Miasto dostarczenia
ShipToPostalCode Kod pocztowy miejsca dostarczenia
ShipToCountry ISO03166 Kod kraju (dla Polski 616)
ItemNumber1 Numer produktu
ProductCode1 Kod produktu
Qty1 Ilość
Desc1 Opis
Id1 ID produktu
Price1 Cena
Total1 Koszt całkowity
Przykład HTTP z wymaganymi i opcjonalnymi parametrami.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting_pm" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="PaymentMethod" value="VISA" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
<input type="hidden" name="pendingUrl" value=" https://www.teststore.com/pending.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="lang" value="pl" />
<input type="hidden" name="PayerTxnId" value="egsF658v9uNpdqmksFZ5j9xHV/U=" />
Integracja Merchanta – dokumentacja techniczna eService S.A.
28
<!—Informacje o sprzedającym [Opcjonalne]-->
<input type="hidden" name="TelVoice" value="012345678">
<input type="hidden" name="Email" value="[email protected]">
<input type="hidden" name="BillToCompany" value="Billing Company">
<input type="hidden" name="BillToName" value="John Smith">
<input type="hidden" name="BillToStreet1" value="Address line 1">
<input type="hidden" name="BillToStreet2" value="Address line 2">
<input type="hidden" name="BillToStreet3" value="Address line 3">
<input type="hidden" name="BillToCity" value="Warsaw">
<input type="hidden" name="BillToStateProv" value="mystate">
<input type="hidden" name="BillToPostalCode" value="12345">
<input type="hidden" name="BillToCountry" value="616">
<!—Informacje o dostawcy [Opcionalne]-->
<input type="hidden" name="ShipToCompany" value="Shipping Company">
<input type="hidden" name="ShipToName" value="John Smith">
<input type="hidden" name="ShipToStreet1" value="Address line 1">
<input type="hidden" name="ShipToStreet2" value="Address line 2">
<input type="hidden" name="ShipToStreet3" value="Address line 3">
<input type="hidden" name="ShipToCity" value="Warsaw">
<input type="hidden" name="ShipToStateProv" value="mystate">
<input type="hidden" name="ShipToPostalCode" value="12345">
<input type="hidden" name="ShipToCountry" value="616">
<!—Pozostałe paramerty [Opcjonalne]-->
<input type="hidden" name="ItemNumber1" value="a5">
<input type="hidden" name="ProductCode1" value="a5">
<input type="hidden" name="Qty1" value="3">
<input type="hidden" name="Desc1" value="a5 desc">
<input type="hidden" name="Id1" value="a5">
<input type="hidden" name="Price1" value="6.25">
<input type="hidden" name="Total1" value="7.50">
</form>
Integracja Merchanta – dokumentacja techniczna eService S.A.
29
Zmienna PayerTxnId może przyjmować wartość:
$data['PayerTxnId'] = trim(base64_encode(genxid()));
function genxid(){
$let = "ABCDEFGIKLMNOPRSTUWXYZ";
$num = "234567890";
$xid = substr($let, rand(0,(strlen($let)-1)), 1) .
substr($let, rand(0,(strlen($let)-1)), 1) .
substr($let, rand(0,(strlen($let)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($let, rand(0,(strlen($let)-1)), 1) .
substr($let, rand(0,(strlen($let)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) .
substr($num, rand(0,(strlen($num)-1)), 1) ;
return $xid;
}
Powyższe parametry muszą zostać wysłane pod adres:
https://testvpos.eservice.com.pl/fim/eservicegate
Pola, które wyśle sprzedawca mogą być wysyłane jako ukryte. Jeśli formularz
zostanie dostarczony do akceptanta nastąpi przygotowanie do zatwierdzenia
płatności. Po zakończeniu tego procesu informacje na temat weryfikacji z poniższymi
Integracja Merchanta – dokumentacja techniczna eService S.A.
30
parametrami będą kierowane do okUrl strony sprzedawcy (w przypadku powodzenia
transakcji) lub failUrl (w przypadku gdy transakcja będzie odrzucona).
Kody odpowiedzi:
Nazwa parametru Opis parametru
Kod odpowiedzi:
Response
„Approved” – Zaakceptowana transakcja
„Error" – Wystąpił błąd
„Declined” – Odrzucona transakcja
ClientId Numer sprzedawcy nadany przekazany przez sklep
StoreType Typ sprzedawcy .(Dla tego modelu to "3d_pay_hosting_pm")
Token
TranType
Token przesłany z systemu przy uwierzytelnieniu merchanta
– patrz punkt 2.1.
Pole określające typ transakcji ( „Auth” lub „PreAuth” ) –
patrz punkt 2.3.
Total Kwota transakcji
Currency
Kod waluty zgodnie ze standardami ISO4217. Wartość
liczbowa reprezentowane jako ciąg znaków. Dla PLN - 985.
OrderId Unikalny numer zamówienia sprzedawcy
ConsumerName Imię kupującego
ConsumerSurename Nazwisko kupującego
PaymentMethod Metoda płatności – patrz punkt 2.2.
mdStatus Status kodu dla uwierzytelnienia metodą 3D
AuthCode Kod weryfikacji transakcji
vendorCode Kod błędu dostawcy metody 3D
ErrMsg Informacja o przyczynie błędu
ProcReturnCode 2 cyfrowe status transakcji. 00 dla autoryzacji pozytywnej
Integracja Merchanta – dokumentacja techniczna eService S.A.
31
Parametr mdStatus zawiera informacje na temat uwierzytelniania 3D.
Kody mdStatus:
Wynik
url
mdStatus Opis
Authenticated transaction (Full 3D)
ok
1
Operacja zatwierdzona
Card not participating or attempt
ok
2,3,4
Karta nie obsługuje 3D
fail
5,6,7,8
Autoryzacja niemożliwa
(Half 3D)
Authentication not available or
system error
Authentication failed
do wykonania
fail
0
Operacja odrzucona
Integracja Merchanta – dokumentacja techniczna eService S.A.
32
3.6.
Metoda automatycznego powiadamiana sklepu o zmianie statusu
zamówienia
Model automatycznego powiadomienia sklepu o zmianie statusu zamówienia dotyczy
głównie d-przelewów oraz niektórych e-przelewów. Występują tylko w sytuacji gdy
klient musi dokonać przelewu, a bank od razu nie dokonuje transakcji tylko wystawia
status na oczekujący (pending). Aby uzyskać automatyczny status powiadomienia
o zmianie statusu należy wysłać następujące pola:
Pola poniżej są obowiązkowe:
Nazwa parametru Opis parametru
ClientId Numer sprzedawcy nadany przez eService – MID
StoreType
Typ sprzedawcy .(dla modelu 1 musi być "3d_pay_hosting"; dla
modelu 2 musi być "3d_pay_hosting_pm".)
Token Token przesłany z systemu – patrz punkt 2.1.
TranType Pole musi zawierać „Auth” lub „PreAuth”
Total Kwota transakcji
Currency
Kod waluty zgodnie ze standardami ISO4217. Wartość liczbowa
reprezentowane jako ciąg znaków. Dla PLN - 985.
OrderId Unikalny numer zamówienia sprzedawcy
okUrl
failUrl
pendingUrl
Strona
internetowa
na
którą
ma
być
przekierowanie
w przypadku pomyślnej procedury płatności
Strona
internetowa
na
którą
ma
być
przekierowanie
w przypadku niepomyślnej procedury płatności
Strona
internetowa
na
którą
ma
być
przekierowanie
w przypadku oczekującej procedury płatności
ConsumerName Imię kupującego
ConsumerSurename Nazwisko kupującego
lang
Język formatki płatności (pl dla języka polskiego, en dla języka
angielskiego)
Integracja Merchanta – dokumentacja techniczna eService S.A.
33
Przykład HTTP z wymaganymi parametrami dla modelu 1.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="pendingUrl" value="https:// www.teststore.com /pending.php" />
<input type="hidden" name="lang" value="pl" />
</form>
Przykład HTTP z wymaganymi parametrami dla modelu 2.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting_pm" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="pendingUrl" value="https:// www.teststore.com /pending.php" />
<input type="hidden" name="lang" value="pl" />
</form>
Po poprawnym przesłaniu danych do systemu płatniczego eService nastąpi
przekierowanie
do
strony
wyboru
sposobu
płatności.
Przykładowa
strona
zamieszczona jest poniżej. Następnie klient wybiera sposób płatności i zostaje
przekierowany do wybranego banku.
Integracja Merchanta – dokumentacja techniczna eService S.A.
34
Poniżej przykład strony z komunikatem o pozytywnym zakończeniu transakcji. Klient
zostanie przekierowany na zdefiniowany przez Merchanta pendingUrl, skrypt z
obsługą operacji oczekującej.
Integracja Merchanta – dokumentacja techniczna eService S.A.
35
Powyższe parametry muszą zostać wysłane pod adres:
https://testvpos.eservice.com.pl/fim/eservicegate
Pola, które wyśle Merchant mogą być wysyłane jako ukryte. Po zakończeniu tego
procesu informacje na temat weryfikacji z poniższymi parametrami będą kierowane
do pendingUrl strony opisującej oczekiwanie na przelew.
Pola odpowiedzi przychodzące do Merchanta:
Nazwa parametru Opis parametru
Response
Kod odpowiedzi:
„Pending” – transakcja oczekująca
ClientId Numer sprzedawcy nadany przekazany przez sklep
Token
Token przesłany z systemu przy uwierzytelnieniu merchanta
– patrz punkt 2.1.
Integracja Merchanta – dokumentacja techniczna eService S.A.
36
TranType
Pole określające typ transakcji ( „Auth” lub „PreAuth” ) –
patrz punkt 2.3.
Total Kwota transakcji
Currency
Kod waluty zgodnie ze standardami ISO4217. Wartość
liczbowa reprezentowane jako ciąg znaków. Dla PLN - 985.
OrderId Unikalny numer zamówienia sprzedawcy
ConsumerName Imię kupującego
ConsumerSurename Nazwisko kupującego
PaymentMethod Metoda płatności – patrz punkt 2.2. – przelewy
Następnie po zmianie statusu w systemie akceptanta z „oczekującego” na
„zatwierdzony” zostanie automatycznie wysłana informacja na okUrl o zatwierdzeniu
transakcji.
Na okUrl zostanie wysłana informacja zawierająca:
Nazwa parametru Opis parametru
Response
Kod odpowiedzi:
„Approved” – transakcja zaakceptowana
ClientId Numer sprzedawcy nadany przekazany przez sklep
Token
TranType
Token przesłany z systemu przy uwierzytelnieniu merchanta
– patrz punkt 2.1.
Pole określające typ transakcji ( „Auth” lub „PreAuth” ) –
patrz punkt 2.3.
Total Kwota transakcji
Currency
Kod waluty zgodnie ze standardami ISO4217. Wartość
liczbowa reprezentowane jako ciąg znaków. Dla PLN - 985.
OrderId Unikalny numer zamówienia sprzedawcy
ConsumerName Imię kupującego
ConsumerSurename Nazwisko kupującego
PaymentMethod Metoda płatności – patrz punkt 2.2. – przelewy
Integracja Merchanta – dokumentacja techniczna eService S.A.
37
3.7.
Metoda płatności PayPal
Integracja płatności PayPal z eService zachodzi według modelu 1.
Aby uzyskać możliwość procesowania transakcji z wykorzystaniem systemu PayPal
merchant musi być zarejestrowany i posiadać aktywne konto w systemie PayPal.
Dodatkowo należy zdefiniować w systemie informację o rodzaju dostarczanych
usług. Należy zdefiniować czy merchant sprzedaje tzw. dobra wirtualne czy dobra
materialne. Jest to parametr niezbędny do prawidłowego dziania sytemu płatności
PayPal.
3.7.1. Tworzenie konta PayPal dla środowiska testowego
………………
………………
3.7.2. Procedura testów dla środowiska testowego PayPal
Sprzedawca,
po
skompletowaniu
przez
kupującego
zamówienia
w sklepie,
przekierowuje go na główna stronę płatności eService, gdzie dokonywany jest wybór
jednej z dostępnych form płatności.
System wymaga od sklepu w tym przypadku zamieszczenia swoich danych i danych
dotyczących sprzedaży.
Pola poniżej są obowiązkowe:
Nazwa parametru Opis parametru
ClientId Numer sprzedawcy nadany przez eService – MID
StoreType Typ sprzedawcy .(Dla tego modelu musi być "3d_pay_hosting")
Integracja Merchanta – dokumentacja techniczna eService S.A.
38
Token Token przesłany z systemu – patrz punkt 2.1.
TranType Pole musi zawierać „Auth” lub „PreAuth” – patrz punkt 2.3.
Total Kwota transakcji
Currency
Kod waluty zgodnie ze standardami ISO4217. Wartość liczbowa
reprezentowane jako ciąg znaków. Dla PLN - 985.
OrderId Unikalny numer zamówienia sprzedawcy
ConsumerName Imię kupującego
ConsumerSurename Nazwisko kupującego
okUrl
failUrl
lang
Strona internetowa na którą ma być przekierowanie w
przypadku pomyślnej procedury płatności
Strona internetowa na którą ma być przekierowanie w
przypadku niepomyślnej procedury płatności
Język formatki płatności (pl dla języka polskiego, en dla języka
angielskiego)
Przykład HTTP z wymaganymi parametrami.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
<input type="hidden" name="pendingUrl" value=" https://www.teststore.com/pending.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="lang" value="pl" />
</form>
Po poprawnym przesłaniu danych do systemu płatniczego eService nastąpi
przekierowanie
do
strony
wyboru
sposobu
płatności.
Przykładowa
strona
zamieszczona jest poniżej.
Pojawienie się tej strony świadczy o poprawnym przekazaniu niezbędnych informacji
Integracja Merchanta – dokumentacja techniczna eService S.A.
39
do rozpoczęcia procesu płatności. Następnie klient wybiera sposób płatności
wyświetlane mu jest odpowiednie okno z formularzem do wypełnienia, lub
przekierowany jest do wybranego banku (przelewy).
Dla wersji z obsługą kart płatniczych (MID: 720000001111107) pojawi się strona
zamieszczona poniżej.
Poniżej strona z wyborem płatności na której klient może wybrać metodę PayPal:
Przykład komunikatu dla zapytania o token z wymaganymi parametrami:
<input type="hidden" name="Token" value="0f4a21d16d754afa9282e6e2cdfe3acb">
<input type="hidden" name="lang" value="pl">
<input type="hidden" name="xid" value="JjV3E2dK4GTUk2ekveh8n2LB/lY=">
<input type="hidden" name="Currency" value="985">
<input type="hidden" name="StoreType" value="3d_pay_hosting">
<input type="hidden" name="Total" value="9,95">
<input type="hidden" name="okUrl" value="http://dev-tool.com/eservice/php/teststore.php">
Integracja Merchanta – dokumentacja techniczna eService S.A.
40
<input type="hidden" name="pendingUrl" value=" https://www.teststore.com/pending.php " / >
<input type="hidden" name="IPAddress" value="62.233.165.73">
<input type="hidden" name="Password" value="123456">
<input type="hidden" name="ClientId" value="720000001111101">
<input type="hidden" name="ConsumerName" value="Michal">
<input type="hidden" name="OrderId" value="RPAW-64">
<input type="hidden" name="failUrl" value="http://dev-tool.com/eservice/php/teststore.php">
<input type="hidden" name="TranType" value="Auth">
<input type="hidden" name="ConsumerSurname" value="Smith">
<input type="hidden" name="failCount" value="0">
<input type="hidden" name="PaymentMethod" value="">
Przykład HTTP z wymaganymi parametrami dla transakcji PayPal:
<input type="hidden" name="Response" value="Pending">
<input type="hidden" name="token" value="EC-0HN38695MF9539819">
<input type="hidden" name="IPAddress" value="62.233.165.73">
<input type="hidden" name="oid" value="RPAW-65">
<input type="hidden" name="clientid" value="720000001111101">
<input type="hidden" name="lang" value="pl">
<input type="hidden" name="PayerID" value="63FWQQF3F2DM4">
<input type="hidden" name="paypal" value="1">
<input type="hidden" name="Response" value="Pending">
<input type="hidden" name="PAYPAL.PendingMsg" value="Pending unilateral">
<input type="hidden" name="PAYPAL.TransId" value="2JP22245678265332">
<input type="hidden" name="ClientId" value="720000001111101">
<input type="hidden" name="TransId" value="112381010470810036">
<input type="hidden" name="TranType" value="Auth">
<input type="hidden" name="PaymentMethod" value="PAYPAL">
<input type="hidden" name="ProcReturnCode" value="">
<input type="hidden" name="Total" value="9.95">
<input type="hidden" name="Currency" value="PLN">
<input type="hidden" name="OrderId" value="RPAW-65">
<input type="hidden" name="ConsumerName" value="eService">
<input type="hidden" name="ConsumerSurname" value="eService">
<input type="hidden" name="Email" value="adres email wprowadzony przez Merchanta w
konfiguracji PayPal, np. [email protected]">
<input type="hidden" name="rnd" value="9hMrFPljOwzjEqoJJGkA">
<input type="hidden" name="ErrMsg" value="">
<input type="hidden" name="HASHPARAMS"
value="ClientId:OrderId:ProcReturnCode:Response:rnd:">
<input type="hidden" name="HASHPARAMSVAL"
value="720000001111101RPAW-65Pending9hMrFPljOwzjEqoJJGkA">
<input type="hidden" name="HASH" value="0vQrNpM0CIYkZ7MuGqsurFnefQE=">
Przykład HTTP z wymaganymi parametrami dla transakcji PayPal.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
Integracja Merchanta – dokumentacja techniczna eService S.A.
41
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="pendingUrl" value="https:// www.teststore.com /pending.php" />
<input type="hidden" name="lang" value="pl" />
</form>
Przykład HTTP z wymaganymi i opcjonalnymi parametrami.
<form method="post" action="https://testvpos.eservice.com.pl/fim/eservicegate">
<input type="hidden" name="ClientId" value="720000001111101"/>
<input type="hidden" name="StoreType" value="3d_pay_hosting_pm" />
<input type="hidden" name="Token" value="16bf1b3fce6f43d48ddb5a0b813bccd2" />
<input type="hidden" name="TranType" value="Auth" />
<input type="hidden" name="PaymentMethod" value="VISA" />
<input type="hidden" name="Total" value="9.95" />
<input type="hidden" name="Currency" value="985" />
<input type="hidden" name="OrderId" value="2010122814122383" />
<input type="hidden" name="ConsumerName" value="Michał" />
<input type="hidden" name="ConsumerSurname" value="Smith"/>
<input type="hidden" name="okUrl" value=" https://www.teststore.com/ok.php " / >
<input type="hidden" name="pendingUrl" value=" https://www.teststore.com/pending.php " / >
<input type="hidden" name="failUrl" value="https:// www.teststore.com /fail.php" />
<input type="hidden" name="lang" value="pl" />
<input type="hidden" name="PayerTxnId" value="egsF658v9uNpdqmksFZ5j9xHV/U=" />
<!—Informacje o sprzedającym [Opcjonalne]-->
<input type="hidden" name="TelVoice" value="012345678">
<input type="hidden" name="Email" value="[email protected]">
<input type="hidden" name="BillToCompany" value="Billing Company">
<input type="hidden" name="BillToName" value="John Smith">
<input type="hidden" name="BillToStreet1" value="Address line 1">
<input type="hidden" name="BillToStreet2" value="Address line 2">
Integracja Merchanta – dokumentacja techniczna eService S.A.
42
<input type="hidden" name="BillToStreet3" value="Address line 3">
<input type="hidden" name="BillToCity" value="Warsaw">
<input type="hidden" name="BillToStateProv" value="mystate">
<input type="hidden" name="BillToPostalCode" value="12345">
<input type="hidden" name="BillToCountry" value="616">
<!—Informacje o dostawcy [Opcionalne]-->
<input type="hidden" name="ShipToCompany" value="Shipping Company">
<input type="hidden" name="ShipToName" value="John Smith">
<input type="hidden" name="ShipToStreet1" value="Address line 1">
<input type="hidden" name="ShipToStreet2" value="Address line 2">
<input type="hidden" name="ShipToStreet3" value="Address line 3">
<input type="hidden" name="ShipToCity" value="Warsaw">
<input type="hidden" name="ShipToStateProv" value="mystate">
<input type="hidden" name="ShipToPostalCode" value="12345">
<input type="hidden" name="ShipToCountry" value="616">
<!—Pozostałe paramerty [Opcjonalne]-->
<input type="hidden" name="ItemNumber1" value="a5">
<input type="hidden" name="ProductCode1" value="a5">
<input type="hidden" name="Qty1" value="3">
<input type="hidden" name="Desc1" value="a5 desc">
<input type="hidden" name="Id1" value="a5">
<input type="hidden" name="Price1" value="6.25">
<input type="hidden" name="Total1" value="7.50">
</form>
Po poprawnym przesłaniu danych do systemu płatniczego eService nastąpi
przekierowanie do strony systemu PayPal. Warunkiem dokończenia transakcji jest
wprowadzenie danych adresu email i hasła umożliwiających logowanie do systemu
płatności PayPal. Przykładowa strona zamieszczona jest poniżej.
Integracja Merchanta – dokumentacja techniczna eService S.A.
43
Po pozytywnej weryfikacji danych logowania system przenosi płatnika do strony
żądające potwierdzenia operacji płatności.
Integracja Merchanta – dokumentacja techniczna eService S.A.
44
Kontynuacja płatności jest możliwa poprzez akceptację na dole strony.
Kolejny krok to wprowadzenie danych karty, na podstawie której realizowana będzie
płatność. Przykładowy formularz poniżej.
Zakończenie procesu płatności PayPal powoduje dodanie transakcji po stronie
systemu
eService,
informacja
dla
Merchanta
będzie
dostępna
w
Panelu
Administracyjnych Merchnata.
4. Przejście do systemu produkcyjnego
Po pozytywnie zakończonym etapie integracji z systemem testowym należy zgłosić
ten fakt na adres [email protected] w celu uzyskania danych do przełączenia
się na produkcję. Ważną daną będzie podanie numeru telefonu kontaktowego, na
który zostanie przekazane hasło dostępu do systemu produkcyjnego dla konkretnego
Integracja Merchanta – dokumentacja techniczna eService S.A.
45
„ClientId”. W informacji zwrotnej e-mail zostaną podane wszystkie pozostałe
niezbędne dane do przejścia na produkcję.
Po uzyskaniu danych produkcyjnych i wprowadzeniu ich w Państwa sklepie
internetowym należy przesłać drogą e-mail ([email protected]), adres strony
www sklepu z zaimplementowaną płatnością elektroniczną oraz krótką informację jak
dokonać operacji płatniczej. Próba płatności, która zostanie przeprowadzona
zostanie odrzucona przez bank lub organizację płatniczą.
Po zweryfikowaniu tej funkcjonalności zostanie wysłany na adres zwrotny e-mail
dokument
„Potwierdzenie
Wdrożenia
Oprogramowania”,
które
należy
podstemplować, podpisać i odesłać skan na adres e-mail [email protected]
Po dopełnieniu wszystkich formalności zostaną Państwo uruchomieni produkcyjnie.
4.1.
Tworzenie konta PayPal dla środowiska produkcyjnego
4.1.1 Załóż konto firmowe PayPal
• Dokonasz tego szybko i bezpłatnie, klikając przycisk Załóż konto na stronie
www.paypal.pl.
• Podczas zakładania konta konieczna będzie akceptacja standardowej Umowy z
Użytkownikiem usługi PayPal, która określa zasady współpracy Twojej firmy z firmą
PayPal.
• Krok związany z dodawaniem karty kredytowej możesz anulować.
• Potwierdź adres e-mail przypisany do konta PayPal Merchanta.
4.1.2 Dodaj rachunek bankowy
• Zaloguj się do swojego konta PayPal.
• Na karcie Moje konto z menu Profil wybierz polecenie Dodaj lub usuń rachunek
bankowy.
• Dodanie rachunku bankowego służy m.in. do weryfikacji konta PayPal Merchanta.
4.1.3. Skonfiguruj swoje konto firmowe PayPal do odbioru płatności za
pośrednictwem platformy eService
• Zaloguj się do swojego konta PayPal.
Integracja Merchanta – dokumentacja techniczna eService S.A.
46
• Na karcie Moje konto z menu Profil wybierz polecenie Więcej opcji.
• Wykonaj następujące instrukcje, w zależności od widoku profilu:
• Wersja klasyczna (opcje główne zgrupowane są w trzech kolumnach,
zatytułowanych: Informacje o koncie, Informacje finansowe i Preferencje
sprzedaży)
• W lewej kolumnie, zatytułowanej Informacje o koncie, kliknij łącze Dostęp do API.
• Wersja nowa (opcje główne zgrupowane są w sekcjach panelu po lewej: Dane
mojej firmy, Moje pieniądze, Moje ustawienia i Moje narzędzia sprzedaży)
• W panelu po lewej kliknij łącze sekcji Moje narzędzia sprzedaży.
• W sekcji Sprzedaż w Internecie (jeśli jest zwinięta, kliknij znak plusa na lewo od jej
tytułu) obok opcji Dostęp do API kliknij łącze Zaktualizuj.
• W sekcji Opcja 1 po lewej kliknij łącze Dodaj lub edytuj uprawnienia dostępu do
API.
• Kliknij przycisk Dodaj nową inną firmę.
•
W
polu
Nazwa
użytkownika
dla
uprawnień
innej
firmy
wprowadź
paypal_api1.eservice.com.pl i kliknij przycisk Sprawdź:
• Na liście dostępnych uprawnień zaznacz opcje wymienione poniżej i kliknij przycisk
Dodaj:
• Przetwarzanie płatności z wykorzystaniem ekspresowej realizacji transakcji
• Dokonywanie zwrotu pieniędzy dla konkretnej transakcji
• Uzyskiwanie informacji dotyczących transakcji
• Przeszukiwanie Twoich transakcji pod kątem przedmiotów spełniających określone
kryteria i wyświetlanie wyników
• Autoryzowanie i pobieranie środków dotyczących Twoich transakcji PayPal
4.1.4. Aktywuj płatności PayPal po stronie eService
• Prześlij adres email przypisany do Twojego konta PayPal do firmy eService na
adres :
[email protected]
• W momencie aktywacji płatności PayPal przez firmę eService konfiguracja PayPal
jest zakończona.
Integracja Merchanta – dokumentacja techniczna eService S.A.
47
5. Zarządzanie transakcjami
Zarządzanie transakcjami dokonanymi przez eService Payment Gateway możliwe
jest na kilka sposobów, w zależności od zaawansowania systemów wewnętrznych
sklepu.
5.1.
Zarządzanie transakcjami przez Panel Administracyjny Akceptanta
(model podstawowy)
Podstawowym i domyślnym narzędziem do obsługi transakcji przez sklep jest Panel
Administracyjny Akceptanta, do którego sklep dostaje dostęp podczas wdrożenia.
Panel jest narzędziem stosowanym przez małe i średnie sklepy internetowe.
Dostęp do Panelu umożliwia dokonywanie poniższych grup operacji związanych
bezpośrednio z transakcjami:
•
operacje uzupełniające dokonywane po transakcji kupującego (Przekazanie
transakcji do rozliczenia, Unieważnienie, Zwrot),
•
pozyskiwanie informacji o statusie operacji,
•
pozyskiwanie informacji o historii operacji.
Ponadto, dzięki dostępowi do Panelu można wykonywać czynności dodatkowe,
w tym m.in.:
•
obsługa transakcji telefonicznych, Call Center,
•
generowanie raportów transakcyjnych,
•
administracja Panelem - tworzenie użytkowników Panelu i nadawanie im
odpowiednich uprawnień (np. dla pracowników sklepu, zarządzających
biznesem),
•
wybór wersji językowych Panelu.
Integracja Merchanta – dokumentacja techniczna eService S.A.
48
5.2.
Zarządzanie transakcjami przez API (model rozszerzony)
Alternatywnym
sposobem
zarządzania
transakcjami
jest
wykorzystanie
zaawansowanych integracji wewnętrznych systemów sklepu z systemem eService za
pomocą interface API.
Metoda integracji przez API jest przeznaczona m.in. dla partnerów, sklepów
obsługujących:
•
dużą liczbę transakcji,
•
transakcje telefoniczne, Call Center, IVR,
•
transakcje cyklicznych zleceń obciążenia karty,
•
transakcje typu one-click shopping.
System eService obsługuje następujące technologie integracji API:
•
XML,
•
Java Jpay,
•
DLL,
•
.NET.
Partnerów zainteresowanych obsługą transakcji przez API prosimy o kontakt
z eService (vide: rozdział „Kontakt”) w celu uzyskania dokumentacji wdrożenia API.
Integracja Merchanta – dokumentacja techniczna eService S.A.
49
6. Natychmiastowe potwierdzanie transakcji
W zależności od rodzaju działalności prowadzonej przez sklep istotny jest parametr
czasowy, w którym status transakcji może być przekazany do sklepu.
eService
zapewnia
natychmiastowe
przekazanie
statusów
transakcji
dla
następujących form płatności:
•
Visa
•
MasterCard
•
Maestro
•
Diners Club, Discover
•
American Express
Lista banków, które informują o dostępności swoich systemów 24/7/365:
•
mBank (mTransfer)
•
MultiBank (MultiTransfer)
•
Nordea
•
BZ WBK
•
Bank Millennium
•
Pekao S.A. (Pekao24Przelew)
•
CitiHandlowy
•
Alior Bank
•
LUKAS BANK
Integracja Merchanta – dokumentacja techniczna eService S.A.
50
Potwierdzenia transakcji dokonywanych z poniższych banków możliwe są do
uzyskania w czasie rzeczywistym poza podanymi niżej godzinami godzinami,
wynikającymi z braku pracy on-line wewnętrznych systemów bankowych.
Nazwa Banku
Dni powszednie
BPH (Przelew z BPH)
Weekendy
21:00 – 7:00 następnego 21:00 w piątek – 7:00 w
dnia
poniedziałek
Raiffeisen Bank (R-
18:00 – 8:00 następnego 18:00 w piątek – 8:00 w
Przelew)
dnia
Kredyt Bank
18:00 – 8:00 następnego 18:00 w piątek – 8:00 w
dnia
INVEST-BANK
poniedziałek
poniedziałek
18:00 – 8:00 następnego 18:00 w piątek – 8:00 w
dnia
Deutsche Bank
poniedziałek
17:30 – 8:00 następnego 17:30 w piątek – 8:00 w
dnia
ING Bank Śląski
poniedziałek
18:00 – 8:00 następnego 18:00 w piątek – 8:00 w
dnia
poniedziałek
Eurobank (Euro Bank)
Codziennie w godzinach: 22:30 – 4:30 następnego dnia
Inteligo (Płacę z
Codziennie w godzinach: 23:50 – 00:10 następnego dnia
Inteligo)
PKO BP (Płacę z iPKO)
Codziennie w godzinach: 23:50 – 00:10 następnego dnia
Integracja Merchanta – dokumentacja techniczna eService S.A.
51
7. Kontakt
W razie jakichkolwiek pytań prosimy o kontakt z Zespołem Wdrożeniowym eService:
tel.: +48 22 533 22 44
email: [email protected]
Integracja Merchanta – dokumentacja techniczna eService S.A.
52