Płatności mobilne Przelewy24



Podobne dokumenty
Płatności mobilne Przelewy24

Płatności mobilne Przelewy24

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

elektroniczna Platforma Usług Administracji Publicznej

Konfiguracja programu Outlook 2007 do pracy z nowym serwerem poczty (Exchange)

Warszawa, r.

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Instrukcja programu PControl Powiadowmienia.

Pierwsze logowanie do systemu I-Bank

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

I. Zakładanie nowego konta użytkownika.

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Instrukcja. 1 Zamawiając kuriera. W Paczkomacie lub POK. 3 Nadając list polecony. nadawania przesyłek z Allegro: (Punkt Obsługi Klienta)

Zdalne odnawianie certyfikatów do SWI

Archiwum Prac Dyplomowych

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

PODRĘCZNIK UŻYTKOWNIKA

Konfiguracja przeglądarek internetowych oraz Panelu Java dla klientów instutucjonalnych problemy z apletem do logowania/autoryzacji

emszmal 3: Eksport wyciągów do Subiekt (Su\Re\Ra) nexo (plugin dostępny wraz z dodatkiem Biznes)

CitiDirect EB - Mobile

PRESTASHOP INTEGRATOR XL BY CTI INSTRUKCJA

VinCent Office. Moduł Drukarki Fiskalnej

Logowanie do systemu Faktura elektroniczna

INSTRUKCJA Panel administracyjny

Procedury uzyskania dostępu do systemu SIL

Konfiguracja współpracy urządzeń mobilnych (bonowników).

Instrukcja użytkownika systemu MOBEVO

PERSON Kraków

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Poniżej instrukcja użytkowania platformy

Kancelaris - Zmiany w wersji 2.50

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

1. DYNAMICSAX nie pobiera żadnych opłat za korzystanie z serwisu internetowego DYNAMICSAX.PL.

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Instrukcja instalacji programu Plantator oraz transferu pliku danych z/do PC kolektor danych PT-20

Zainstalowana po raz pierwszy aplikacja wymaga aktualizacji bazy danych obsługiwanych sterowników.

INTENSE BUSINESS INTELLIGENCE PLATFORM

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Dokumentacja usługi SMS (Aplikacja def3000/sms)

INTEGRATOR Instrukcja instalacji, konfiguracji.

Instrukcja UŜytkownika HaloŚląski - serwisu telefonicznego dla klientów korporacyjnych

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

Microsoft Management Console

db powernet Instalacja czytnika kart mikroprocesorowych (instrukcja)

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

FRAKTAL STUDIO CELNE

SpedCust 5 instrukcja instalacji

Instrukcja logowania do aplikacji ING Agent

Instrukcja obsługi aplikacji Moduł 7 Business Ship Control dla InsERT Subiekt GT

Platforma zamówień personelu JOBMAN.pl

Instrukcja rejestracji konta i składania wniosku o nadanie kodu pre-lei dla osób fizycznych prowadzacych działalność gospodarczą

SZANOWNY INTERESANCIE

UWAGA! PRZECZYTAJ NAJPIERW:

Instalacja i konfiguracja automatu synchronizacji CDN OFFLINE

Wtedy wystarczy wybrać właściwego Taga z listy.

Użytkowanie elektronicznego dziennika UONET PLUS.

Instrukcja poruszania się po stronie krok po kroku. tak zwane ABC Plusika

Zarządzanie Zasobami by CTI. Instrukcja

Instrukcja obsługi platformy zakupowej PHU VECTOR SP. Z O.O.

Konfigurator opisuje proces instalacji i konfiguracji karty sieciowej bezprzewodowej D-Link DWL-520+ w systemach /2000/XP /

(opracował: Ł. Skonecki)

INSTRUKCJA WebPTB 1.0

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Nowe funkcjonalności

InsERT GT Własne COM 1.0

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

API transakcyjne BitMarket.pl

V. Wymagania dla wsparcia projektu oraz nadzoru eksploatacyjnego... 6

Warunki Oferty PrOmOcyjnej usługi z ulgą

Instrukcja pod czenia komputera z systemem Microsoft Windows Vista/7 do sieci PWSZ-FREE-WIFI

Przeniesienie lekcji SITA z płyt CD na ipoda touch

Instrukcja pod czenia komputera z systemem Microsoft Windows XP do sieci PWSZ-FREE-WIFI

Przewodnik AirPrint. Ten dokument obowiązuje dla modeli atramentowych. Wersja A POL

enova Workflow Obieg faktury kosztowej

JMMS Instrukcja użytkowania kont Autor oraz Recenzent

INFORMATOR TECHNICZNY WONDERWARE

Podręcznik Użytkownika Plus Internet dla Mac OS X lub wyższa. Huawei E398 LTE

STRONA GŁÓWNA SPIS TREŚCI. Zarządzanie zawartością stron... 2 Tworzenie nowej strony... 4 Zakładka... 4 Prawa kolumna... 9

MUltimedia internet Instrukcja Instalacji


Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Centrum Informatyki "ZETO" S.A. w Białymstoku. Obsługa licencji, zaświadczeń i zezwoleń transportowych w systemie ProcEnt Licencje

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Uniwersytet Muzyczny Fryderyka Chopina

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Opis Najważniejsze cechy modułu: Predefiniowane opcje wysyłki Rozszerzony podgląd zamówień... 2

REGULAMIN ŚWIADCZENIA USŁUG PRZYGOTOWANIA I DOSTAWY POSIŁKÓW W RAMACH CATERINGU DIETETYCZNEGO W TRÓJMIEŚCIE. 1 Postanowienia ogólne

INSTRUKCJA PROGRAMU BHM SPIS TREŚCI

Transkrypt:

Opracował: Arkadiusz Płatności mobilne Przelewy24 Specyfikacja techniczna Data: 2016-05-06 Wersja: 2.0.11 Dokument zawiera opis rozwiązań płatności Przelewy24 możliwych do implementacji w aplikacjach mobilnych. Opisane zostały sposoby realizacji płatności, warianty konfiguracyjne, oraz szczegółowa instrukcja implementacji w aplikacji mobilnej. Ogólne przykłady konfiguracji bibliotek mobilnych podane są w języku Java (Android). W kolejnych sekcjach dokumentu można znaleźć szczegółowe przykłady dla każdej platformy. W wielu miejscach niniejsza dokumentacja odnosi się do dokumentacji płatności www. Dokument ten można pobrać pod adresem http://www.przelewy24.pl/files/cms/2/przelewy24_specyfikacja_3_2.pdf. Dokumentacja odnosi się do bibliotek mobilnych w wersjach: Android v. 2.0.7, ios v. 2.0.4, Windows Phone Silverlight v. 2.0.2 i Windows Phone Runtime v. 2.0.3. UWAGA! Aby otrzymywać powiadomienia o aktualizacjach bibliotek mobilnych, należy wysłać na adres partner@przelewy24.pl wiadomość o treści "Proszę o dopisanie adresu (tu podać e-mail) do listy mailingowej informującej o aktualizacjach bibliotek mobilnych.", podając swój e-mail kontaktowy. Na podany adres będą przesyłane wyłącznie informacje o aktualizacjach bibliotek, nie będzie on wykorzystywany do wysyłania żadnych informacji marketingowych. Strona 1 z 30

