Интеграция для офлайн-магазинов
Примечание
Для офлайн-магазинов стала доступна интеграция готовыми модулями кассовых программ.
План интеграции
-
Убедитесь, что в помещении, в котором располагается ваш офлайн-магазин, обеспечена стабильная работа мобильного интернета.
-
Подайте заявку в личном кабинете и дождитесь письма об активации тестовой среды,
-
На бэкенде магазина настройте передачу параметров оплаты с помощью метода /orders:
Пример параметровПараметр Описание availablePaymentMethods
Доступные клиенту методы оплаты cart
Свойства корзины товаров, включая код и наименование товаров managerId
Задаёт код продавца branchId
Задаёт код магазина -
В разделе Настройки личного кабинета заполните поле Callback URL, если хотите, чтобы Яндекс Пэй присылал уведомления по Merchant API, а также настройте декодирование сообщений,
-
Протестируйте работу сервиса,
-
Переключите среду с тестовой на боевую,
-
Не забудьте про фискализацию. Вы готовы принимать оплату!
Способы и механики оплаты для офлайн-магазинов
Проведение оплаты в офлайн-магазине с помощью Яндекс Пэй возможно двумя методами:
-
Прямой QR — оплата, при которой пользователь сканирует QR-код, который размещен на поверхностях продавца: мониторах, экранах телефонов менеджеров, чеках, ценниках и других носителях.
-
Обратный QR — оплата, при которой продавец сканирует QR-код, сформированный пользователем в приложении Яндекс Пэй.
Оплата покупки включает в себя несколько этапов.
-
Генерация прямого QR-кода.
-
Пользователь выбирает товары, которые он хочет купить.
-
Продавец формирует корзину товаров в кассовой программе.
Когда пользователь готов оплатить товары, продавец выбирает вид оплаты и нажимает кнопку создания заказа.
-
После нажатия кнопки оплаты на стороне партнера блокируется корзина товаров и создается заказ, который через бэкенд магазина передается в Яндекс Пэй с помощью метода /orders. В ответ возвращается ссылка на форму оплаты Яндекс Пэй для проведения оплаты пользователем.
Внимание
В методе /orders необходимо передать код продавца
managerId
и код магазинаbranchId
, в котором происходит оплата. Также продавец передает способы оплаты (Пэй и/или Сплит), доступные для этого заказа. -
На основе полученной ссылки на оплату необходимо сгенерировать QR-код и вывести его на один из носителей, доступных пользователю для сканирования камерой телефона или приложения Яндекс Пэй:
-
Экраны и мониторы.
-
Чек или распечатка QR-кода.
-
Ценник на товар.
Возможно использование стороннего сервиса для создания QR-кода из ссылки. Например, можно использовать сервис QR Code Generator.
-
-
-
Оплата пользователем.
-
Пользователь сканирует созданный продавцом QR-код через камеру телефона или в приложении Яндекс Пэй:
-
Если у пользователя не установлено приложение Яндекс Пэй, то после перехода по ссылке или сканирования QR-кода процесс оплаты происходит в браузере.
-
Если у пользователя установлено приложение Яндекс Пэй, то после перехода по ссылке или сканирования QR-кода процесс оплаты происходит в приложении.
-
-
Пользователь переходит на форму оплаты Яндекс Пэй, которая содержит корзину и сумму к оплате.
-
Пользователь выбирает способ (оплата сразу с кешбэком или частями в сплит) и нажимает кнопку оплаты.
-
При оплате сразу с кешбэком пользователь выбирает сохраненную в Яндексе банковскую карту или СБП-привязку к счету.
-
При оплате частями пользователь выбирает количество платежей и производит оплату первого платежа со своей сохраненной в Яндексе банковской карты.
-
-
-
Проведение платежа.
-
Яндекс Пэй проводит платеж, списывая денежные средства с выбранной карты пользователя.
-
Яндекс Пэй уведомляет бэкенд магазина о статусе платежа через вызов /webhook, если был настроен Callback URL.
Бэкенд магазина может самостоятельно запросить статус заказа через запрос /orders/{order_id}.
Статусы оплаты-
PENDING
— оплата еще в процессе, нужно запросить статус платежа позже. В уведомлении этот статус не отправляется.Продавец может прервать оплату с помощью метода /orders/{orderId}/rollback в одном из случаев:
-
Пользователь отказался от покупки.
-
Появилась необходимость отменить покупку.
-
Произошло зависание кассовой программы.
-
-
FAILED
— оплата завершилась неудачно. Терминальный неуспешный статус. -
CAPTURED
— оплата успешно совершена, можно печатать чек. Терминальный успешный статус.
-
-
Необходимо распечатать чек через кассовую программу. Покупка успешно совершена.
-
На следующий рабочий день деньги в размере полной стоимости покупки поступят на расчетный счет организации офлайн-магазина.
Оплата покупки включает в себя несколько этапов.
-
Формирование корзины и заказа в кассовой программе.
-
Пользователь выбирает товары, которые он хочет купить.
-
Продавец сканирует товары и формирует корзину товаров в кассовой программе.
-
-
Оплата пользователем.
-
Пользователь в приложении Яндекс Пэй нажимает кнопку Оплатить, после чего формируется QR-код для предоставления продавцу.
-
Продавец считывает QR-код.
-
Бэкенд магазина вызывает метод /orders, в котором передаются:
-
Номер заказа.
-
Способ оплаты (оплата сразу с кешбэком или частями в сплит).
-
Корзина товаров.
-
Код продавца
managerId
и код магазинаbranchId
, в котором происходит оплата. -
Токен, считанный из QR-кода.
Статусы ответа-
Успешный ответ — переход к ожиданию статуса оплаты.
-
Ошибка — некорректные данные или другие ошибки. В кассовой программе будет выводится сообщение с текстом ошибки.
-
Сервис недоступен или получен таймаут — кассовая программа отображает сообщение о недоступности сервиса.
-
-
Пользователь выбирает способ (оплата сразу с кешбэком или частями в сплит) и нажимает кнопку оплаты.
-
При оплате сразу с кешбэком пользователь выбирает сохраненную в Яндексе банковскую карту или СБП-привязку к счету.
-
При оплате частями пользователь выбирает количество платежей и производит оплату первого платежа со своей сохраненной в Яндексе банковской карты.
-
-
-
Проведение платежа.
-
Яндекс Пэй проводит платеж, списывая денежные средства с выбранной карты пользователя.
-
Яндекс Пэй уведомляет бэкенд магазина о статусе платежа через вызов /webhook, если был настроен Callback URL.
Бэкенд магазина может самостоятельно запросить статус заказа через запрос /orders/{order_id}.
Статусы оплаты-
PENDING
— оплата еще в процессе, требуется запросить статус оплаты позже. В уведомлении этот статус не отправляется.Продавец может прервать оплату с помощью метода /orders/{orderId}/rollback в одном из случаев:
-
Пользователь отказался от покупки.
-
Появилась необходимость отменить покупку.
-
Произошло зависание кассовой программы.
-
-
FAILED
— оплата завершилась неудачно. Терминальный неуспешный статус. -
CAPTURED
— оплата успешно совершена, можно печатать чек. Терминальный успешный статус.
-
-
Необходимо распечатать чек через кассовую программу. Покупка успешно совершена.
-
На следующий рабочий день деньги в размере полной стоимости покупки поступят на расчетный счет организации офлайн-магазина.
Проведение возврата
Проведение возврата возможно двумя способами: