Dokumentacja techniczna interfejsu (Web Service) dla systemu sprzedaży internetowej - eraty Santander Consumer Bank www.eraty.pl wersja 2.1
Spis treści 1 Wstęp... 3 1.1 Strony komunikacji... 3 1.2 Błędy operacji... 3 2 Pobranie linii kredytowych... 4 2.1 Pobranie linii kredytowych... 4 3 Symulacja kredytu... 7 3.1 Symulacja kredytu... 7 4 Pobranie wartości słownikowych... 10 4.1 Pobranie wartości słownikowych... 10 6 Pobranie klauzul prawnych... 13 6.1 Pobranie klauzul prawnych... 13 7 Zapisanie wniosku... 14 7.1 Zapisanie wniosku... 14 8 Sprawdzenie stanu przetwarzania wniosku... 21 8.1 Sprawdzenie stanu przetwarzania wniosku... 21 9 Pobranie informacji o wniosku... 23 9.1 Pobranie informacji o wniosku... 23 10 Ustawienie towarów w danym wniosku... 29 10.1 Ustawienie towarów w danym wniosku... 29 11 Identyfikacyjne dane testowe... 32 11.1 Adres wsdl i dane do testowego logowania... 32 12 Przykłady budowania obiektów dla potrzeb Webservice eraty... 33 12.1 Przykłady budowania obiektów dla potrzeb Webservice eraty... 33 2
1 Wstęp Niniejszy dokument jest specyfikacją protokołu komunikacji usługi eraty Santander Consumer Bank z dowolnym innym systemem informatycznym Klientów przy pomocy protokołu SOAP, czyli serwisów webowych (Web Services) poprzez publiczny Internet. 1.1 Strony komunikacji W wymianie informacji uczestniczą dwie strony: Aplikacja eraty, pełniąca rolę serwera udostępniającego pewien zestaw funkcji,(nazywany w dalszej części Systemem), System informatyczny Klienta, (nazywany w dalszej części Klientem). Stroną aktywną jest Klient, który wysyła żądanie do Systemu i oczekuje na odpowiedź. 1.2 Błędy operacji W wypadku niepowodzenia wywołania operacji System sygnalizuje błąd zwracając komunikat błędu (wyjątek SOAP). Błąd, oprócz tekstowego komunikatu zawiera dodatkowe dane błędu, w postaci prostego dokumentu XML, którego węzeł EKredytException zawiera dwa podwęzły: kod zawierający kod błędu, informacja zawierający tekstowy błędu. Przykład błędu: <Exception> <kod>2</kod> <>Błąd logowania</> </Exception> W poniższej tabeli zaprezentowano komunikaty ogólne, przy każdym poleceniu tabela ta zostanie uzupełniona o komunikaty specyficzne dla danego polecenia: kod błędu 1 Błędny parametr 2 Błąd logowania 3 Brak uprawnień do sklepu 4 Błąd wewnętrzny systemu eraty 5 Niepoprawny typ produktu 6 Produkt niedostępny na sklepie 3
7 Nieprawidłowy wariant sklepu 2 Pobranie linii kredytowych 2.1 Pobranie linii kredytowych Metoda służy do pobrania podstawowych parametrów linii kredytowych dla sklepu. Jako dane podajemy parametry pozwalające na identyfikację Klienta, w odpowiedzi dostajemy zestaw obiektów zawierających dane linii kredytowych. Sygnatura metody: LinieKredytowe pobierzliniekredytowe (Identyfikacja identyfikacja, String[] kodyliniikredytowych); Parametry wejściowe: parametry identyfikacja standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego własności login haslo numer sklepu typ produktu login Klienta hasło Klienta numer sklepu Klienta Long typ produktu(kredytu) wartość słownikowa int kod 0 sprzedaż ratalna (obowiązuje w tej wersji systemu) 1 pożyczki gotówkowe 2 kredyty na kasy fiskalne 3 kredyt gotówkowy 4 kredyty dla podmiotów gospodarczych 4
wariant sklepu 5 karta VISA 6 kredyt konsolidacyjny wariant sklepu Klienta int kodyliniikredytowych tablica kodów linii kredytowych, Klient opcjonalnie może podać kody linii kredytowych, aby pobrać ich podstawowe dane. W przypadku podania pustej tablicy, metoda zwraca informacje o wszystkich liniach kredytowych dostępnych na sklepie. [] Zwracana wartość: parametry podstawowe parametry linii kredytowych LinieKredytowe, typ złożony, zdefiniowany w ramach serwisu webowego nazwasklepu liniakredytowa nazwa sklepu internetowego lista obiektów ujących parametry linii kredytowej własności kodliniikredytowej minimalnaliczbarat maksymalnaliczbarat dostepneliczbyrat numersklepu typ umowy (aby zidentyfikować która linie kredytową klient wybrał) umowy minimalna liczba rat dla typu umowy int maksymalna liczba rat dla typu umowy int mozliwe raty - napis zerojedynkowy numer sklepu Long Błędy: kod błędu 22 Błędne identyfikatory linii kredytowych 5
6
3 Symulacja kredytu 3.1 Symulacja kredytu Metoda służy do przeprowadzenia symulacji kredytu. Jako dane podajemy parametry pozwalające na przeprowadzenie symulacji, w odpowiedzi dostajemy obiekt zawierający wynik symulacji. Sygnatura metody: WynikSymulacji wykonajsymulacje(identyfikacja identyfikacja, Symulacja symulacja); Parametry wejściowe: parametry identyfikacja symulacja standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego obiekt zawierający dane potrzebne do przeprowadzenia symulacji Symulacja, typ złożony, zdefiniowany w ramach serwisu webowego własności kodliniikredytowej liczbarat wplatawlasna wartosctowarow typ umowy wybranej przez klienta liczba rat int wpłata własna double wartość zamówionych towarów, razem z kosztem przesyłki, który także może być kredytowany double Zwracana wartość: parametry obiekt zawierający wynik symulacji 7
WynikSymulacji, typ złożony, zdefiniowany w ramach serwisu webowego kwotakredytu wysokoscmiesiecznejraty wysokoscrocznejstopyproc APR kosztkredytu wplatawlasna liczbarat ubezpieczenie klauzula SposobPodpisUmowy kwota kredytu double wysokość miesięcznej raty double wysokość rocznej stopy procentowej double APR - Rzeczywista roczna stopa oprocentowania double całkowity koszt kredytu double wpłata własna double liczba rat int link do konkretnego dokumentu ującego ubezpiecznie, jeśli kredyt jest bez ubezpieczenia parametr pozostaje pusty klauzula prawna lista obiektów określających możliwy sposób podpisania umowy dla danego sklepu List<SposobPodpisUmowy> SposobPodpisUmowy, typ złożony, zdefiniowany w ramach serwisu webowego, który przyjmuje wartości słownikowe. kod 10 Umowa wysłana e-mailem w formacie PDF 20 Najbliższy Jost, klient podpisuje umowę w dowolnej jednostce operacyjnej 30 Umowa wysłana kurierem 40 Umowa dostarczona przed sprzedawca mobilnego 50 Umowa dostarczona razem z towarem przez kuriera Specyfikacja: własności kod int 8
Błędy: kod błędu 21 Brak aktywnych linii kredytowych 22 Błędne identyfikatory linii kredytowych 23 Ważność linii kredytowej wygasła 33 Błędna wartość koszyka 34 Błędny typ umowy 35 Błąd symulacji, przekroczony limit kredytu 36 Błąd symulacji, za niska kwota kredytu 37 Błąd symulacji, za niska kwota kredytu 9
4 Pobranie wartości słownikowych 4.1 Pobranie wartości słownikowych Metoda służy do pobrania wartości słownikowych. Jako dane podajemy parametry pozwalające na identyfikację Klienta, w odpowiedzi dostajemy zestaw wartości słownikowych, które umożliwią w późniejszym czasie poprawne złożenie wniosku. Sygnatura metody: Slowniki pobierzslowniki(identyfikacja identyfikacja); Parametry wejściowe: parametry identyfikacja standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego Zwracana wartość: parametry zestaw wartości słownikowych Slowniki, typ złożony, zdefiniowany w ramach serwisu webowego godziny gtu sposobpodpisaniaumowy godziny kontaktu z klientem, TreeMap<Integer, String> key value wartość słownikowa Integer wartości asortyment towaru, TreeMap<Integer, String> key value wartość słownikowa Integer wartości sposób dostarczenia umowy TreeMap<Integer, String> 10
stancywilny statusmieszkania typdokumentu typdrugiegodokumentu wojewodztwo wyksztalcenie zawodwykonywany key value wartość słownikowa Integer wartości stan cywilny, TreeMap<Integer, String> key value wartość słownikowa Integer wartości status mieszkania, TreeMap<Integer, String> key value wartość słownikowa Integer wartości typ dokumentu tożsamości, TreeMap<Integer, String> key value wartość słownikowa Integer wartości typ drugiego dokumentu tożsamości, TreeMap<Integer, String> key value wartość słownikowa Integer wartości województwo, TreeMap<Integer, String> key value wartość słownikowa Integer wartości wykształcenie, TreeMap<Integer, String> key value wartość słownikowa Integer wartości zawód wykonywany, TreeMap<Integer, String> 11
zrodlodochodu key value wartość słownikowa Integer wartości źródło dochodu, TreeMap<Integer, ZrodloDochodu > key value wartość słownikowa Integer obiekt ujący dane źródło dochodu ZrodloDochodu, typ złożony, zdefiniowany w ramach serwisu webowego własności parametry Opis pola parametry wartości przyjmuje wartości ciągu n znaków 0-3. 0 - parametr niewymagany 1 - parametr potrzebny do częściowego zapisu wniosku 2 parametr potrzebny do kompletnego zapisania wniosku 3 parametr dodatkowy, opcjonalny (20) Pozycja zrodlodochod udataod zrodlodochod udatado nazwa firmy adres stanowisko zawód wykonywany numer świadczenia nip Opis Data od której obowiązuje dane źródło dochodu Data do której obowiązuje dane źródło dochodu Nazwa firmy Adres Stanowisko Zawód wykonywany Numer świadczenia Nr NIP 12
regon gmina dochodnetto zrodlodochod u Nr Regon Gmina Dochód netto Źródło dochodu 5 Pobranie klauzul prawnych 5.1 Pobranie klauzul prawnych Metoda służy do pobrania klauzul prawnych. Jako dane podajemy parametry pozwalające na identyfikację Klienta, w odpowiedzi dostajemy zestaw klauzul prawnych wraz z podstawowymi informacjami na ich temat. Sygnatura metody: Klauzule pobierzklauzule (Identyfikacja identyfikacja); Parametry wejściowe: Parametry identyfikacja standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego Zwracana wartość: Parametry obiekt zawierający listę klauzul prawnych Klauzule, typ złożony, zdefiniowany w ramach serwisu webowego, zawierający listę obiektów Klauzula Klauzula obiekt zawierający dane klauzuli Klauzula, typ złożony, zdefiniowany w ramach serwisu webowego nazwa nazwa klauzuli pozwalająca na jej identyfikację 13
tresc wymaganaodpowiedz wymaganazgoda treść klauzuli czy dana klauzula wymaja odpowiedzi, format zero-jeden int czy zgoda na dana klauzule jest wymagana, format zero-jeden int 6 Zapisanie wniosku 6.1 Zapisanie wniosku Metoda służy do zapisu wniosku o przyznanie kredytu. Jako dane podajemy parametry ujące ten wniosek, w odpowiedzi otrzymujemy identyfikator, pod którymi została zapisana wiadomość. Umożliwi to w późniejszym czasie odpytanie o status tej wiadomości. Sygnatura metody: String zlozwniosek (Identyfikacja identyfikacja, Symulacja symulacja, Zamowienie zamowienie); Parametry wejściowe: parametry identyfikacja symulacja zamowienie standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego obiekt zawierajacy dane potrzebne do przeprowadzenia symulacji Symulacja, typ złożony, zdefiniowany w ramach serwisu webowego obiekt zawierający dane zamówienia z systemu klienckiego Zamowienie, typ złożony, zdefiniowany w ramach serwisu webowego klient dane klienta Klient, typ złożony, zdefiniowany w ramach serwisu webowego własności 14
PESEL imie nazwisko adres PESEL (11) imię (35) nazwisko (35) obiekt zawierający adres Adres, typ złożony, zdefiniowany w ramach serwisu webowego własności kodpocz kod pocztowy String(5) email telefondomowy telefonsluzbowy komorkaprywatna komorkasluzbowa typdokumentutozs miasto ulica nrmieszkani a nrdomu e-mail (35) miasto String(50) ulica String(50) nr domu String(7) nr domu String(7) telefon domowy Klienta (9 cyfr) (9) telefon służbowy (9 cyfr) (9) telefon komórkowy prywatny Klienta (9 cyfr) (9) telefon komórkowy służbowy Klienta (9 cyfr) (9) typ dokumentu tożsamości wartość słownikowa 15
serdokumentutozs nrdokumentutozs typdokumentutozs2 serdokumentutozs2 nrdokumentutozs2 stancywilny wyksztalcenie int seria dokumentu tożsamości (3) numer dokumentu tożsamości (20) typ drugiego dokumentu tożsamości(musi być różny od typdokumentutozs ) wartość słownikowa int seria drugiego dokumentu tożsamości (3) numer drugiego dokumentu tożsamości (20) stan cywilny wartość słownikowa int wykształcenie wartość słownikowa int statusmieszkaniowy status mieszkaniowy wartość słownikowa int dochod Dane dotyczące źródła dochodu klienta Dochód, typ złożony, zdefiniowany w ramach serwisu webowego własności zrodlodocho du zrodlodocho dudataod źródło dochodów wartość słownikow a double(10, 2) data, od której obowiązuj e dane 16
zrodlodocho dudatado nazwafirmy nip regon stanowisko adres numerswiadc zenia źródło dochodów, format RRRR-MM- DD String data, do której obowiązuj e dane źródło dochodów, format RRRR-MM- DD String nazwa firmy String(60) NIP long(10) regon long(9) stanowisko pracy klienta String(50) obiekt zawierając y adres miejsca pracy Adres, typ złożony, zdefiniowan y w ramach serwisu webowego Numer świadczenia emerytalne 17
wojewodztwo godzod godzdo sposobpodpisumowy go/rentowe go String(30) dochodnetto dochód netto, wartość liczbowa z separatore m w postaci kropki String(10) zawod zawód wykonywa ny wartość słownikow a int województwo wartość słownikowa int preferowana godzina kontaktu od wartość słownikowa (2) preferowana godzina kontaktu do wartość słownikowa (2) preferowany sposób podpisania umowy wartość słownikowa (2) kod 10 Umowa wysłana e-mailem w formacie PDF 20 Najbliższ y Jost, klient podpisuj 18
towar e umowę w dowolnej jednostc e operacyj nej 30 Umowa wysłana kurierem 40 Umowa dostarcz ona przed sprzedaw ca mobilneg o 50 Umowa dostarcz ona razem z towarem przez kuriera element listy zawierający dane n-tego towaru, typu Towar Towar, typ złożony, zdefiniowany w ramach serwisu webowego własności idtowaru identyfikator ze sklepu n- tego towaru (20) nazwatowaru wartosctowaru liczbasztuktowaru jednostkatowaru nazwa n-tego towaru (50) cena n-tego towaru, z separatorem w postaci kropki double(11,2) ilość n-tego towaru double(7,2) jednostka n-tego towaru (10) idgtu asortyment towaru wartość słownikowa int 19
odpnaklauzule sposobdostarcz eniatowaru nrzamowienias klep lista odpowiedzi na klauzule prawne. Parametr ma formę ciągu 3 znaków 0-1, gdzie 1 zgoda, 0 brak zgody. (3) sposób dostarczenia towaru (50) nr zamówienia wygenerowanego przez sklep (30) Zwracana wartość: parametry nrwniosku nr wniosku (10) Błędy: kod błędu 21 Brak aktywnych linii kredytowych 22 Błędne identyfikatory linii kredytowych 23 Ważność linii kredytowej wygasła 33 Błędna wartość koszyka 34 Błędny typ umowy 35 Błąd symulacji, przekroczony limit kredytu 36 Błąd symulacji, za niska kwota kredytu 37 Błąd symulacji, za niska kwota kredytu 90 Wstępna weryfikacja po pesel: brak zgody 106 Brak zgody na przetwarzanie danych osobowych. 20
7 Sprawdzenie stanu przetwarzania wniosku 7.1 Sprawdzenie stanu przetwarzania wniosku Polecenie służy do sprawdzenia stanu przetwarzania wniosku. Sygnatura metody: String sprawdzstanwniosku(identyfikacja identyfikacja, String nrwniosku); Parametry wejściowe: parametry identyfikacja nrwniosku standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego numer wniosku (10) Zwracana wartość: parametry obiekt zawierający informacje na temat procesowania się wniosku InfoWniosekTo, typ złożony, zdefiniowany w ramach serwisu webowego nrumowyelrat numerzewn statuswniosku infozewolen numerzezwolen errkod message Numer wniosku w elratach Long Numer systemu zewnętrznego stan przetwarzania wniosku Informacja o warunkach otrzymania kredytu Numer systemu eraty Numer błędu Integer Opis błędu 21
Błędy: Metoda nie zwraca dodatkowych wyjątków, tylko podstawowe. Mogą pojawić się błędy dodatkowe ale już nie w postaci wyjątków. Jeżeli w obiekcie InfoWniosekTo wszystkie pola będą puste za wyjątkiem errkod oraz message, wówczas mamy błąd dodatkowy. Prawidłowe wykonanie metody zwróci obiekt InfoWniosekTo z pustymi polami errkod oraz message. 22
8 Pobranie informacji o wniosku 8.1 Pobranie informacji o wniosku Metoda służy do pobierania informacji o wniosku. Jako dane podajemy parametry pozwalające na identyfikację Klienta, oraz numer wniosku, w odpowiedzi dostajemy obiekt zawierający dane nt. wniosku. Sygnatura metody: WniosekDTO getinfown(identyfikacja identyfikacja, Long nrinternetowywn); Parametry wejściowe: parametry identyfikacja nrinternetowywn standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego internetowy numer wniosku (numer wniosku w zezwoleniach) Long Zwracana wartość: parametry obiekt zawierający informację o danym wniosku WniosekDTO, typ złożony, zdefiniowany w ramach serwisu webowego, zawierający informacje o wniosku WniosekDTO obiekt transportowy zawierający informacje o wniosku WniosekDTO, typ złożony, zdefiniowany w ramach serwisu webowego nrsklepu wariantsklepu adreszamieszkania nr sklepu pozwalający na jego identyfikację wariant sklepu obiekt transportowy zawierający adres zamieszkania klienta AdresDTO, typ złożony, zdefiniowany w ramach serwisu 23
adreskorespodencyjny email datawprowadzenia statuswniosku internetowynrwniosku nrumowy wplatawlasna datakontaktu liczbatelefonow tel_domowy tel_sluzbowy tel_komorkowy_prywat ny tel_komorkowy_sluzbo wy webowego własności nazwisko imie ulica nrdomu kodpocztowy miasto nazwisko imię ulica nr domu kod pocztowy miasto obiekt transportowy zawierający adres korespondencyjny klienta AdresDTO email sklepu data wprowadzenia Date status wniosku Short internetowy numer wniosku numer umowy kwota wpłaty własnej BigDecimal ostatnia data kontaktu Date liczba telefonów Long numer telefonu domowego numer telefonu służbowego numer prywatnego telefonu komórkowego numer służbowego telefonu komórkowego 24
towary liczbarat lista zamówionych towarów dla danego wniosku List<TowaryDTO>, typ złożony, zdefiniowany w ramach serwisu webowego własności idtowaruwsklepie id nazwa czydostepny czyusuniety szczegoly datapotwierdzenia liczba rat Short identyfikator jednoznaczn ie identyfikują cy towar w sklepie klucz główny Long nazwa towaru czy towar jest dostępny Boolean czy towar jest usunięty Boolean szczegóły zamówienia, np.ilość towaru Ostatnia data zmiany statusu dostępności towaru Date Błędy: 25
kod błędu 102 brak praw do wniosku 108 problem z pobraniem danych wniosku 500 problem z dostępem do elrat Kolejna metoda, także służy do pobierania informacji o wniosku. Jako dane podajemy parametry pozwalające na identyfikację Klienta, oraz numer zamówienia w sklepie internetowym, w odpowiedzi dostajemy obiekt zawierający dane nt. wniosku. Sygnatura metody: InfoWniosekTO sprawdzstanwnioskuidzewn(identyfikacja identyfikacja, String nrzamowieniazewn); Parametry wejściowe: parametry identyfikacja nrzamowieniazewn Opis standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego numer zamówienia sklepu Zwracana wartość: parametry obiekt zawierający informację o danym wniosku InfoWniosekTO, typ złożony, zdefiniowany w ramach serwisu webowego, zawierający informacje o wniosku nrumowyelrat numerzewn numerzezwolen statuswniosku Błędy: kod błędu numer wniosku z Elrat BigInteger numer zamówienia ze sklepu identyfikator wniosku z Zezwoleń status wniosku 102 brak praw do wniosku 26
108 problem z pobraniem danych wniosku 500 problem z dostępem do elrat 51 Problem spójności danych, znaleziono kilka wniosków z takim samym numerem zamówienia 27
10 Ustawienie towarów w danym wniosku 10.1 Ustawienie towarów w danym wniosku Metoda służy do ustawiania atrybuty towarów w danym wniosku. Jako dane podajemy parametry pozwalające na identyfikację Klienta, oraz obiekt zawierający podstawowe dane o wniosku, a więc także listę towarów wraz z odpowiednimi atrybutami. Metoda nie zwraca żadnej wartości. Sygnatura metody: void ustawtowary(identyfikacja identyfikacja, WniosekDTO wniosekdto) Parametry wejściowe: parametry identyfikacja WniosekDTO standardowy obiekt identyfikacja Identyfikacja, typ złożony, zdefiniowany w ramach serwisu webowego obiekt transportowy zawierający informacje o wniosku WniosekDTO, typ złożony, zdefiniowany w ramach serwisu webowego nrsklepu wariantsklepu adreszamieszkania nr sklepu pozwalający na jego identyfikację wariant sklepu obiekt transportowy zawierający adres zamieszkania klienta AdresDTO, typ złożony, zdefiniowany w ramach serwisu webowego własności nazwisko imie ulica nrdomu nazwisko imię ulica nr domu 28
adreskorespodencyjny email datawprowadzenia statuswniosku internetowynrwniosku nrumowy wplatawlasna datakontaktu liczbatelefonow tel_domowy tel_sluzbowy tel_komorkowy_prywat ny tel_komorkowy_sluzbo wy towary kodpocztowy miasto kod pocztowy miasto obiekt transportowy zawierający adres korespondencyjny klienta AdresDTO email sklepu data wprowadzenia Date status wniosku Short internetowy numer wniosku numer umowy kwota wpłaty własnej BigDecimal ostatnia data kontaktu Date liczba telefonów Long numer telefonu domowego numer telefonu służbowego numer prywatnego telefonu komórkowego numer służbowego telefonu komórkowego lista zamówionych towarów dla danego wniosku List<TowaryDTO>, typ złożony, zdefiniowany w ramach serwisu webowego własności idtowaruwsklepie identyfikator jednoznaczn ie identyfikują 29
liczbarat id nazwa czydostepny czyusuniety szczegoly datapotwierdzenia liczba rat Short cy towar w sklepie klucz główny Long nazwa towaru czy towar jest dostępny Boolean czy towar jest usunięty Boolean szczegóły zamówienia, np.ilość towaru Ostatnia data zmiany statusu dostępności towaru Date Błędy: kod błędu 500 problem z dostępem do elrat 503 błędne dane, prawdopodobnie ktoś próbuje modyfikować inny wniosek 504 błędne stany towaru 505 brak możliwości edycji wniosku 30
11 Identyfikacyjne dane testowe 11.1 Adres wsdl i dane do testowego logowania Adres serwisu: https://www.eraty.pl:8443/eratywsservice/eratyws?wsdl Dane do logowania: <identyfikacja> <haslo>eratytest!1</haslo> <login>eratytest</login> <numersklepu>13010005</numersklepu> <typproduktu>0</typproduktu> <wariantsklepu>1</wariantsklepu> </identyfikacja> Uwaga! Powyższe dane służą wyłącznie do testowania aplikacji korzystających z metod webservices. Nie ma możliwości wykorzystania ich do logowania w Panel Sklep. 31
12 Przykłady budowania obiektów dla potrzeb Webservice eraty 12.1 Przykłady budowania obiektów dla potrzeb Webservice eraty Budowanie klienta: $wsdl = "https://www.eraty.pl:8443/eratywsservice/eratyws?wsdl"; $client = new SoapClient($wsdl); Identyfikacja: $identyfikacja->login = $login; $identyfikacja->haslo = $haslo; $identyfikacja->numersklepu = $numersklepu; $identyfikacja->typproduktu = $typproduktu; // "0" dla sprzedaży ratalnej $identyfikacja->wariantsklepu = $wariantsklepu; // "1" dla podstawowego wariantu sklepu Pobranie linii kredytowych: try { $result = $client->pobierzliniekredytowe($identyfikacja); } catch(exception $e) { echo "<script>alert('".ereg_replace("\n", ";\\n", strip_tags($e- >faultstring))."');</script>"; } Przykładowy wynik: stdclass Object ( [liniakredytowa] => Array ( [0] => stdclass Object ( [dostepneliczbyrat] => 00111111111111111111111111111111111100000000000000000000000000000000000 [kodliniikredytowej] => OL009BYY [maksymalnaliczbarat] => 36 [minimalnaliczbarat] => 3 [numersklepu] => 13010005 [] => Raty 1% miesięcznie ) [1] => stdclass Object ( 32
[dostepneliczbyrat] => 00111111111111111111111111111111111100000000000000000000000000000000000 [kodliniikredytowej] => CL00C1R1 [maksymalnaliczbarat] => 36 [minimalnaliczbarat] => 3 [numersklepu] => 13010005 [] => Pakiet srebrny II test ) ) ) [nazwasklepu] => Wersja Testowa Sklepu (Wariant 1, DO TESTOWANIA) Symulacja: $symulacja->kodliniikredytowej = $kodliniikredytowej; $symulacja->liczbarat = $liczbarat; $symulacja->wplatawlasna = $wplatawlasna; $symulacja->wartosctowarow = $wartosctowarow; Adres: $adres->kodpocz = $kodpocz1; $adres->miasto = $miasto1; $adres->ulica = $ulica1; $adres->nrmieszkania = $nrmieszkania1; $adres->nrdomu = $nrdomu1; Adres korenspondencyjny: $adreskorespondencyjny->kodpocz = $kodpocz2; $adreskorespondencyjny->miasto = $miasto2; $adreskorespondencyjny->ulica = $ulica2; $adreskorespondencyjny->nrmieszkania = $nrmieszkania2; $adreskorespondencyjny->nrdomu = $nrdomu2; Dochód: $dochod->zrodlodochodu = substr($zrodlodochodu, 0,2); // źródło dochodu to pierwsze dwa znaki z ciągu pobranego ze słowników (10132221033011) $dochod->zrodlodochodudataod = $zrodlodochodudataod; $dochod->zrodlodochodudataod = $zrodlodochodudatado; $dochod->nazwafirmy = $nazwafirmy; $dochod->nip = $nip; $dochod->regon = $regon; $dochod->stanowisko = $stanowisko; $dochod->adres = $adresfirma; // obiekt tworzony analogicznie do $klient- >adreskorespondencyjny $dochod->numerswiadczenia = $numerswiadczenia; $dochod->dochodnetto = $dochodnetto; $dochod->zawod = $zawodwykonywany; $dochod->gmina = $gmina; 33
Klient: $klient->pesel = $pesel; $klient->imie = $imie; $klient->nazwisko = $nazwisko; $klient->adres = $adres; // obiekt zdefiniowany powyżej $klient->adreskorespondencyjny = $adreskorespondencyjny; // obiekt zdefiniowany powyżej $klient->email = $email; $klient->telefondomowy = ""; $klient->telefonsluzbowy = ""; $klient->komorkaprywatna = $komorkaprywatna; $klient->komorkasluzbowa = ""; $klient->typdokumentutozs = $typdokumentu; $klient->serdokumentutozs = $serdowodu; $klient->nrdokumentutozs = $nrdowodu; $klient->typdokumentutozs2 = $typdrugiegodokumentu; $klient->serdokumentutozs2 = $serdowodu2; $klient->nrdokumentutozs2 = $nrdowodu2; $klient->stancywilny = $stancywilny; $klient->wyksztalcenie = $wyksztalcenie; $klient->statusmieszkaniowy = $statusmieszkania; $klient->sposobpodpisumowy = $sposobpodpisumowy; $klient->identyfikatorkredytpunktu = $kp; // jeśli sposobpodpisumowy == 30, $kp = "" $klient->dochod = $dochod; // obiekt zdefiniowany powyżej $klient->wojewodztwo = $_POST['wojewodztwo']; $klient->godzod = $godzod; // godziny kontaktu od $klient->godzdo = $godzdo; // godziny kontaktu do $klient->liczbaczlonkowgospdomowego = $liczbaczlonkowgospdomowego; // liczba osób na utrzymaniu kredytobiorcy plus kredytobiorca (>=1) Towar: class towar { function construct() { } $towary = array(); for ($i=1;$i<=$_post['liczbasztuktowarow'];$i++) { $idtowaru = "idtowaru".$i; $nazwatowaru = "nazwatowaru".$i; $wartosctowaru = "wartosctowaru".$i; $liczbasztuktowaru = "liczbasztuktowaru".$i; $jednostkatowaru = "jednostkatowaru".$i; if (preg_replace('#[^1-9]#', '', $_POST[$wartoscTowaru])!= '') { if (strlen($_post[$nazwatowaru])>50) { $nowanazwatowaru = mb_substr($_post[$nazwatowaru], 0, 45)."..."; // nazwa towaru nie może być dłuższa niż 50 znaków } else { $nowanazwatowaru = $_POST[$nazwaTowaru]; } $towar = new towar(); 34
$towar->idtowaru = mb_substr($_post[$idtowaru], 0, 20); // id towaru nie może być dłuższe niż 20 znaków $towar->nazwatowaru = $nowanazwatowaru; $towar->wartosctowaru = str_replace(",", ".", $_POST[$wartoscTowaru]); // wartość towaru w zapisie nie może zawierać przecinków $towar->liczbasztuktowaru = str_replace(",", ".", $_POST[$liczbaSztukTowaru]); // liczba sztuk towaru w zapisie nie może zawierać przecinków $towar->jednostkatowaru = $_POST[$jednostkaTowaru]; $towar->idgtu = $idgtu; // pobierane ze słownika ale obecnie ustalane jest jedno dla wszystkich towarów $idgtu = 1 array_push($towary, $towar); } } Zamówienie: $zamowienie->klient = $klient; // obiekt zdefiniowany powyżej $zamowienie->towar = $towary; // obiekt zdefiniowany powyżej $zamowienie->nrzamowieniasklep = $nrzamowieniasklep; $zamowienie->odpnaklauzule = $odpnaklauzule; // obiekt stworzony na podstawie wartości słownikowych $zamowienie->sposobdostarczeniatowaru = $sposobdostarczeniatowaru; Złożenie wniosku: try { $result = $client->zlozwniosek($identyfikacja, $symulacja, $zamowienie); // obiekty zdefiniowane powyżej } catch(exception $e) { echo "<script>alert('kod błędu: ".ereg_replace("\n", ";\\n", strip_tags($e->faultstring))."'); history.back();</script>"; } 35