Opracował: Arkadiusz Spis treści 1 Natywne biblioteki mobilne (Android, ios i Windows Phone SDK)...4 1.1 Opis zastosowania...4 1.2 Jak wygląda przebieg transakcji przy użyciu biblioteki mobilnej?...4 1.3 Jak zaimplementować w aplikacji płatność one click kartą?...5 1.4 Jak zainicjować płatność biblioteką mobilną?...7 1.4.1 Wejście bezpośrednio z danymi transakcji...7 1.4.2 Wejście z tokenem transakcji...7 1.5 Jak uruchomić transakcję z konkretną metodą płatność?...8 1.6 Jak ustawić konkretny kanał płatności?...8 1.7 Jak uruchomić tryb testowy?...8 1.8 Jak zweryfikować poprawność transakcji?...9 1.8.1 Weryfikacja za pośrednictwem serwera partnera...9 1.8.2 Weryfikacja wewnątrz systemu Przelewy24...9 1.9 Jak włączyć responsywne strony banków?...10 1.10 Jak włączyć zapamiętywanie haseł do banków?...10 1.11 Jak ustawić domyślnie zapamiętywanie haseł do banków?...10 1.12 Jak włączyć automatyczne kopiowanie haseł SMS?...10 1.13 Jak automatycznie powrócić do aplikacji w momencie zakończenia transakcji?...11 1.14 Jak ograniczyć klientowi czas dostępny na zrealizowanie płatności?...11 1.15 Jak anulować płatność i wrócić do aplikacji?...11 1.16 Jak ustawić styl ActionBar biblioteki dla Androida < 3.0...11 2 Definicje...12 3 Integracja biblioteki Android w projekcie aplikacji...12 3.1 Konfiguracja projektu...12 3.2 Konfiguracja biblioteki...13 3.3 Wywołanie transakcji...14 3.4 Obfuskacja projektu aplikacji...15 Strona 2 z 30

Opracował: Arkadiusz 3.5 Znane błędy...16 4 Integracja biblioteki ios w projekcie aplikacji...16 4.1 Konfiguracja projektu...16 4.2 Konfiguracja biblioteki...18 4.3 Wywołanie transakcji...19 5 Integracja biblioteki Windows Phone w projekcie aplikacji...20 5.1 Konfiguracja projektu...20 5.1.1 Windows Phone Silverlight...20 5.1.2 Windows Phone Runtime...20 5.2 Konfiguracja biblioteki...21 5.3 Wywołanie transakcji...22 Strona 3 z 30

Opracował: Arkadiusz 1 Natywne biblioteki mobilne (Android, ios i Windows Phone SDK) 1.1 Opis zastosowania Natywne biblioteki mobilne Andorid, ios i Windows Phone umożliwiają wykonanie płatności wewnątrz aplikacji mobilnej, bez konieczności przełączania użytkownika między aplikacją a przeglądarką lub inną aplikacją. Cały proces płatności odbywa się w jednym oknie aplikacji. W bibliotekach dostępne są różne metody płatności: przelewy bankowe (automatyczne pay-by-link i półautomatyczne), karty płatnicze, wirtualne portfele (np. PayPal, SkyCash, ) i inne. 1.2 Jak wygląda przebieg transakcji przy użyciu biblioteki mobilnej? Po wywołaniu płatności na ekranie smartfonu pojawia się okno płatności zawierające kontrolkę WebView z załadowanym serwisem transakcyjnym przelewy24.pl. Po wybraniu metody płatności w tym samym oknie ładuje się strona wybranego banku/metody, gdzie użytkownik loguje się do swojego konta, albo podaje konieczne dane potrzebne do płatności (w przypadku płatności kartą i innych metod, np. BLIK). Następnie użytkownik zatwierdza płatność i zostaje przekierowany na ekran oczekiwania na potwierdzenie zaksięgowania wpłaty. Rysunek 1: Przebieg procesu płatności z wykorzystaniem biblioteki mobilnej Po wykonaniu płatności, system Przelewy24 wysyła na adres p24_url_status (serwer sprzedawcy/aplikacji) potwierdzenie wpłaty. Dla potwierdzenia wiarygodności transakcji w odpowiedzi na potwierdzenie wpłaty system partnera weryfikuje wynik żądaniem zwrotnym. Strona 4 z 30

Opracował: Arkadiusz W momencie gdy system partnera wykona połączenie weryfikacyjne, na ekranie smartfona pojawia się informacja o poprawnej wpłacie, użytkownik może wrócić do aplikacji ze statusem poprawnej wpłaty. Rysunek 2: Proces płatności przelewem w bibliotece mobilnej Android 1.3 Jak zaimplementować w aplikacji płatność one click kartą? Płatność one click kartą w aplikacji mobilnej polega na możliwości zapamiętania w aplikacji kart wykorzystanych przy poprzednich płatnościach. Taką kartę można wyświetlić w aplikacji jako osobną formę płatności. W momencie wybrania tej karty, aplikacja wywołuje Strona 5 z 30

Opracował: Arkadiusz natychmiast żądanie bezpośredniego obciążenia karty daną kwotą i płatność zostaje zrealizowana w ciągu kilku sekund, bez konieczności ponownego podawania danych karty. Rysunek 3: Płatność "one click" w aplikacji Android Technicznie proces płatności one-click wymaga współpracy trzech systemów: aplikacji mobilnej, serwera partnera, oraz WebService Przelewy24 do rekurencji na kartach. UWAGA: Do realizacji one-click niezbędna jest odpowiednia umowa z operatorem kart płatniczych prosimy o kontakt z Działem Handlowym Przelewy24 (partner@przelewy24.pl, +48 61 642 93 45). Proces one click jest podzielony na etapy: Najpierw użytkownik wykonuje płatność kartą w aplikacji za pomocą biblioteki mobilnej. W momencie, gdy transakcja jest potwierdzana przez system Przelewy24 (komunikat na p24_url_status), serwer partnera dokonuje weryfikacji. Serwer partnera odpytuje WebService Przelewy24 (metoda GetTransactionReference) podając ID transakcji otrzymanej w połączeniu weryfikacyjnym, otrzymuje w ten sposób refid karty, przy pomocy której została wykonana wpłata. Serwer partnera odpytuje WebService (metoda CheckCard) podając refid, aby sprawdzić czy dana karta udostępnia płatności rekurencyjne. Jeżeli karta udostępnia rekurencję, to serwer partnera zapisuje w bazie danych refid karty i przypisuje ją do konta użytkownika, który wykonał płatność. Przy kolejnej płatności w aplikacji mobilnej, aplikacja pobiera z serwera listę zapamiętanych dla danego użytkownika kart i prezentuje ją jako metoda płatności obok płatności przelewem i dowolną kartą ( Rysunek). Strona 6 z 30

