Wiązanie koszyka z InPost Pay z wykorzystaniem qrCode

 

  1. Klient przechodzi na stronę Merchanta.

  2. Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja:

    1. Utwórz koszyk z InPost Pay” - widget osadzony na karcie produktu

      image-20240102-095243.png
    2. Kup z InPost Pay” - widget osadzony w koszyku

      image-20240103-102532.png
  3. Klient przyciska widget “Utwórz koszyk z InPost Pay” lub “Kup z InPost Pay”.

  4. Widget weryfikuje w backend Merchanta, czy wybrany produkt może być dodany do koszyka (iziCanBeBound).

  5. 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.

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

  7. Widget dodaje produkt do koszyka w sklepie Merchanta (iziAddToCart).

  8. Widegt prezentuje ekran defaultowy do wiązania koszyka z wykorzystaniem numeru telefonu.

  9. Klient wybiera „Zrób to z kodem QR”.

  10. 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.

  11. Widget rozpoczyna nasłuchiwanie backendu Merchanta (z wykorzystaniem looping lub websocket) czy backend Merchant otrzymał informacje o powiązaniu koszyka (iziGetIsBound).

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

  13. Klient inicjuje proces wiązania przy pomocy: 

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

    2. deep linka, który powoduje przekierowanie do dokończenia procesu w aplikacji InPost Pay (deep link jest wykorzystywany tylko na urządzeniach mobilnych).

  14. 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). 

  15. InPost Pay przekazuje informacje do Merchanta o powiązaniu koszyka z wykorzystaniem metody POST/v1/izi/basket/{basket_id}/confirmation.

  16. 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.

  17. InPost Pay wiąże koszyk (id koszyka nadane przez Merchanta) z numerem telefonu.

  18. Backend Merchanta przekazuje informacje o powiązaniu koszyka do Widget (response iziGetIsBound).

  19. Widget prezentuje klientowi informacje na widget „Produkty w koszyku InPost Pay” oraz zapisuje browser_id w cookies przeglądarki.

  20. Aplikacja InPost Pay prezentuje klientowi powiązany koszyk.

  21. 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