Схема взаимодействия магазина, мини-приложения и маркетплейса Инвойсбокс
Мини-приложение работает в одном из двух режимов, и от режима зависит почти всё: кто открывает платёжную страницу, куда возвращается покупатель и в какой момент магазин узнаёт об оплате. Ниже — обе схемы по отдельности.
Мини-приложение как форма основного заказа
Покупатель приходит из Витрины, оформляет покупку в мини-приложении и оплачивает её отдельным счётом.
sequenceDiagram
autonumber
participant Покупатель
participant Витрина
participant Мини-приложение
participant Инвойсбокс
participant Магазин
rect rgba(43, 170, 93, 0.13)
Покупатель->>Витрина: Выбор товара или услуги
Витрина->>Мини-приложение: Инициализация
Покупатель->>Мини-приложение: Оформление заказа
Мини-приложение->>Инвойсбокс: Создание заказа
Инвойсбокс->>Мини-приложение: Ссылка на оплату
Мини-приложение->>Покупатель: Переход на платёжную страницу
Покупатель->>Инвойсбокс: Оплата счёта
Инвойсбокс->>Магазин: Уведомление об оплате
Инвойсбокс->>Мини-приложение: Возврат покупателя
Мини-приложение->>Покупатель: Что оплачено и что дальше
end
- Покупатель ищет товар, услугу или точку продаж в Витрине Инвойсбокс.
- Витрина открывает мини-приложение магазина.
- Покупатель оформляет заказ в мини-приложении.
- Мини-приложение вызывает создание заказа от имени магазина.
- В ответе приходит
paymentUrl— ссылка на платёжную страницу. - Мини-приложение открывает платёжную страницу: методом onDone, если работу можно завершить, или onCheckout, если после оплаты нужно вернуться в мини-приложение. На мобильном устройстве с установленным приложением Инвойсбокс открывается приложение.
- Покупатель подтверждает оплату счёта.
- Инвойсбокс сообщает магазину об оплате.
- Покупатель возвращается в мини-приложение; при
onCheckoutвызывается обработчик onPaymentResult со статусом заказа. - Мини-приложение показывает, что оплачено, и передаёт управление родительскому окну.
Мини-приложение как форма дополнительного заказа
Покупатель уже оплачивает основную покупку на платёжной странице, а мини-приложение продаёт ему дополнительную услугу — трансфер к билету, страховку к поездке, доставку к заказу.
sequenceDiagram
autonumber
participant Покупатель
participant Платёжная страница
participant Мини-приложение
participant Инвойсбокс
participant Магазин
rect rgba(31, 111, 235, 0.12)
Покупатель->>Платёжная страница: Оплата основной покупки
Платёжная страница->>Мини-приложение: Инициализация с идентификатором заказа
Покупатель->>Мини-приложение: Выбор дополнительной услуги
Мини-приложение->>Инвойсбокс: Обновление переданного заказа
Мини-приложение->>Платёжная страница: onDone — управление возвращено
Покупатель->>Инвойсбокс: Оплата счёта целиком
Инвойсбокс->>Магазин: Уведомление об оплате
end
- Покупатель открывает платёжную страницу основной покупки — например, авиабилета.
- Платёжная страница открывает мини-приложение и передаёт ему идентификатор текущего заказа.
- Покупатель выбирает дополнительную услугу.
- Мини-приложение обновляет переданный заказ — своего счёта здесь не появляется, услуга добавляется в тот, который покупатель уже оплачивает.
- Мини-приложение сообщает родительскому окну об успехе методом onDone и закрывается.
- Покупатель оплачивает счёт целиком — вместе с дополнительной услугой.
- Инвойсбокс сообщает магазину об оплате.
Примечание
В обоих режимах мини-приложение сообщает родительскому окну и о неудачах: об ошибке — onError, о собственной недоступности — onUnavailable. Молчание мини-приложения родительское окно трактовать не умеет.