Opracował: Arkadiusz Użytkownik wybiera kartę z listy, aplikacja łączy się z serwerem partnera, serwer partnera wywołuje WebService P24 (metoda ChargeCard), system P24 dokonuje obciążenia karty i zwraca status (ok/error). Aby zaimplementować płatność one click w aplikacji, konieczne jest zaimplementowanie komunikacji pomiędzy serwerem partnera, a WS Przelewy24 i aplikacją mobilną partnera. 1.4 Jak zainicjować płatność biblioteką mobilną? Aby zainicjować płatność należy odpowiednio skonfigurować obiekty klas P24Config, P24Payment i P24. Biblioteka umożliwia zainicjowanie transakcji na dwa sposoby: podając dane transakcji bezpośrednio w bibliotece, oraz rejestrując wcześniej transakcję i przekazując do biblioteki tylko token transakcji. Przykładowe kody implementujące konfigurację biblioteki można znaleźć w rozdziałach 3, 4 i 5. 1.4.1 Wejście bezpośrednio z danymi transakcji Aby zainicjować transakcję bezpośrednio parametrami płatności, należy utworzyć obiekt konfiguracyjny (P24Config) i podać w nim id partnera i kod CRC (dostępny w panelu partnera). Następnie należy utworzyć obiekt P24Payment i podać w nim dane o transakcji: kwotę (wyrażoną w groszach), walutę (np. PLN ), e-mail klienta, oraz id sesji (unikalne dla każdej transakcji). Dodatkowo w obiekcie P24Payment można podać dane adresowe klienta (nazwisko, adres, miasto, kod pocztowy, kraj), które są wymagane dla płatności kartą, oraz opis transakcji, który będzie wyświetlany w panelu transakcyjnym Przelewy24. W zależności od konfiguracji trybu weryfikacji transakcji, należy w obiekcie P24Payment podać adres p24_url_status. Tryby weryfikacji transakcji są opisane w punkcie 1.8. Następnie należy wywołać okno płatności. Sposób wywołania okna płatności na każdej platformie opisany jest w punktach 3.3, 4.3 i 5.3. 1.4.2 Wejście z tokenem transakcji Możliwe jest zarejestrowanie transakcji za pomocą osobnego zapytania z serwera partnera. Opis rejestracji transakcji znajduje się w punkcie 5.1 dokumentacji płatności www. Przy rejestracji transakcji, jeżeli ma być ona wykonana w bibliotece mobilnej, należy dodać parametr p24_mobile_lib=1. W wyniku rejestracji transakcji otrzymujemy TOKEN. Aby skonfigurować bibliotekę na wejście z tokenem nie należy ustawiać żadnych danych w obiektach P24Config i P24Payment, tylko w obiekcie P24Payment podać TOKEN transakcji. Sposób ustawienia tokenu na każdej platformie opisany jest w punktach 3.2, 4.2 i 5.2. UWAGA rejestrując transakcję, która będzie wykonana w bibliotece mobilnej należy pamiętać o dodatkowych parametrach: p24_channel jeżeli nie będzie ustawiony, to domyślnie w bibliotece pojawią się formy płatności przelew tradycyjny i użyj przedpłatę, które są niepotrzebne przy Strona 7 z 30

Opracował: Arkadiusz płatności mobilnej. Aby wyłączyć te opcje należy ustawić w tym parametrze flagi nie uwzględniające tych form (np. wartość 3 przelewy i karty, domyślnie ustawione w bibliotece przy wejściu bezpośrednio z parametrami), p24_method jeżeli w bibliotece dla danej transakcji ma być ustawiona domyślnie dana metoda płatności, należy ustawić ją w tym parametrze przy rejestracji, oraz w bibliotece (P24Payment.setMethod). 1.5 Jak uruchomić transakcję z konkretną metodą płatność? Aby biblioteka wybrała automatycznie konkretną metodę płatności, należy podać id formy płatności w parametrze method. Można w ten sposób wyciągnąć wybór form płatności do aplikacji, jeszcze przed wejściem do biblioteki (tak jak np. na rys. Rysunek). p24payment.setmethod("xxx"); W przypadku konfiguracji z użyciem tokena (pkt. 1.4.2), metodę płatności należy podać również podczas rejestracji transakcji (parametr p24_method). Jeżeli ustawiona metoda płatności w danym momencie jest nieaktywna, to zostanie wyświetlona pełna lista form płatności. 1.6 Jak ustawić konkretny kanał płatności? Jest możliwość ustawienia w bibliotece konkretnych kanałów płatności, jak np. płatność tylko kartą, płatność tylko przelewem. W tym celu należy ustawić flagę kanału w parametrze p24channel. p24config.setp24channel(p24config.p24_channel_transfers); Szczegółowy opis ustawienia kanałów płatności znajduje się w punkcie 5.1 dokumentacji płatności www (parametr p24_channel). Domyślna wartość to P24Config.P24_CHANNEL_CARDS P24Config.P24_CHANNEL_24_7 1.7 Jak uruchomić tryb testowy? W trybie testowym możliwe jest zweryfikowanie poprawnej implementacji biblioteki i procesu weryfikacji transakcji, bez konieczności wykonywania przelewu. Po wybraniu dowolnej formy z listy system pominie proces logowania do banku i wyświetli transakcję jako zaksięgowaną poprawnie. Aby testować bibliotekę na środowisku SANDBOX, należy ustawić tryb testowy w obiekcie P24Config. p24config.enabletestmode(true); Należy pamiętać, aby klucz CRC był ustawiony według wartości podanej w ustawieniach konta SANDBOX. Więcej o trybie testowym można znaleźć w punkcie 5.8 dokumentacji płatności www. Strona 8 z 30

Opracował: Arkadiusz 1.8 Jak zweryfikować poprawność transakcji? Transakcje wykonywane przez bibliotekę mogą być weryfikowane na dwa sposoby: za pośrednictwem serwera partnera (rekomendowany), oraz wewnątrz systemu Przelewy24. 1.8.1 Weryfikacja za pośrednictwem serwera partnera Po dokonaniu wpłaty biblioteka oczekuje na zaksięgowanie jej w systemie Przelewy24 (następuje to w różnym czasie, zależnie od metody płatności). W momencie zaksięgowania wpłaty system Przelewy24 wysyła powiadomienie o transakcji na adres p24_url_status podany przez partnera w konfiguracji. Serwer partnera po odebraniu powiadomienia musi wysłać do Przelewy24 żądanie weryfikacji transakcji (punkt 5.5 dokumentacji płatności www). Biblioteka wykrywa, że transakcja jest potwierdzona i wyświetla użytkownikowi informację o poprawnym zaksięgowaniu wpłaty. W tym wariancie partner ma pewność, że jego serwer posiada informację o dokonanej wpłacie, nawet jak użytkownik zamknie okno biblioteki zanim transakcja zostanie zweryfikowana, albo gdy nastąpi błąd połączenia z Internetem. Aby uaktywnić ten tryb potwierdzania transakcji, należy ustawić parametr p24_url_status w panelu transakcyjnym (w tym celu należy przesłać adres skryptu na serwis@przelewy24.pl z adresu e- mail, na który jest założone konto), albo w bibliotece: p24payment.setp24urlstatus("http://xxxxxx"); Ustawienie w bibliotece ma większy priorytet od ustawienia w panelu transakcyjnym. Jeżeli nie ustawiono nigdzie p24_url_status, to transakcja będzie weryfikowana wewnątrz systemu Przelewy24 (opisane poniżej). Ten model weryfikacji dedykowany jest dla aplikacji, które wymagają, aby serwer partnera posiadał informacje o wpłacie (np. doładowanie portfela, zakup usługi itp.). 1.8.2 Weryfikacja wewnątrz systemu Przelewy24 Po dokonaniu wpłaty i zaksięgowaniu jej przez system Przelewy24, transakcja zostaje automatycznie potwierdzona przez system. Nie ma żadnej komunikacji z serwerem partnera, informacja o poprawnej transakcji jest przekazana jedynie przez bibliotekę do aplikacji mobilnej. Aby uaktywnić ten tryb potwierdzania transakcji, należy zapewnić, aby ani w panelu transakcyjnym, ani w konfiguracji biblioteki nie było ustawione p24_url_status. Ten model weryfikacji dedykowany jest dla aplikacji typu gra, które nie posiadają komunikacji z zewnętrznym serwerem. Nie wymaga to od partnera tworzenia żadnych dodatkowych usług weryfikacyjnych. W tym trybie istnieje ryzyko, że zanim nastąpi weryfikacja transakcji w bibliotece, użytkownik zamknie okno transakcji i powróci do aplikacji. Wtedy transakcja pozostanie zaksięgowana jako do wykorzystania i będzie wymagała ręcznego zaksięgowania w panelu transakcyjnym Przelewy24. Strona 9 z 30

