Wiązanie koszyka z InPost Pay z wykorzystaniem qrCode
Klient przechodzi na stronę Merchanta.
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 weryfikuje w backend Merchanta, czy wybrany produkt może być dodany do koszyka (iziCanBeBound).
Backend Merchanta przy pierwszej wywołanej metodzie przez Widget wywołuje metodę do InPost Pay 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.
InPost Pay zwraca informacje, że koszyk nie jest powiązany (
basket_linked=false
) oraz przeglądarka nie jest zaufana (browser_trusted=false
).Widget dodaje produkt do koszyka w sklepie Merchanta (iziAddToCart).
Widegt prezentuje ekran defaultowy do wiązania koszyka z wykorzystaniem numeru telefonu.
Klient wybiera „Zrób to z kodem QR”.
Widget wywołuje metodę iziGetPayData, która pobiera dane potrzebne do parowania do backendu Merchanta, który z wykorzystaniem metody POST/v1/izi/basket/{basket_id}/binding pobiera qrCode od InPost Pay.
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).
InPost Pay przekazuje informacje do Merchanta o powiązaniu koszyka z wykorzystaniem metody POST/v1/izi/basket/{basket_id}/confirmation.
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.Aplikacja InPost Pay prezentuje klientowi powiązany koszyk.
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