Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja:
“Utwórz koszyk z InPost Pay” - widget osadzony na karcie produktu
“Kup z InPost Pay” - widget osadzony w koszyku
Klient przyciska widget “Utwórz koszyk z InPost Pay” lub “Kup z InPost Pay”.
Widget wywołuje metodę do backendu Merchanta w celu weryfikacji, 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), którą backend Merchanta przekazuje do Widget.
Widget weryfikuje w backend Merchanta, czy wybrany produkt może być dodany do koszyka (iziCanBeBound).
Widget dodaje produkt do koszka w sklepie Merchanta (iziAddToCart).
Widegt prezentuje ekran defaultowy do wiązania koszyka z wykorzystaniem numeru telefonu.
Widget rozpoczyna nasłuchiwanie backendu Merchanta (z wykorzystaniem looping lub websocket) czy backend Merchant otrzymał informacje o powiązaniu koszyka (iziGetIsBound).
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 powoduje przekierowanie do dokończenia procesu w aplikacji InPost Pay (deep link jest wykorzystywany tylko na urządzeniach mobilnych).
Po zainicjowaniu procesu w zależności, czy klient ma lub nie ma podpisanej umowy w aplikacji InPost Pay, przechodzi w odpowiednie flow (automatyczne wiązanie koszyka lub onboarding do InPost Pay).
Backend Merchanta po otrzymaniu POST/v1/izi/basket/{basket_id}/confirmation potwierdzającego powiązanie koszyka z sukcesem przekazuje w response szczegóły koszyka do InPost Pay.
InPost Pay wiąże koszyk (id koszyka nadane przez Merchanta) z numerem telefonu.
Backend Merchanta przekazuje informacje o powiązaniu koszyka do Widget (response iziGetIsBound).
Widget prezentuje klientowi informacje na widget „Produkty w koszyku InPost Pay” oraz zapisuje browser_id w cookies przeglądarki.
Widget po uzyskaniu informacji, że koszyk jest powiązany, rozpoczyna nasłuchiwać backend Merchanta (z wykorzystaniem iziGetOrderComplete i jednej z metod 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.
Diagram UC.02 Wiązanie koszyka z InPost Pay z wykorzystaniem qrCode