Opracował: Arkadiusz 1.9 Jak włączyć responsywne strony banków? Ponieważ tylko niektóre banki udostępniają style mobilne w swoich serwisach transakcyjnych, biblioteki mobilne same dostosowują strony banków do małych ekranów smartfonów, aby zwiększyć wygodę użytkowania. p24config.setusemobilestyles(true); Opcja ta domyślnie jest ustawiona na true, można ją wyłączyć. Z przyczyn technologicznych style mobilne nie są dostępne w bibliotece Windows Phone Silverlight. 1.10 Jak włączyć zapamiętywanie haseł do banków? Aby ułatwić użytkownikom wielokrotne logowanie do swojego banku, biblioteka może zapamiętać login i hasło i automatycznie uzupełnię je w formularzu logowania. W tym trybie biblioteka również ułatwia wprowadzenie hasła maskowanego w bankach, które tego wymagają. p24config.setstorelogindata(true); Opcja ta domyślnie jest ustawiona na false. 1.11 Jak ustawić domyślnie zapamiętywanie haseł do banków? Jeżeli opcja setstorelogindata została ustawiona na true, to domyślnie biblioteka przy pierwszym logowaniu do banku zapyta użytkownika czy wyraża zgodę na zapamiętywanie danych logowania. Można wymusić zapamiętywanie danych logowania domyślnie, bez pytania użytkownika (ale nawet wtedy będzie on miał możliwość wyłączenia tej opcji w oknie Opcje ). p24config.setdontaskforsavelogindata(true); Opcja ta domyślnie jest ustawiona na false. 1.12 Jak włączyć automatyczne kopiowanie haseł SMS? W momencie gdy na telefon przyjdzie SMS z hasłem do potwierdzenia płatności, biblioteka automatycznie może go wykryć i wkleić hasło do odpowiedniego pola na stronie banku (pod warunkiem, że użytkownik będzie dalej znajdował się na ekranie banku oczekującym na hasło SMS). Użytkownik będzie musiał tylko zatwierdzić przelew. p24config.setreadsmspasswords(true) Opcja ta domyślnie jest ustawiona na false. Z przyczyn technologicznych opcja ta jest dostępna tylko na platformie Android. Strona 10 z 30

Opracował: Arkadiusz 1.13 Jak automatycznie powrócić do aplikacji w momencie zakończenia transakcji? Domyślnie po zweryfikowaniu wpłaty (albo wystąpieniu błędu podczas płatności) biblioteka wyświetla podsumowanie transakcji i czeka na interakcję z użytkownikiem (musi on zatwierdzić okno podsumowania, aby wrócić do aplikacji). Można skonfigurować bibliotekę tak, aby automatycznie zamykała okno podsumowania po określonym czasie podanym w milisekundach. p24config.setautofinishtimeout(3000); Domyślna wartość to P24Config.NO_AUTO_FINISH = 0 biblioteka czeka na reakcję użytkownika aby wrócić do aplikacji. Z racji zasad projektowania GUI na platformie ios, opcja ta jest niedostępna na tej platformie. 1.14 Jak ograniczyć klientowi czas dostępny na zrealizowanie płatności? Można ustawić własny czas na realizację transakcji. Użytkownik będzie musiał zmieścić się z wpłatą w określonym czasie. p24config.settimelimit(30); Domyślna (i maksymalna) wartość to 99 (min). 1.15 Jak anulować płatność i wrócić do aplikacji? W każdym momencie procesu płatności użytkownik może porzucić płatność i powrócić do aplikacji za pomocą przycisku Powrót (na Android i Windows Phone jest to przycisk systemowy w telefonie, na ios jest to przycisk programowy w górnym lewym rogu okna biblioteki). Jeżeli w międzyczasie użytkownik przeszedł na stronę banku, to przy próbie powrotu zostanie poinformowany, że jeżeli dokonał w międzyczasie wpłaty, to zostanie ona zaksięgowana w tle i będzie musiał sprawdzić status wpłaty już wewnątrz aplikacji. Taki komunikat jest konieczny, ponieważ jeżeli wiemy, iż użytkownik odwiedził bank, to nie jesteśmy w stanie powiedzieć czy wywołał akcję powrót przed, czy po wykonaniu przelewu, jeżeli wpłata nie została jeszcze zweryfikowana przez system Przelewy24. 1.16 Jak ustawić styl ActionBar biblioteki dla Androida < 3.0 Dla wersji Androida < 3.0 biblioteka sama tworzy ActionBar z opcjami. Jest możliwość ustawienia własnych kolorów, aby były zgodne z wyglądem aplikacji: p24config.setapi2actionbarcolor(int color); p24config.setapi2actionbarbottomlinecolor(int color); p24config.setapi2actionbartextcolor(int color); Strona 11 z 30

Opracował: Arkadiusz 2 Definicje Sprzedawca - instytucja lub osoba prywatna korzystająca z usług serwisu PRZELEWY24. Identyfikator sesji - unikalny identyfikator służący do weryfikacji danych pojedynczej transakcji. Identyfikator ten pobierany jest od sprzedawcy. CRC - losowy ciąg znaków służący do generowania sumy kontrolnej przesyłanych parametrów, do pobrania z panelu Przelewy24. 3 Integracja biblioteki Android w projekcie aplikacji W poniższym rozdziale opisany jest sposób konfiguracji i użycie Android SDK w projekcie Android. Biblioteka w wersji od 2.0.6 jest kompatybilna ze środowiskiem AndroidStudio (testowane na wersji 1.2.2). 3.1 Konfiguracja projektu W projekcie Android należy ustawić wymagany API level na co najmniej 7 (Android 2.1). Wersja 2.1 to minimalna wersja wymagana do poprawnego działania biblioteki. W środowisku Android Studio należy dodać moduł biblioteki poprzez polecenie: File New New module.... Z listy More modules wybrać Import.JAR or.aar Package i kliknąć Next. W polu File name podać ścieżkę do pliku p24lib.aar, jako Subproject name podać p24lib i kliknąć Finish. Następnie należy dodać zależność do stworzonego modułu poprzez dodanie do pliku build.gradle w sekcji dependencies wpisu: compile project(':p24lib') Biblioteka wykorzystuje bibliotekę AppCompat w wersji 21, dlatego należy w sekcji dependencies dodać również: compile 'com.android.support:appcompat-v7:22.1.+' Biblioteka P24Lib korzysta z open source'owej biblioteki Jsoup (hqp://jsoup.org/) dołączonej do biblioteki aar (nie wymaga dodatkowej konfiguracji). Po podpięciu biblioteki do projektu należy dodać następujące wpisy do manifestu aplikacji (AndroidManifest.xml), w węźle manifest: <uses-permission android:name="android.permission.internet"/> <uses-permission android:name="android.permission.access_network_state"/> Jeżeli włączone jest automatyczne kopiowanie haseł SMS, należy dodać wpisy: <uses-permission android:name="android.permission.receive_sms"/> <uses-featureandroid:name="android.hardware.telephony" Strona 12 z 30

Opracował: Arkadiusz android:required="false" /> W węźle application należy dodać aktywność TransferActivity (jest to aktywność, która jest wykorzystywana do przeprowadzenia płatności): <activity android:name="pl.dialcom24.p24lib.transferactivity" android:configchanges="orientation keyboard keyboardhidden" android:theme="theme.appcompat.light.darkactionbar"/> Uwaga Wszystkie Activity w bibliotece dziedziczą po ActionBarActivity, dlatego należy do nich stosować style z grupy Theme.AppCompat.*" i pochodne. Uwaga przy domyślnych ustawieniach Activity podczas obrotu ekranu biblioteki nastąpi przeładowanie WebView, co może powodować powrót ze strony banku do listy form płatności i uniemożliwić sfinalizowanie transakcji. Aby okno biblioteki nie przeładowywało się konieczne jest ustawienie parametru: android:configchanges="orientation keyboard keyboardhidden" W tym samym miejscu dodać aktywność BankListActivity (jest okno ustawień biblioteki, w którym użytkownik sam będzie mógł sterować parametrami setstorelogindata, setusemobilestyles, setreadsmspasswords, oraz ręcznie usuwać zapamiętane hasła do banków): <activity android:name="pl.dialcom24.p24lib.bank.banklistactivity" android:configchanges="keyboardhidden orientation keyboard screensize" android:theme="theme.appcompat.light.darkactionbar"/> 3.2 Konfiguracja biblioteki Należy utworzyć obiekty P24Config, P24, P24Payment i ustawić niezbędne dane konfiguracyjne: P24Config p24config = new P24Config(); P24 p24 = new P24(config); P24Payment p24payment = new P24Payment(); Przykładowa konfiguracja przy wejściu bezpośrednio z danymi transakcji (pkt. 1.4.1): p24config.setmerchantid(xxxxx); p24config.setcrc("xxxxxxxxxxxxxxxx"); Strona 13 z 30

