Integracja frameworku Wicket z serwisem Platnosci.pl.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Integracja frameworku Wicket z serwisem Platnosci.pl."

Transkrypt

1 Integracja frameworku Wicket z serwisem Platnosci.pl. Paweł Wąsowski, Wprowadzenie Niniejszy dokument powstał w trakcie realizacji projektu SzukamNeta.pl. Dokument zawiera praktyczne wskazówki implementacyjne do integracji dowolnego systemu napisanego z wykorzystaniem Framework Wicket z serwisem płatności.pl. Platnosci.pl to serwis adresowany do wszystkich serwisów o charakterze e-commerce, które dla swojej aktywności wymagają profesjonalnych rozwiązań płatniczych. Ciężko wyobrazić sobie dzisiaj jakikolwiek serwis o charakterze biznesowym bez uwzględnienia w nim ewidencji płatności, dlatego właściwa implementacja tego modułu jest bardzo ważna. 2. Konfiguracja konta Płatności.pl 2.1 Konto testowe Pierwszym krokiem jest założenie nowego konta w serwisie Platnosci.pl. W tym celu udajemy się na stronę i wypełniamy formularz zgłoszeniowy. Przy rejestracji należy obligatoryjnie podać dane istniejącej firmy, które przed otwarciem konta będą autoryzowane. Jeżeli nieposiadany takiej firmy, wypełniamy formularz danymi spełniającymi wymagania, a w polu uwagi wpisujemy, że prośbę o udostępnienie danych do konta testowego. Po zalogowaniu się do serwisu należy włączyć opcję transakcje testowe. Typ test służy do generowania płatności testowych, środki pozyskane z takich transakcji nie są przekazywane do Sklepu, typ ten nie wymaga żadnych dodatkowych parametrów dla

2 nowej płatności. Transakcje testowe są domyślnie wyłączone, są również automatycznie blokowane po 2 dniach od ostatniego ich użycia. W celu przeprowadzania testów należy aktywować ten rodzaj płatności za pomocą opcji Moje sklepy! Nazwa sklepu! Lista punktów płatności! Nazwa punktu, następnie zmieniamy status dla Płatności testowej poprzez klikniecie w kolumnie Stan. 2.2 Budowa adresów powrotu Po zakończonym procesie płatności klient może zostać przekierowany pod podany przez nas adres URL. W zależności od statusu transakcji zostanie wykorzystany odpowiedni adres UrlPozytywny lub UrlNegatywny. Adresy powrotu do Sklepu maja tylko charakter informacyjny, nie można na ich podstawie podejmować żadnych decyzji. Adresy powrotu mogą zawierać następujące stałe, które zostaną zamienione na odpowiednie wartości zgodnie z poniższa tabelka: stała %transid% %posid% %paytype% %sessionid% %amountps% opis identyfikator nowej transakcji utworzonej w aplikacji Platnosci.pl wartości pos id wartości pay type wartości session id wartości amount - jako separator kropka

3 %amountcs% %orderid% %error% wartości amount - jako separator przecinek wartości order id numer błędu zgodnie z tabelka 2.1 (s. 3) z [1], jest wykorzystywany tylko przy UrlNegatywny Przykłady: Załóżmy, że w naszym serwisie za informację dotyczące transakcji pozytywnej i negatywnej odpowiadają odpowiednia klasy SuccessbackPage.class oraz ErrorBackPage.class. Aby wyświetlać na stronie powrotu informacje o numerze transakcji oraz dostać powrotem numer sesji wpisujemy w polu URLNegatywny: htp:// pos id = %posid%&session id = %sessionid% 3. Implementacja modułu płatności 3.1 Nowa płatność W celu utworzenia nowej płatności należy na swojej stronie umieścić odpowiedni formularz, który przekieruje klienta do serwisu Platnosci.pl do procedury NewPayment. Zalecane jest korzystanie z metody POST, jeżeli jest to utrudnione można ewentualnie użyć metody GET. Lista wymaganych parametrów oraz ich znaczenie zawarta jest poniżej: parametr Opis pos_id wartość nadana przez Platnosci.pl pos_auth_key wartość nadana przez Platnosci.pl session_id identyfikator płatności - unikalny dla klienta amount kwota w groszach desc krótki opis - pokazywany klientowi, trafia first_name imię last_name nazwisko adres Pełna lista parametrów znajduję się w [1]. Musimy dla każdej płatności zaimplementować formularz, który utworzy nową płatność. Przykładowy formularz z minimalna liczba parametrów, został zaimplementowany jako nowy panel PayPanel.html. <html>

4 <form action=" method="post" name="payform"> <input type="hidden" name="first_name" value="pawel"><br /> <input type="hidden" name="last_name" value="gawel"><br /> <input type="hidden" name=" " /> <input type="hidden" name="pos_id" value="18347"> <input type="hidden" name="pos_auth_key" value="pmv6xva"> <input type="hidden" name="session_id" value=" "> <input type="hidden" name="amount" value="1000"> <input type="hidden" name="desc" value="opis płatnosci"> <input type="hidden" name="client_ip" value=" "> <input type="submit" value="zapłac poprzez Platnosci.pl"> </form> </wicket:panel> </html> PayPanel.java: public class PayPanel extends Panel { public PayPanel(String id, final int price, final IModel rowmodel) { super(id); Form form = new Form("form"); form.add(new TextField("amount",price)); add(form); W powyższym panelu w konstruktorze przekazywana jest wartość price, która określa kwotę w groszach potrzebną do utorzenia nowej płatności. Analogicznie wypełniamy wszystkie wymagane pola do założenia nowej płatności. Naciśnięcie przycisku submit, w takim formularzu przeniesie nas do strony:

5 Dla kont o charakterze testowym, jedyną obsługiwaną operacją testową jest Płatność testowa. Ponieważ konto nie jest prawdziwe, kliknięcie w taką ikonkę przeniesie nas do zdefiniowanej wcześniej strony URLNegatywny. htp:// pos id = %posid%&session id = %sessionid% 3.2 Informacje na temat transakcji Aby odczytać i wyświetlić zwrócone przez stronę płatności.pl parametry musimy zaimplementować klasę ErrorBackPage.java: public class ErrorBackPage extends WebPage{ public ErrorBackPage (PageParameters parameters) { long posid = parameters.getlong("posid"); add(new Label("nr_transakcji", "nr transkacji:"+string.valueof (posid))); long sessionid = parameters.getlong("sessionid"); add(new Label("nr_transakcji", posid)); add(new Label("nr_sesji", "nr sesji:"+string.valueof(sessionid))); Przykładowa strona ErrorBackPage.html: <html> <body> <h2><span wicket:id="nr_transakcji"></span></h2> <h2><span wicket:id="nr_sesji"></span></h2> </body> </html> 4. Literatura [1] Dokumentacja techniczna płatności.pl.