Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

UC.01 Koszyk powiązany z InPost Pay 

Weryfikacja powiązania koszyka z InPost Pay [1-11]: 

  1. Klient przechodzi na stronę Merchanta. 

  2. Merchant buduje stronę sklepu, jednocześnie weryfikując, czy koszyk klienta jest powiązany z InPost Pay oraz czy przeglądarka, z której klient aktualnie korzysta jest dodana do zaufanych. Weryfikacja następuje poprzez request GET/v1/izi/basket/{basket_id}/binding do InPost Pay. 

  3. InPost Pay zwraca informacje, że koszyk jest powiązany (basket_linked=true) oraz przeglądarka jest zaufana (browser_trusted=true

  4. Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja : “Zamów i zapłać. Twoje produkty czekają w aplikacji InPost!”. 

  5. Widget po uzyskaniu informacji, że koszyk jest powiązany, rozpoczyna nasłuchiwanie backend Merchanta (z wykorzystaniem looping lub websocket) czy nastąpiła realizacja zamówienia za koszyk. W przypadku otrzymania informacji o realizacji widget prezentuje ekran z podziękowaniami (tzw. Thank you page). 

Połączenie koszyka z innym numerem telefonu (Usunięcie/desynchronizacja koszyka powiązanego z InPost Pay) [12-25]: 

  1. Klient naciska widget “Zamów i zapłać z InPost Pay” 

  2. Widget prezentuje ekran “Twoje zakupy czekają już na Ciebie w aplikacji InPost Mobile” wraz z prezentacją zamaskowanego numeru telefonu, z którym koszyk jest powiązany w aplikacji InPost Pay. 

  3. Klient wybiera “Połącz te zakupy z innym numerem telefonu”. 

  4. Widget prezentuje popup “Czy na pewno chcesz powiązać te zakupy z numerem telefonu innym niż..”. 

  5. Klient potwierdza powiązanie z innym numerem telefonu. 

  6. Widget wywoła iziBindingDelete wystawioną przez backend Merchanta, który następnie wywoła metodę DELETE/v1/izi/basket/{basket_id}/binding do InPost Pay. 

  7. InPost Pay usuwa powiązanie koszyka z numerem telefonu oraz przekazuje informacje do backendu Merchanta o poprawnym wykonaniu zadania. 

  8. Kolejnym etapem jest wywołanie  metody DELETE/v1/izi/browser/{browser_id}/bindingdo InPost Pay.

  9. InPost Pay usuwa powiązanie przeglądarki z numerem telefonu oraz przekazuje informacje do backendu Merchanta o poprawnym wykonaniu zadania.

  10. Merchant przekazuje informacje do widget, który następnie prezentuje klientowi ekran z wiązaniem koszyka z wykorzystaniem zaktualizowanego/zmienionego numeru telefonu. 

    Image Modified

Poniżej znajduje się filmik, na którym został omówiony diagram:

View file
nameUC1.7z


Na tej stronie

Table of Contents
minLevel1
maxLevel2

UC.02 Wiązanie koszyka z InPost Pay z wykorzystaniem qrCode 

Weryfikacja powiązania koszyka z InPost Pay [1-6]: 

  1. Klient przechodzi na stronę Merchanta Merchanta

  2. Merchant buduje stronę sklepu, jednocześnie weryfikując, czy koszyk klienta jest powiązany z InPost Pay oraz czy przeglądarka z której klient aktualnie korzysta jest dodana do zaufanych. Weryfikacja następuje poprzez request GET/v1/izi/basket/{basket_id}/binding do InPost Pay Pay

  3. InPost Pay zwraca informacje, że koszyk nie jest powiązany (basket_linked=false) oraz przeglądarka nie jest zaufana (browser_trusted=false) 

  4. Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja : “Utwórz koszyk z InPost Pay” 

  5. Wywoływana jest metoda iziCanBeBound, która określa czy produkt może zostać dodany do koszyka.

Wiązanie z wykorzystaniem qrCode [7-30]: 

  1. Klient przyciska widget “Utwórz koszyk z InPost Pay”, nastepnie prezentuje się klientowi ekran z wiązaniem koszyka z wykorzystaniem numeru telefonu. Klient zmienia na wiązanie z wykorzystaniem qrCode

  2. Widget wywołuje metodę iziGetBindingData (bez parametrów) iziGetPayData, która pobiera dane potrzebne do parowania koszyków i w której zawiera się metoda iziGetBrowserData zwracająca dane przeglądarki które są niezbędne do pobrania qrCode do backendu Merchanta, który z wykorzystaniem metody POST/v1/izi/basket/{basket_id}/binding pobiera qrCode od InPost Pay. Merchant w request przekazuje dane: 

    1. basket_id - unikalny id koszyka 

    2. binding_method = DEEP_LINK LINK 

    3. binding_place - miejsce, w którym nastąpiło wiązanie koszyka 

    4. browser - obiekt z informacji o szczegółach przeglądarki, z której następuje wiązanie 

  3. InPost Pay generuje qrCode/deep link, który następnie poprzez backend Merchanta jest przekazywany do widgetu, w celu zaprezentowania klientowi. 

  4. Klient inicjuje proces wiązania przy pomocy: 

    1. aplikacji obilnej mobilnej InPost - przy pomocy której skanuje qrCode, lub 

    2. deep linka, który uruchamia funkcję iziMobileLink, która powoduje przekierowanie do dokończenia procesu w aplikacji InPost Pay Pay

  5. Po zainicjowaniu procesu w zależności, czy klient ma lub nie ma podpisanej umowy w aplikacji InPost Pay, przechodzi w odpowiednie flow (wiązanie koszyka lub onboarding do InPost Pay i wiązanie koszyka). 

  6. InPost Pay wiąże koszyk (id koszyka nadane przez Merchanta) z numerem telefonu i przekazuje informacje do Merchanta o powiązaniu koszyka z wykorzystaniem metody POST/v1/izi/basket/{basket_id}/confirmation. Metoda wystawiona przez Merchanta w której InPost Pay przekazuje dane: 

    1. basket_id - unikalny identyfikator koszyka nadany przez merchanta 

    2. status - status wiązania [SUCCESS; REJECT

    3. inpost_basket_id - unikalny identyfikator koszyka nadany przez InPost Pay - dana wykorzystywana tylko przez widget 

    4. phone_number - numer telefonu, z którym koszyk został powiązany 

    5. browser - obiekt przekazujący informacje czy przeglądarka została dodana do zaufanych 

      1. browser_trusted - flaga informująca, czy przeglądarka została dodana do zaufanych 

      2. browser_id - identyfikatora przeglądarki zaufanej, nadany przez InPost Pay 

    6. masked_phone_number - numer maskowany 

    7. name - imię klienta 

    8. surname - nazwisko klienta 

  7. Backend Merchanta po otrzymaniu POST/v1/izi/basket/{basket_id}/confirmation potwierdzającego powiązanie koszyka z sukcesem, w response przesyła do Inpost Pay Basket Details klienta (szczegóły koszyka, na które składają się dane obligatoryjne : summary, delivery, products, consents oraz opcjonalne promo_codes, related_products

  8. Podczas procesu wiązania koszyka, widget rozpoczyna nasłuchiwanie backendu Merchanta (z wykorzystaniem looping lub websocket) czy backend merchant otrzymał informacje o powiązaniu koszyka (POST/v1/izi/basket/{basket_id}/confirmation). W przypadku otrzymania informacji, widget prezentuje klientowi powiadomienie o udanym powiązaniu i dokończeniu płatności za zakupy w aplikacji InPost Pay oraz zapisuje browser_id w local storage przeglądarki. 

  9. Widget po uzyskaniu informacji, że koszyk jest powiązany, rozpoczyna nasłuchiwać backend Merchanta (z wykorzystaniem looping lub websocket), czy nastąpiła realizacja zamówienia za koszyk. W przypadku otrzymania informacji o realizacji, widget prezentuje klientowi ekran z podziękowaniami za finalizację zamówienia. 

Image Removed

  1. Image Added

Poniżej znajduje się filmik, na którym został omówiony diagram:

View file
nameUC2.7z


UC.03 Wiązanie koszyka z InPost Pay z wykorzystaniem numeru telefonu 

Weryfikacja powiązania koszyka z InPost Pay [1-6]: 

  1. Klient przechodzi na stronę Merchanta. 

  2. Merchant buduje stronę sklepu, jednocześnie weryfikując, czy koszyk klienta jest powiązany z InPost Pay oraz czy przeglądarka z której klient aktualnie korzysta jest dodana do zaufanych. Weryfikacja następuje poprzez request GET/v1/izi/basket/{basket_id}/binding do InPost Pay. 

  3. InPost Pay zwraca informacje, że koszyk nie jest powiązany (basket_linked=false) oraz przeglądarka nie jest zaufana (browser_trusted=false). 

  4. Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja : “Utwórz koszyk z InPost Pay”. 

  5. Wywoływana jest metoda iziCanBeBound, która określa czy produkt może zostać dodany do koszyka.

Wiązanie z wykorzystaniem numeru telefonu [7-30]: 

  1. Klient przyciska widget “Utwórz koszyk z InPost Pay”, po którym prezentuje się klientowi ekran z wiązaniem koszyka z wykorzystaniem numeru telefonu. Klient wprowadza numer telefonu i wybiera połącz. 

  2. Widget wywołuje metodę iziGetBindingData (z parametrami id, prefix, phoneNumber) iziGetPayData, która pobiera dane potrzebne do parowania koszyków i w której zawiera się metoda iziGetBrowserData zwracająca dane przeglądarki do backendu Merchanta, który z wykorzystaniem metody POST/v1/izi/basket/{basket_id}/binding przekazuje numer telefonu do InPost Pay. Merchant w request przekazuje dane: 

    1. basket_id - unikalny id koszyka 

    2. binding_method = PHONE 

    3. phone_number - numer telefonu wprowadzony przez klienta 

    4. binding_place - miejsce, gdzie nastąpiło wiązanie koszyka 

    5. browser - obiekt składający się z informacji dot. przeglądarki, z której następuje wiązanie 

  3. InPost Pay weryfikuje reguły bezpieczeństwa/spam wiązania dla numeru telefonu. W przypadku: 

    1. pozytywnej weryfikacji odpowiada response (202) do Merchanta oraz wysyła notyfikacje (push) na urządzenie klienta. 

    2. negatywnej weryfikacji proces wiązania koszyka jest kończony (InPost Pay zwraca kod błędu do backendu Merchanta). 

  4. Klient poprzez notyfikacje push uruchamia aplikacje InPost, w której: 

    1. akceptuje powiązanie koszyka lub

    2. rejestruje się w InPost Pay i akceptuje powiązanie koszyka

  5. InPost Pay wiąże koszyk (id koszyka nadane przez Merchanta) z numerem telefonu i przekazuje informacje do Merchanta o powiązaniu koszyka z wykorzystaniem metody POST/v1/izi/basket/{basket_id}/confirmation. Metoda wystawiona przez Merchanta w której InPost Pay przekazuje dane: 

    1. basket_id - unikalny identyfikator koszyka nadany przez merchanta 

    2. status - status wiązania [SUCCESS; REJECT

    3. inpost_basket_id - unikalny identyfikator koszyka nadany przez InPost Pay - dana wykorzystywana tylko przez widget 

    4. phone_number - numer telefonu, z którym koszyk został powiązany 

    5. browser - obiekt przekazujący informacje czy przeglądarka została dodana do zaufanych 

      1. browser_trusted - flaga informująca, czy przeglądarka została dodana do zaufanych 

      2. browser_id - identyfikatora przeglądarki zaufanej, nadany przez InPost Pay 

    6. masked_phone_number - numer maskowany 

    7. name - imię klienta 

    8. surname - nazwisko klienta 

  6. Backend Merchanta po otrzymaniu POST/v1/izi/basket/{basket_id}/confirmation potwierdzającego powiązanie koszyka z sukcesem, w response przesyła do Inpost Pay Basket Details klienta (szczegóły koszyka, na które składają się dane obligatoryjne : summary, delivery, products, consents oraz opcjonalne promo_codes, related_products). 

  7. Podczas procesu wiązania koszyka, widget rozpoczyna nasłuchiwanie backendu Merchanta (z wykorzystaniem looping lub websocket) czy backend merchant otrzymał informacje o powiązaniu koszyka (POST/v1/izi/basket/{basket_id}/confirmation). W przypadku otrzymania informacji, widget prezentuje klientowi powiadomienie o udanym powiązaniu i dokończeniu płatności za zakupy w aplikacji InPost Pay oraz zapisuje browser_id w local storage przeglądarki. 

  8. Widget po uzyskaniu informacji, że koszyk jest powiązany, rozpoczyna nasłuchiwać backend Merchanta (z wykorzystaniem looping lub websocket) czy nastąpiła realizacja zamówienia za koszyk. W przypadku otrzymania informacji o realizacji, widget prezentuje klientowi ekran z podziękowaniami za finalizację zamówienia. 

Image Removed

Image Added

Poniżej znajduje się filmik, na którym został omówiony diagram:

View file
nameUC3.7z


UC.04 Synchronizacja koszyka oraz zamówienia 

Synchronizacja koszyka inicjalizowana na stronie sklepu Merchanta [1-7]: 

  1. Merchant w przypadku, gdy: 

    1. nastąpiła aktualizacja koszyka powiązanego lub 

    2. klient utworzy nowy koszyk, który chce opłacić w InPost Pay w przeglądarce zaufanej

powinien wywołać metodę iziCanBeBound, która określa czy produkt może zostać dodany do koszyka i w przypadku otrzymania odpowiedzi twierdzącej uruchamia iziAddToCart, która odpowiada za dodania produktu do koszyka i wywołujePUT/v1/izi/basket/{basket_id} (w request przekazywany jest cały koszyk, dane obligatoryjne: summary, delivery, products, consents oraz opcjonalne promo_codes, related_products) do aplikacji InPost Pay w celu aktualizacji lub utworzenia koszyka.  2.

  1. Inpost Pay po otrzymaniu requestu PUT/v1/izi/basket/{basket_id}, aktualizuje istniejący koszyk lub wiąże go z numerem telefonu przypisanym do przeglądarki zaufanej. Następnie zwraca informację potwierdzającą zakończenie operacji sukcesem (response 200) i wywołuje inpost-update-count czyli event, który pozwala nam na zaktualizowanie liczby produktów na przycisku.

Synchronizacja koszyka inicjalizowana przez InPost Pay [8-11]: 

  1. Klient w aplikacji InPost Pay będzie miał możliwość aktualizacji koszyka w zakresie: 

    1. zmiany ilości produktu w koszyku (quantity_event_data

    2. dodania/usunięcia kodu promocyjnego (promo_codes_event_data

    3. dodania produktu sugerowanego do koszyka (related_products_event_data

  2. W przypadku, gdy użytkownik wykona jedną z powyższych modyfikacji na koszyku, InPost Pay poprzez metodę POST/v1/izi/basket/{basket_id}/event poinformuje Merchanta w formie eventu o wystąpieniu określonego zdarzenia. 

  3. Merchant po otrzymaniu eventu aktualizującego koszyk klienta, powinien w response odesłać cały zaktualizowany koszyk (dane obligatoryjne: summary, delivery, products, consents oraz opcjonalne promo_codes, related_products

Synchronizacja zamówienia inicjalizowana na stronie sklepu Merchanta [12-13]: 

  1. Merchant w przypadku, gdy: 

    1. zmienił status zamówienia lub opis statusu zamówienia prezentowanego w sklepie 

    2. nadał numer referencyjny przesyłki 

powinien wywołać metodę POST/v1/izi/order/{order_id}/event do aplikacji InPost Pay w celu aktualizacji danych na zamówieniu. 

2. InPost Pay po otrzymaniu requestu POST/v1/izi/order/{order_id}/event aktualizuje zamówienie i zwraca potwierdzenie zakończenia operacji sukcesem (response 200) 

Synchronizacja zamówienia inicjalizowana przez InPost Pay [14-15]: 

  1. InPost Pay w przypadku, gdy klient: 

    1. opłacił zamówienie lub

    2. odrzucił zamówienie przed opłaceniem 

poinformuje Merchanta o wystąpieniu zdarzenia, z wykorzystaniem metody z POST/v1/izi/order/{order_id}/event

2. Merchant po otrzymaniu requestu POST/v1/izi/order/{order_id}/event zwraca potwierdzenie otrzymania informacji (response 200) Image Removed

Image Added

Poniżej znajduje się filmik na którym został omówiony diagram:

View file
nameUC4.7z


UC.05 Realizacja zamówienia 

Utworzenie zamówienia w aplikacji InPost Pay [1-8]: 

  1. Klient przechodzi na koszyk w aplikacji InPost Pay, uzupełnia wymagane dane do zamówienia (forma i adres dostawy, dane do faktury), wybiera formę płatności i inicjuje utworzenie zamówienia oraz proces płatności poprzez przycisk “Kupuję i Płacę”. 

  2. InPost Pay po rozpoczęciu procesu zakupu przez klienta, pobiera od Merchanta aktualny koszyk (z wykorzystaniem metody GET/v1/izi/basket/{basket_id}) i weryfikuje, czy zawartość koszyka przechowywana w InPost Pay jest zgodna z koszykiem przekazanym przez Merchanta (weryfikacja przy pomocy wyliczania hash). 

    1. Jeśli koszyk w aplikacji InPost Pay jest nieaktualny, prezentowany jest klientowi odpowiedni komunikat - koniec procesu utworzenia zamówienia na nieaktualnym koszyku. 

    2. Jeśli koszyk w aplikacji InPost Pay jest aktualny to następuje wywołanie metody POST/v1/izi/order do Merchanta w celu utworzenia zamówienia (dane przekazywane do utworzenia zamówienia: obligatoryjnie: order_details, account_info, delivery, consents, fakultatywnie: invoice_details

  3. Merchant w response POST/v1/izi/order po prawidłowym utworzeniu zamówienia przekazuje do InPost Pay dane: 

    1. order_details - szczegóły zamówienia (razem z nadanym order_id oraz pos_id

    2. account_info - dane o kliencie 

    3. invoice_details - dane do faktury 

    4. delivery - dane o formie dostawy zamówienia 

    5. products - lista produktów 

    6. consents - zdefiniowane zgody klienta 

Opłacenie zamówienia w aplikacji InPost Pay [9-19]: 

  1. InPost Pay po otrzymaniu informacji o utworzeniu zamówienia, nadaje order_status = ORDER_PROCESSING i payment_status = UNPAID oraz rozpoczyna proces płatności, którym kolejno wraz etapami wykonania płatności przez klienta nadaje i zapisuje dane: 

    1. payment_status = STARTED - rozpoczęcie płatności przez klienta w aplikacji InPost oraz wygenerowanie i zapis danych referencyjnych płatności 

    2. payment_status = PENDING - płatność wykonana przez klienta w aplikacji InPost i oczekuje na wykonanie w bramce płatniczej 

    3. payment_status = AUTHORIZED - płatność zrealizowana z sukcesem w bramce płatniczej i zapis danych płatności w szczegółach zamówienia. 

  2. Po wykonaniu płatności z sukcesem, prezentowana jest klientowi w aplikacji InPost informacja o pomyślnym opłaceniu zamówienia oraz InPost Pay wywołuje metodę POST/v1/izi/order/{order_id}/event w celu poinformowania Merchanta o opłaceniu zamówienia. 

  3. Widget dla powiązanego koszyka nasłuchuje backend Merchanta (z wykorzystaniem looping lub websocket), czy nastąpiła realizacja zamówienia. W przypadku otrzymania informacji o realizacji, widget prezentuje klientowi ekran z podziękowaniem za finalizację zamówienia. 

Poniżej znajduje się filmik, na którym został omówiony diagram:

View file
nameUC5.7z