Opracował: Arkadiusz p24payment.setsessionid("1234567890"); p24payment.setamount(100); p24payment.setcurrency("pln"); p24payment.setclientaddress("ulica testowa"); p24payment.setclientname("jan Kowalski"); p24payment.setclientcountry("pl"); p24payment.setclientcity("poznan"); p24payment.setclientphone("643535555"); p24payment.setclientemail("test@test.pl"); Przykładowa konfiguracja przy wejściu z tokenem transakcji (pkt. 1.4.2): p24payment.settoken("xxxxxxxxxx-xxxxxx-xxxxxx-xxxxxxxxxx"); Przykładowa konfiguracja opcjonalna (opisana powyżej): p24payment.setmethod("1"); p24config.enabletestmode(true); p24config.setstorelogindata(true); p24config.setusemobilestyles(false); p24config.setreadsmspasswords(true); p24config.setdontaskforsavelogindata(true); p24config.setautofinishtimeout(3000); p24config.settimelimit(30); p24config.setp24channel(p24config.p24_channel_cards); p24payment.setp24urlstatus("http://xxxxxx"); p24payment.settransferlabel("test label"); 3.3 Wywołanie transakcji Mając obiekty P24 oraz P24Payment można rozpocząć proces płatności. W tym celu należy wykorzystać metodę P24.getPaymentIntent(Context, P24Payment): private final static int REQUEST_CODE = 25; Intent pintent = p24.getpaymentintent(context, p24payment); Strona 14 z 30

