- Created by Michał Machowski, last modified by Joanna Wołosz on Oct 17, 2023
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 19 Next »
UC.01 Koszyk powiązany z InPost Pay
Weryfikacja powiązania koszyka z InPost Pay [1-11]:
Klient przechodzi na stronę Merchanta.
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.InPost Pay zwraca informacje, że koszyk jest powiązany (
basket_linked=true
) oraz przeglądarka jest zaufana (browser_trusted=true
)Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja : “Zamów i zapłać. Twoje produkty czekają w aplikacji InPost!”.
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]:
Klient naciska widget “Zamów i zapłać z InPost Pay”
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.
Klient wybiera “Połącz te zakupy z innym numerem telefonu”.
Widget prezentuje popup “Czy na pewno chcesz powiązać te zakupy z numerem telefonu innym niż..”.
Klient potwierdza powiązanie z innym numerem telefonu.
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.InPost Pay usuwa powiązanie koszyka z numerem telefonu oraz przekazuje informacje do backendu Merchanta o poprawnym wykonaniu zadania.
Kolejnym etapem jest wywołanie metody
DELETE/v1/izi/browser/{browser_id}/binding
do InPost Pay.InPost Pay usuwa powiązanie przeglądarki z numerem telefonu oraz przekazuje informacje do backendu Merchanta o poprawnym wykonaniu zadania.
Merchant przekazuje informacje do widget, który następnie prezentuje klientowi ekran z wiązaniem koszyka z wykorzystaniem zaktualizowanego/zmienionego numeru telefonu.
Na tej stronie
UC.02 Wiązanie koszyka z InPost Pay z wykorzystaniem qrCode
Weryfikacja powiązania koszyka z InPost Pay [1-6]:
Klient przechodzi na stronę Merchanta
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 PayInPost Pay zwraca informacje, że koszyk nie jest powiązany (
basket_linked=false
) oraz przeglądarka nie jest zaufana (browser_trusted=false
)Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja : “Utwórz koszyk z InPost Pay”
Wywoływana jest metoda
iziCanBeBound
, która określa czy produkt może zostać dodany do koszyka.
Wiązanie z wykorzystaniem qrCode [7-30]:
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.
Widget wywołuje metodę
iziGetPayData
, która pobiera dane potrzebne do parowania koszyków i w której zawiera się metodaiziGetBrowserData
zwracająca dane przeglądarki które są niezbędne do pobrania qrCode do backendu Merchanta, który z wykorzystaniem metodyPOST/v1/izi/basket/{basket_id}/binding
pobiera qrCode od InPost Pay. Merchant w request przekazuje dane:basket_id
- unikalny id koszykabinding_method = DEEP_LINK
binding_place
- miejsce, w którym nastąpiło wiązanie koszykabrowser
- obiekt z informacji o szczegółach przeglądarki, z której następuje wiązanie
InPost Pay generuje qrCode/deep link, który następnie poprzez backend Merchanta jest przekazywany do widgetu, w celu zaprezentowania klientowi.
Klient inicjuje proces wiązania przy pomocy:
aplikacji mobilnej InPost - przy pomocy której skanuje qrCode, lub
deep linka, który uruchamia funkcję
iziMobileLink
, która powoduje przekierowanie do dokończenia procesu w aplikacji InPost Pay
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).
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:basket_id
- unikalny identyfikator koszyka nadany przez merchantastatus
- status wiązania [SUCCESS
;REJECT
]inpost_basket_id
- unikalny identyfikator koszyka nadany przez InPost Pay - dana wykorzystywana tylko przez widgetphone_number
- numer telefonu, z którym koszyk został powiązanybrowser
- obiekt przekazujący informacje czy przeglądarka została dodana do zaufanychbrowser_trusted
- flaga informująca, czy przeglądarka została dodana do zaufanychbrowser_id
- identyfikatora przeglądarki zaufanej, nadany przez InPost Pay
masked_phone_number
- numer maskowanyname
- imię klientasurname
- nazwisko klienta
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 opcjonalnepromo_codes
,related_products
)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 zapisujebrowser_id
w local storage przeglądarki.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.
UC.03 Wiązanie koszyka z InPost Pay z wykorzystaniem numeru telefonu
Weryfikacja powiązania koszyka z InPost Pay [1-6]:
Klient przechodzi na stronę Merchanta.
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.InPost Pay zwraca informacje, że koszyk nie jest powiązany (
basket_linked=false
) oraz przeglądarka nie jest zaufana (browser_trusted=false
).Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja : “Utwórz koszyk z InPost Pay”.
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]:
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.
Widget wywołuje metodę
iziGetPayData
, która pobiera dane potrzebne do parowania koszyków i w której zawiera się metodaiziGetBrowserData
zwracająca dane przeglądarki do backendu Merchanta, który z wykorzystaniem metodyPOST/v1/izi/basket/{basket_id}/binding
przekazuje numer telefonu do InPost Pay. Merchant w request przekazuje dane:basket_id
- unikalny id koszykabinding_method
=PHONE
phone_number
- numer telefonu wprowadzony przez klientabinding_place
- miejsce, gdzie nastąpiło wiązanie koszykabrowser
- obiekt składający się z informacji dot. przeglądarki, z której następuje wiązanie
InPost Pay weryfikuje reguły bezpieczeństwa/spam wiązania dla numeru telefonu. W przypadku:
pozytywnej weryfikacji odpowiada response (202) do Merchanta oraz wysyła notyfikacje (push) na urządzenie klienta.
negatywnej weryfikacji proces wiązania koszyka jest kończony (InPost Pay zwraca kod błędu do backendu Merchanta).
Klient poprzez notyfikacje push uruchamia aplikacje InPost, w której:
akceptuje powiązanie koszyka lub
rejestruje się w InPost Pay i akceptuje powiązanie koszyka
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:basket_id
- unikalny identyfikator koszyka nadany przez merchantastatus
- status wiązania [SUCCESS
;REJECT
]inpost_basket_id
- unikalny identyfikator koszyka nadany przez InPost Pay - dana wykorzystywana tylko przez widgetphone_number
- numer telefonu, z którym koszyk został powiązanybrowser
- obiekt przekazujący informacje czy przeglądarka została dodana do zaufanychbrowser_trusted
- flaga informująca, czy przeglądarka została dodana do zaufanychbrowser_id
- identyfikatora przeglądarki zaufanej, nadany przez InPost Pay
masked_phone_number
- numer maskowanyname
- imię klientasurname
- nazwisko klienta
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 opcjonalnepromo_codes
,related_products
).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.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.
UC.04 Synchronizacja koszyka oraz zamówienia
Synchronizacja koszyka inicjalizowana na stronie sklepu Merchanta [1-7]:
Merchant w przypadku, gdy:
nastąpiła aktualizacja koszyka powiązanego lub
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.
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]:
Klient w aplikacji InPost Pay będzie miał możliwość aktualizacji koszyka w zakresie:
zmiany ilości produktu w koszyku (
quantity_event_data
)dodania/usunięcia kodu promocyjnego (
promo_codes_event_data
)dodania produktu sugerowanego do koszyka (
related_products_event_data
)
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.Merchant po otrzymaniu eventu aktualizującego koszyk klienta, powinien w response odesłać cały zaktualizowany koszyk (dane obligatoryjne:
summary
,delivery
,products
,consents
oraz opcjonalnepromo_codes, related_products
)
Synchronizacja zamówienia inicjalizowana na stronie sklepu Merchanta [12-13]:
Merchant w przypadku, gdy:
zmienił status zamówienia lub opis statusu zamówienia prezentowanego w sklepie
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]:
InPost Pay w przypadku, gdy klient:
opłacił zamówienie lub
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)
UC.05 Realizacja zamówienia
Utworzenie zamówienia w aplikacji InPost Pay [1-8]:
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ę”.
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).Jeśli koszyk w aplikacji InPost Pay jest nieaktualny, prezentowany jest klientowi odpowiedni komunikat - koniec procesu utworzenia zamówienia na nieaktualnym koszyku.
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
)
Merchant w response
POST/v1/izi/order
po prawidłowym utworzeniu zamówienia przekazuje do InPost Pay dane:order_details
- szczegóły zamówienia (razem z nadanymorder_id
orazpos_id
)account_info
- dane o kliencieinvoice_details
- dane do fakturydelivery
- dane o formie dostawy zamówieniaproducts
- lista produktówconsents
- zdefiniowane zgody klienta
Opłacenie zamówienia w aplikacji InPost Pay [9-19]:
InPost Pay po otrzymaniu informacji o utworzeniu zamówienia, nadaje
order_status
=ORDER_PROCESSING
ipayment_status
=UNPAID
oraz rozpoczyna proces płatności, którym kolejno wraz etapami wykonania płatności przez klienta nadaje i zapisuje dane:payment_status
=STARTED
- rozpoczęcie płatności przez klienta w aplikacji InPost oraz wygenerowanie i zapis danych referencyjnych płatnościpayment_status
=PENDING
- płatność wykonana przez klienta w aplikacji InPost i oczekuje na wykonanie w bramce płatniczejpayment_status
=AUTHORIZED
- płatność zrealizowana z sukcesem w bramce płatniczej i zapis danych płatności w szczegółach zamówienia.
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.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.
- No labels