Opracował: Arkadiusz startactivityforresult(pintent, REQUEST_CODE); Wywołanie powyższej metody spowoduje uruchomienie TransferActivity, które wyświetli okno płatności. Użytkownik będzie mógł wybrać formę płatności (jeżeli nie ustawiono domyślnej metody) i wykonać transakcję. Po przejściu przez proces płatności okno transakcyjne zostanie zamknięte. Informacja na temat statusu płatności zostanie przekazana do metody onactivityresult(int, int, Intent). Wewnątrz metody onactivityresult należy sprawdzić poprawność parametrów requestcode i resultcode. resultcode powinien równać się stałej RESULT_OK a requestcode powinien się zgadzać z liczbą REQUEST_CODE. Jeżeli wszystko się zgadza, należy sprawdzić status transakcji. W tym celu należy pobrać obiekt P24PaymentResult korzystając z metody P24.getPaymentResult(Intent). Jako parametr przekazujemy Intent pochodzący z onactivityresult (jest to ten sam Intent, który został użyty do rozpoczęcia procesu płatności): @Override protected void onactivityresult(int requestcode, int resultcode, Intent data){ } if (requestcode!= REQUEST_CODE) { return; } if (resultcode == RESULT_OK) { P24PaymentResult payresult = p24.getpaymentresult(data); boolean ispaymentok = payresult.isok(); if (ispaymentok) { // transakcja zakończona sukcesem } else { } } else { // transakcja zakończona błędem String error = payresult.getstatusmessage(); // transakcja została anulowana albo użytkownik wyszedł z biblioteki // nie czekając na weryfikację wpłaty } 3.4 Obfuskacja projektu aplikacji Aby obfuskować projekt aplikacji z podpiętą biblioteką, należy dodać reguły do konfiguracji proguard: Strona 15 z 30

Opracował: Arkadiusz -keep class pl.dialcom24.p24lib.transferactivity$javascriptinterface { *; } -keep class pl.dialcom24.p24lib.bank.jshelpers.javascriptinterface { *; } -keep enum pl.dialcom24.p24lib.p24paymentresultstatus { *; } -keep class pl.dialcom24.p24lib.bank.jshelpers.p24securejavascriptinterface { *; } 3.5 Znane błędy Certyfikaty SSL Entrust na Android 4.3 na niektórych kompilacjach Andorida 4.3 występuje błąd podczas ładowania stron www, na których zainstalowany jest certyfikat firmy Entrust. Z tego certyfikatu korzystają obecnie banki Alior i T-Mobile. Błąd powoduje wyłączenie się aplikacji z błędem w momencie, gdy z listy form płatności zostanie wybrany jeden z tych banków. Aktualnie nie jest znane skuteczne zabezpieczenie biblioteki przed tym błędem (poza możliwością wyłączenia wadliwych form płatności dla wszystkich użytkowników z Androidem 4.3). Pomocna dla użytkowników, którzy zgłaszają taki problem, może się okazać sugestia aktualizacji systemu Android na telefonie. Linki: http://stackoverflow.com/questions/18130047/android-webview-crash-4-3 https://code.google.com/p/android/issues/detail?id=58400&colspec=id%20type%20status %20Owner %20Summary%20Stars http://stackoverflow.com/questions/18824076/how-to-catch-this-excepjon-in-androidwebview 4 Integracja biblioteki ios w projekcie aplikacji Biblioteka ios stworzona jest w języku Objective-C, w Xcode 4.3. W poniższym punkcie opisany jest sposób konfiguracji i użycie ios SDK w projekcie Xcode. Biblioteka jest również kompatybilna z aplikacjami stworzonymi w języku Swift. 4.1 Konfiguracja projektu W ustawieniach projektu Xcode należy ustawić ios Deployment Target (zakładka Info ustawień projektu) na wersję 4.3 lub nowszą. Wersja 4.3 to minimalna wersja systemu ios wymagana do poprawnego działania biblioteki. Konfiguracja jest identyczna dla projektu Objective-C i Swift. Należy dodać pliki biblioteki (libp24.a, P24.h znajdują się w katalogu lib/ w paczce ZIP z SDK) do projektu. W tym celu należy: wybrać w Xcode File Add Files To, wybrać katalog zawierający bibliotekę (katalog lib), Strona 16 z 30

Opracował: Arkadiusz zaznaczyć opcję Copy items into destination folder (if needed), zaznaczyć opcję Create groups for any added folders, w polu Add to targets wybrać wszystkie elementy, do których ma zostać dodana biblioteka. Należy upewnić się, czy ustawienia Targetów zostały poprawnie zaktualizowane. Plik libp24.a powinien zostać automatycznie dopisany w polu Link Binary With Libraries w zakładce Build Phases. W tym celu należy: wybrać projekt w Project Navigator, wybrać Target, w którym ma być używana biblioteka, wybrać zakładkę Build Phases, wybrać sekcję Link Binary With Libraries, jeżeli plik libp24.a nie znajduje się na liście, należy przeciągnąć go z okna Project Navigator, powtórzyć powyższe kroki dla wszystkich Targetów, w których ma być wykorzystywana biblioteka. Należy dodać do Targetu wymagane biblioteki systemowe. Wymagane są następujące biblioteki: Security.Framework, UIKit.Framework, Foundation.Framework, libxml2, libz. Biblioteki te należy dodać do sekcji Link Binary With Libraries w zakładce Build Phases. Należy to wykonać dla każdego Targetu, w którym będzie wykorzystywana biblioteka. Należy dodać flagi -ObjC i -lstdc++ w polu Other Linker Flags w ustawieniach Targetu. W tym celu należy: wybrać zakładkę Build Settings w ustawieniach Targetu, ustawić wartość pola Other Linker Flags na -ObjC -lstdc++. Pole Other Linker Flags znajduje się w sekcji Linking, powyższe kroki należy powtórzyć dla każdego Targetu, w którym biblioteka będzie wykorzystywana. Należy dodać poniższe ustawienie do pliku konfiguracyjnego Info.plist aplikacji: Strona 17 z 30

Opracował: Arkadiusz <key>nsapptransportsecurity</key> <dict> <key>nsallowsarbitraryloads</key> <true/> </dict> Dla aplikacji w języku Swift dodać do projektu plik {PROJECT-NAME}-Bridging-Header.h. W zakładce Build Settings projektu w polu Objective-C Bridging Header wpisać ścieżkę do utworzonego pliku (np. {PROJECT-NAME}/{PROJECT-NAME}-Bridging-Header.h ). Wpisać w utworzonym pliku import do pliku P24.h: #import "P24.h" 4.2 Konfiguracja biblioteki Należy zaimportować plik P24.h, utworzyć obiekty P24Config, P24, P24Payment i ustawić niezbędne dane konfiguracyjne. Przykład dla języka Objective-C: P24Config *p24config = [[P24Config alloc] init]; P24 *p24 = [[P24 alloc] initwithconfig:p24config delegate:self]; P24Payment *p24payment = [[P24Payment alloc] init]; Dla języka Swift: let p24config = P24Config(); let p24 = P24(config: p24config, delegate: self); let p24payment = P24Payment(); Przykładowa konfiguracja przy wejściu bezpośrednio z danymi transakcji (pkt. 1.4.1): p24config.merchantid = @"XXXXX"; p24config.crc = @"XXXXXXXXXXXXXXXX"; p24payment.sessionid = @"1234567890"; p24payment.amount = 100; p24payment.currency = @"PLN"; Strona 18 z 30

Opracował: Arkadiusz p24payment.clientaddress = @"Ulica testowa"; p24payment.clientcity = @"Poznan"; p24payment.clientzipcode = @"61-600"; p24payment.clientname = @"Jan Kowalski"; p24payment.clientcountry = @"PL"; p24payment.clientphone = @"PL"; p24payment.language = @"pl"; p24payment.clientemail = @"test@test.pl"; Przykładowa konfiguracja przy wejściu z tokenem transakcji (pkt. 1.4.2): p24payment.token = @"XXXXXXXXXX-XXXXXX-XXXXXX-XXXXXXXXXX"; Przykładowa konfiguracja opcjonalna (opisana powyżej): p24payment.method = @"XXX"; [p24config.enabletestmode: YES]; p24config.storelogindata = YES; p24config.usemobilestyles = NO; p24config.dontaskforsavelogindata = YES; p24config.timelimit = 30; p24config.p24channel = P24_CHANNEL_CARDS; p24payment.p24urlstatus = @"http://xxxxxx"; p24payment.transferlabel = @"Test label"; Analogicznie dla języka Swift; 4.3 Wywołanie transakcji Należy zaimplementować w kontrolerze protokół P24Delegate (zawiera on metody służące do informowania o statusie płatności) - (void)p24:(p24 *)p24 didfinishpayment:(p24payment *)p24payment withresult:(p24paymentresult *)p24paymentresult { BOOL paymentok = [p24paymentresult isok]; if (!paymentok) { NSLog(@ Payment error: %d, %@, p24paymentresult.status.code, Strona 19 z 30

Opracował: Arkadiusz p24paymentresult.status.description); } - (void)p24:(p24 *)p24 didcancelpayment:(p24payment *)p24payment { // transakcja została anulowana albo użytkownik wyszedł z biblioteki // nie czekając na weryfikację wpłaty } - (void)p24:(p24 *)p24 didfailpayment:(p24payment *)p24payment witherror:(nserror *)error {} Mając obiekty P24 oraz P24Payment można rozpocząć proces płatności. W tym celu należy wykorzystać metodę startpayment:inviewcontroller: z klasy P24: [p24 startpayment:p24payment inviewcontroller:self]; Wywołanie powyższej metody spowoduje wyświetlenie okna płatności. Użytkownik będzie mógł wybrać formę płatności (jeżeli nie ustawiono domyślnej metody) i wykonać transakcję. Po przejściu przez proces płatności okno transakcyjne zostanie zamknięte. Informacja na temat statusu płatności zostanie przekazana do jednej z metod protokołu P24Delegate. Analogiczny kod dla języka Swift: func p24(p24: P24!, didfinishpayment p24payment: P24Payment!, withresult p24paymentresult: P24PaymentResult!) { let paymentok = p24paymentresult.isok(); if (!paymentok) { print("payment error: %d, %@", p24paymentresult.status.code, p24paymentresult.status.description); } } func p24(p24: P24!, didcancelpayment p24payment: P24Payment!) { // transakcja została anulowana albo użytkownik wyszedł z biblioteki // nie czekając na weryfikację wpłaty } func p24(p24: P24!, didfailpayment p24payment: P24Payment!, witherror error: NSError!) { } Strona 20 z 30

Opracował: Arkadiusz Wywołanie transakcji: p24.startpayment(p24payment, inviewcontroller: self); 5 Integracja biblioteki Windows Phone w projekcie aplikacji Biblioteka Windows Phone stworzona jest w języku C#. W poniższym punkcie opisany jest sposób konfiguracji i użycie Windows Phone SDK w projekcie Visual Studio. UWAGA: Aktualnie w bibliotekach Windows Phone są niedostępne półautomatyczne formy płatności (e-przelewy). Zostaną one dodane w przyszłości. 5.1 Konfiguracja projektu 5.1.1 Windows Phone Silverlight W ustawieniach projektu należy ustawić wersję Windows Phone (Target Windows Phone OS Version). Minimalna wersja Windows Phone, z jaką współpracuje biblioteka, to 8.1. Do projektu należy dodać referencje do trzech bibliotek (znajdują się w katalogu lib/ w paczce ZIP z SDK): Biblioteka DialCom24.P24Lib.dll, BouncyCastle.Crypto.WP7.dll, HtmlAgilityPack.dll 5.1.2 Windows Phone Runtime Do projektu aplikacji Windows Phone 8.1 należy skopiować cały katalog lib/ znajdujący się w paczce paczce ZIP z SDK. W projekcie dodać referencje do trzech bibliotek znajdujących się w tym katalogu: DialCom24.P24Lib.Runtime.dll, crypto.dll, HtmlAgilityPack.dll W manifeście aplikacji (Package.appxmanifest) w zakładce Content URIs dodać wpisy: https://secure.przelewy24.pl/* https://www.przelewy24.pl/* Strona 21 z 30

Opracował: Arkadiusz 5.2 Konfiguracja biblioteki Należy utworzyć obiekty P24Config, P24, P24Payment i ustawić niezbędne dane konfiguracyjne: P24Config p24config = new P24Config(); P24 p24 = new P24(p24config); P24Payment p24payment = new P24Payment(); Przykładowa konfiguracja przy wejściu bezpośrednio z danymi transakcji (pkt. 1.4.1): p24config.merchantid = "XXXXX"; p24config.crc = "XXXXXXXXXXXXXXXX"; p24config.sessionid = "1234567890"; p24config.amount = 100; p24config.language = "pl"; p24config.currency = "PLN"; p24config.clientaddress = "Ulica testowa"; p24config.clientcity = "Poznan"; p24config.clientzipcode = "61-600"; p24config.clientname = "Jan Kowalski"; p24config.clientcountry = "PL"; p24config.clientphone = "600600600"; p24config.clientemail = "test@test.pl"; Przykładowa konfiguracja przy wejściu z tokenem transakcji (pkt. 1.4.2): p24payment.token = "XXXXXXXXXX-XXXXXX-XXXXXX-XXXXXXXXXX"; Przykładowa konfiguracja opcjonalna (opisana powyżej): p24payment.method = "XXX"; p24config.testmode = true; p24config.savelogindata = true; p24config.usemobilestyles = true; //tylko Windows Phone Runtime p24config.autofinishtimeout = 3000; p24config.dontaskforsavelogindata = true; Strona 22 z 30

Opracował: Arkadiusz p24config.timelimit = 30; p24payment.p24urlstatus("http://xxxxxx"); p24payment.transferlabel = "Test label"; Biblioteka Windows Phone posiada dodatkowe parametry. P24config.WithStatusBar pozwala wyłączyć status bar w oknie biblioteki. P24config.ManuWithIconButtons pozwala na użycie ikon w menu biblioteki. Domyślnie opcje menu okna transakcji wyświetlają się jako ApplicationBarMenuItem. Aby wyświetlać opcje jako ikony należy dołączyć do projektu aplikacji katalog /Images z grafikami i ustawić dla grafik Build Action Content i Copy to Output Directory - Copy if never (przykład w projekcie DialCom24.P24Example), oraz ustawić parametr p24config.manuwithiconbuttons na true. p24config.withstatusbar = false; p24config.manuwithiconbuttons = true; 5.3 Wywołanie transakcji Mając obiekt P24 oraz P24Payment można rozpocząć proces płatności. W tym celu należy wykorzystać poniższy kod: //Windows Phone Silverlight Uri uri = p24.getstartpaymenturi(payment); NavigationService.Navigate(uri); //Windows Phone Runtime Frame.Navigate(p24.GetStartPaymentParam(payment)); Pojawi się okno płatności, w którym użytkownik będzie mógł wybrać sposób płatności i wykonać wpłatę. Po przejściu przez proces płatności, użytkownik zostanie przekierowany z powrotem do okna, z którego wywołał bibliotekę. Wynik płatności można uzyskać po przeładowaniu metody OnNavigatedTo(NavigationEventArgs e) okna, z którego wywoływaliśmy bibliotekę: protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.onnavigatedto(e); if (p24.ispaymentcompleted) { if (p24.ispaymentcancelled) { //transakcja została anulowana albo użytkownik wyszedł z biblioteki Strona 23 z 30

Opracował: Arkadiusz // nie czekając na weryfikację wpłaty } else { P24PaymentResult result = p24.paymentresult; if (result.isok) { // transakcja zakończona poprawnie string sessionid = result.sessionid; int orderid = result.orderid; long orderidfull = result.orderidfull; int amount = result.amount; string currency = result.currency; } else { /* blad podczas platnosci */ } } } } Wynik płatności jest dostępny w obiekcie P24PaymentResult. Strona 24 z 30

Opracował: Arkadiusz Załącznik nr 1 Historia zmian dokumentu Data Autor Uwagi 2015-08-17 Arkadiusz Opracowanie dokumentu 2015-08-20 Arkadiusz Dodanie historii zmian bibliotek mobilnych 2015-08-24 Arkadiusz 2015-08-26 Arkadiusz 2015-08-27 Arkadiusz 2015-08-28 Arkadiusz 2015-10-30 Arkadiusz Wersja 2.0.1 - dodanie opisu p24_channel i p24_method przy rejestracji transakcji, dodanie opisu zabezpieczenia obracania ekranu w bibliotece Android Wersja 2.0.2 - aktualizacja opisu biblioteki Windows Phone pod wersję 2.0.0 nieznaczna zmiana konfiguracji i nowe opcje Wersja 2.0.4 - aktualizacja biblioteki Android do wersji 2.0.5 Wersja 2.0.5 - aktualizacja biblioteki ios do wersji 2.0.3 i Windows Phone do wersji 2.0.1 Wersja 2.0.6 zmiana opisu integracji biblioteki Android w związku z przejściem z Eclipse do Android Studio i integracją z biblioteką appcompat. Strona 25 z 30

Opracował: Arkadiusz Załącznik nr 2 Historia zmian biblioteki Android Data Autor Uwagi 2012-09-01 Arkadiusz Opracowanie dokumentacji 2013-06-04 Arkadiusz Aktualizacja do wersji 1.4.0 2013-06-27 Arkadiusz Aktualizacja do wersji 1.4.2 2013-07-18 Arkadiusz 2013-09-13 Arkadiusz 2013-10-17 Arkadiusz 2013-10-18 Arkadiusz 2013-10-25 Arkadiusz 2013-11-14 Arkadiusz 2013-12-02 Arkadiusz 2013-12-03 Arkadiusz 2013-12-09 Arkadiusz 2013-12-17 Arkadiusz 2014-01-02 Arkadiusz 2014-01-13 Arkadiusz 2014-02-03 Arkadiusz 2014-02-05 Arkadiusz 2014-02-05 Arkadiusz 2014-02-25 Arkadiusz 2014-03-07 Arkadiusz 2014-08-25 Arkadiusz Wersja 1.4.3 drobne poprawki, bez zmian funkcjonalności i API Wersja 1.4.3 dodanie opisu konfiguracji połączenia biblioteki z serwerem sandbox. Wersja 1.4.4 poprawka przeklejania sms. Wersja 1.4.5 zmieniono domyślne ustawienie zapisywania danych logowania i sms. Wersja 1.4.6 hasła i sms dla nowych banków. Wersja 1.4.7 poprawiony błąd niepotwierdzonych transakcji Wersja 1.5.0 style mobilne na stronach banków, poprawiono kodowanie maila z powiadomieniem o transakcji, poprawiono przesyłanie parametru p24_city (ważne dla płatności kartą) Wersja 1.5.1 reguły potrzebne do obfuskacji boblioteki, refaktoryzacja Wersja 1.5.2 dodanie konfiguracji stylów mobilnych banków, poprawiono działanie konfiguracji biblioteki Wersja 1.5.3 poprawki drobnych błędów Wersja 1.5.4 poprawka błędu przy konfiguracji apilevel=17 na telefonie z Androidem 4.2+ Wersja 1.5.5 dodanie parametru P24Payment.setMethod Wersja 1.5.6 zmiana zoomowania stron banków na klasyczne (dotyczy stron bez stylów mobilnych), poprawka komunikatu Ładowanie, przeniesienie przycisków Zmień bank i Zakończ transakcję do ActionBar'a (jeżeli jest aktywny). Wersja 1.5.7 poprawka błędu WebView przy zamykaniu okna Wersja 1.5.8 bugfix, obsługa błędu autoryzacji certyfikatów, style mobilne dla Androida 2.1 Wersja 1.5.9 wyłączenie priorytetu renderowania strony w WebView (to ustawienie powodowało zawieszanie aplikacji skonwertowanej na Blackberry < 10.2) Wersja 1.6.0 implementacja dokumentacji 3.1 dodanie P24Payment.setToken(String). Poprawka opisu implementacji automatycznego powiadamiania o transakcji 2014-09-03 Arkadiusz Obsługa automatycznego powiadamiania o wyniku Strona 26 z 30

Opracował: Arkadiusz 2015-05-22 Arkadiusz 2015-06-05 Arkadiusz 2015-06-19 Arkadiusz 2015-07-20 Arkadiusz 2015-08-20 Arkadiusz 2015-08-27 Arkadiusz 2015-10-30 Arkadiusz 2016-03-07 Arkadiusz 2016-05-06 Arkadiusz transakcji zgodnie z dokumentacją 3.2 Wersja 2.0.0 dodanie obsługi e-przelewów, rezygnacja z kompatybilności z dokumentacją 2.x, przeredagowanie dokumentacji, dodanie pytania użytkownika o zapisywanie danych logowania, dodanie zapamiętywania haseł maskowanych Wersja 2.0.1 poprawka płatności e-przelewami Wersja 2.0.2 poprawka działania parametru dontaskforsavelogindata, poprawka ustawienia opisu transakcji Wersja 2.0.3 poprawka P24PaymentResultStatus Wersja 2.0.4 - dodanie parametru P24Payment.setClientPhone() Wersja 2.0.5 - dodanie parametru P24Payment.setTransferLabel(), angielska wersja językowa Wersja 2.0.6 zmiana biblioteki z formatu jar na aar, przykładowy projekt w AndroidStudio, integracja z biblioteką appcompat (dodanie dziedziczenia TransferActivity i BankListActivity po ActionBarActivity). Zmiana sposobu konfiguracji biblioteki w projekcie Android Studio. Optymalizacja przeładowywania ekranów przy wykonywaniu e-przelewów. Uaktualnienie reguł obfuskacji biblioteki Android Wersja 2.0.7 Poprawka kompilacji biblioteki dla Gradle 2.1.0, dodanie walidacji obowiązkowych parametrów w P24Config i P24Payment, zmiana maksymalnej wartości timelimit na 99, zmiana typu parametru P24Conifg. merchantid na int Strona 27 z 30

Opracował: Arkadiusz Załącznik nr 3 Historia zmian biblioteki ios Data Autor Uwagi 2013-06-13 Arkadiusz Opracowanie dokumentacji 2013-09-13 Arkadiusz 2013-10-31 Arkadiusz 2013-11-07 Arkadiusz 2013-11-07 Arkadiusz 2013-11-20 Arkadiusz 2013-12-03 Arkadiusz 2013-12-13 Arkadiusz 2014-01-10 Arkadiusz 2014-03-13 Arkadiusz 2014-04-07 Arkadiusz 2014-06-18 Arkadiusz 2014-08-25 Arkadiusz 2014-09-03 Arkadiusz 2014-10-24 Arkadiusz 2015-05-22 Arkadiusz 2015-06-30 Arkadiusz 2015-08-20 Arkadiusz 2015-08-28 Arkadiusz 2015-10-30 Arkadiusz Dodano opis konfiguracji połączenia biblioteki z serwerem sanbox Wersja 1.2.3 dodanie nowych banków, domyślnie ustawione zapisywanie haseł do banków, dodana zgodność z ios7 Wersja 1.2.4 poprawki błędów Wersja 1.3.0 dodanie stylów mobilnych do stron banków, poprawki błędów Wersja 1.3.1 automatyczne aktualizowanie zmian w konfiguracji i stylach stron banków. Zmiana konfiguracji projektu (dodanie flagi -lstdc++ i biblioteki systemowej libz) Wersja 1.3.2 bugfix Wersja 1.3.3 poprawiono parametr p24_encoding, poprawiono wydajność biblioteki podczas korzystania ze stylów mobilnych, dodano opcję stylów mobilnych w konfiguracji Wersja 1.3.4 dodano możliwość ustawienia domyślnej metody płatności w bibliotece (P24Payment.method), poprawki graficzne pod ios7 Wersja 1.3.5 poprawka ładowania niektórych stron banków Wersja 1.4.0 implementacja dokumentacji 3.1 dodanie P24Payment.token. Kompatybilność z architekturą arm64. Wersja 1.4.1 wyłączenie trybu modal dla ipada. Poprawka opisu implementacji automatycznego powiadamiania o transakcji Wersja 1.4.2 obsługa automatycznego powiadamiania o wyniku transakcji zgodnie z dokumentacją 3.2 Wersja 1.4.3 poprawka błędu z p24urlstatus, dodanie opcji ustawienia kolorów przycisków opcji w navigationbar Wersja 2.0.0 dodanie obsługi e-przelewów, rezygnacja z kompatybilności z dokumentacją 2.x, przeredagowanie dokumentacji, dodanie pytania użytkownika o zapisywanie danych logowania, dodanie zapamiętywania haseł maskowanych Wersja 2.0.1 - poprawka działania parametru dontaskforsavelogindata, poprawka ustawienia opisu transakcji Wersja 2.0.2 - dodanie parametru p24payment.clientphone Wersja 2.0.3 - dodanie parametru P24Payment.transferLabel, angielska wersja językowa, dodanie P24_CHANNEL_PBL Wersja 2.0.4 poprawka przełączania wersji językowej pod ios 9 Strona 28 z 30

Opracował: Arkadiusz 2016-01-29 Arkadiusz 2016-02-12 Arkadiusz Dodanie opisu konfiguracji Info.plist dla ios 9 Dodanie opisu konfiguracji biblioteki w projekcie Swift Strona 29 z 30

Opracował: Arkadiusz Załącznik nr 4 Historia zmian biblioteki Windows Phone Data Autor Uwagi 2013-05-27 Arkadiusz Opracowanie dokumentacji 2013-07-09 Arkadiusz Aktualizacja informacji kontaktowych w dokumencie 2013-07-23 Arkadiusz Drobne poprawki biblioteki, możliwość konfiguracji status bara przez P24Config 2013-07-26 Arkadiusz Wersja 1.0.2 zablokowanie poruszania ekranem listy metod płatności 2013-09-13 Arkadiusz Dodanie opisu konfiguracji biblioteki z serwerem sandbox 2013-09-23 Arkadiusz Wersja 1.0.3 drobne poprawki graficzne i wydajnościowe. Poprawiony problem zawieszania się pod Windows Phone 8. 2014-03-07 Arkadiusz Wersja 1.1.0 zmiany graficzne, zapisywanie danych logowania, autozamykanie podsumowania transakcji 2014-04-07 Arkadiusz Wersja 1.2.0 implementacja dokumentacji 3.1 dodanie P24Payment.Token 2014-08-35 Arkadiusz Poprawka opisu implementacji automatycznego powiadamiania o transakcji 2014-09-03 Arkadiusz Wersja 1.2.1 - obsługa automatycznego powiadamiania o wyniku transakcji zgodnie z dokumentacją 3.2 2014-12-01 Arkadiusz Wersja 1.2.2 poprawka powiadamiania o wyniku transakcji zgodnie z dokumentacją 3.2 2015-02-13 Arkadiusz Wersja 1.2.2.1 - bugfix 2015-05-27 Arkadiusz Wersja 1.2.3 poprawka błędu cofania przy ustawieniu P24Payment.Method 2015-08-26 Arkadiusz Wersja 2.0.0 kompatybilność z Windows Phone od wersji 8.0, rezygnacja z kompatybilności z dokumentacją Przelewy24 2.x, dodanie pytania użytkownika o zapisywanie danych logowania, dodanie zapamiętywania haseł maskowanych, dodanie weryfikacji transakcji z użyciem serwera partnera 2015-08-28 Arkadiusz 2015-10-30 Arkadiusz 2016-02-05 Arkadiusz Wersja 2.0.1 - dodanie parametru P24Payment.TransferLabel, angielska wersja językowa Wersja 2.0.2 poprawiono problem z płatnością przelewem z banków ING i Pekao S.A., kompatybilność z systemem Windows Phone od wersji 8.1 (poprawka dla banku ING wymagała kompilacji biblioteki na WP 8.1) Wersja 2.0.3 biblioteka Windows Phone od wersji 2.0.3 wspiera tylko platformę Windows Phone Runtime. Dodano style mobilne. Strona 30 z 30