Интеграция для офлайн-магазинов

Примечание

Для офлайн-магазинов стала доступна интеграция готовыми модулями кассовых программ.

План интеграции

  1. Убедитесь, что в помещении, в котором располагается ваш офлайн-магазин, обеспечена стабильная работа мобильного интернета, чтобы клиент мог перейти к оплате.

  2. Подайте заявку в личном кабинете и дождитесь письма об активации тестовой среды.

  3. На бэкенде магазина настройте передачу параметров оплаты с помощью метода /orders:

    Пример параметров
    Параметр Описание
    availablePaymentMethods Доступные клиенту методы оплаты
    cart Свойства корзины товаров, включая код и наименование товаров
    managerId Задает код продавца
    branchId Задает код магазина
  4. Проверьте работу сервиса в тестовой среде:

    1. В верхнем правом углу страницы раздела Настройки включите опцию Тестовая среда.
    2. Заполните поле Callback URL тестовый, если хотите, чтобы Яндекс Пэй присылал уведомления по Merchant API.
    3. Настройте декодирование сообщений.
    4. Проведите тестирование.
  5. После получения уведомления о подключении сервиса переключите среду с тестовой на боевую:

    1. В разделе Настройки скройте тестовые настройки, выключив опцию Тестовая среда.
    2. Заполните поле Callback URL.
    3. Выпустите API-ключ.
  6. Не забудьте про фискализацию. Вы готовы принимать оплату!

Способы и механики оплаты для офлайн-магазинов

Проведение оплаты в офлайн-магазине с помощью Яндекс Пэй возможно двумя методами:

  • Прямой QR — оплата, при которой пользователь сканирует QR-код, который размещен на поверхностях продавца: мониторах, экранах телефонов менеджеров, чеках, ценниках и других носителях.

  • Обратный QR — оплата, при которой продавец сканирует QR-код, сформированный пользователем в приложении Яндекс Пэй.

Оплата покупки включает в себя несколько этапов.

image

  1. Генерация прямого QR-кода.

    1. Пользователь выбирает товары, которые он хочет купить.

    2. Продавец формирует корзину товаров в кассовой программе.

      Когда пользователь готов оплатить товары, продавец выбирает вид оплаты и нажимает кнопку создания заказа.

    3. После нажатия кнопки оплаты на стороне партнера блокируется корзина товаров и создается заказ, который через бэкенд магазина передается в Яндекс Пэй с помощью метода /orders. В ответ возвращается ссылка на форму оплаты Яндекс Пэй для проведения оплаты пользователем.

      Внимание

      В методе /orders необходимо передать код продавца managerId и код магазина branchId, в котором происходит оплата. Также продавец передает способы оплаты (Пэй и/или Сплит), доступные для этого заказа.

    4. На основе полученной ссылки на оплату необходимо сгенерировать QR-код и вывести его на один из носителей, доступных пользователю для сканирования камерой телефона или приложения Яндекс Пэй:

      • экраны и мониторы;
      • чек или распечатка QR-кода.

      Возможно использование стороннего сервиса для создания QR-кода из ссылки. Например, можно использовать сервис QR Code Generator.

  2. Оплата пользователем.

    1. Пользователь сканирует созданный продавцом QR-код через камеру телефона или в приложении Яндекс Пэй:

      • Если у пользователя не установлено приложение Яндекс Пэй, то после перехода по ссылке или сканирования QR-кода процесс оплаты происходит в браузере.
      • Если у пользователя установлено приложение Яндекс Пэй, то после перехода по ссылке или сканирования QR-кода процесс оплаты происходит в приложении.
    2. Пользователь переходит на форму оплаты Яндекс Пэй, которая содержит корзину и сумму к оплате.

    3. Пользователь выбирает способ (оплата сразу с кешбэком или частями в сплит) и нажимает кнопку оплаты:

      • При оплате сразу с кешбэком пользователь выбирает сохраненную в Яндексе банковскую карту или СБП-привязку к счету.

      • При оплате частями пользователь выбирает количество платежей и производит оплату первого платежа со своей сохраненной в Яндексе банковской карты.

  3. Проведение платежа.

    1. Яндекс Пэй проводит платеж, списывая денежные средства с выбранной карты пользователя.

    2. Яндекс Пэй уведомляет бэкенд магазина о статусе платежа через вызов /webhook, если был настроен Callback URL.

      Бэкенд магазина может самостоятельно запросить статус заказа через запрос /orders/{order_id}.

      Статусы оплаты
      • PENDING — оплата еще в процессе, нужно запросить статус платежа позже. В уведомлении этот статус не отправляется.

        Продавец может прервать оплату с помощью метода /orders/{orderId}/rollback в одном из случаев:

        • пользователь отказался от покупки;
        • появилась необходимость отменить покупку;
        • произошло зависание кассовой программы.
      • FAILED — оплата завершилась неудачно. Терминальный неуспешный статус.

      • CAPTURED — оплата успешно совершена, можно печатать чек. Терминальный успешный статус.

    3. Необходимо распечатать чек через кассовую программу. Покупка успешно совершена.

На следующий рабочий день деньги в размере полной стоимости покупки поступят на расчетный счет организации офлайн-магазина.

Схема процесса оплаты

image

Оплата покупки включает в себя несколько этапов.

image

  1. Формирование корзины и заказа в кассовой программе.

    1. Пользователь выбирает товары, которые он хочет купить.

    2. Продавец сканирует товары и формирует корзину товаров в кассовой программе.

  2. Оплата пользователем.

    1. Пользователь в приложении Яндекс Пэй нажимает кнопку Оплатить, после чего формируется QR-код для предоставления продавцу.

    2. Продавец считывает QR-код.

    3. Бэкенд магазина вызывает метод /orders, в котором передаются:

      • номер заказа;
      • способ оплаты (оплата сразу с кешбэком или частями в сплит);
      • корзина товаров;
      • код продавца managerId и код магазина branchId, в котором происходит оплата;
      • токен, считанный из QR-кода.
      Статусы ответа
      • Успешный ответ — переход к ожиданию статуса оплаты.
      • Ошибка — некорректные данные или другие ошибки. В кассовой программе будет выводится сообщение с текстом ошибки.
      • Сервис недоступен или получен таймаут — кассовая программа отображает сообщение о недоступности сервиса.
    4. Пользователь выбирает способ (оплата сразу с кешбэком или частями в сплит) и нажимает кнопку оплаты:

      • При оплате сразу с кешбэком пользователь выбирает сохраненную в Яндексе банковскую карту или СБП-привязку к счету.

      • При оплате частями пользователь выбирает количество платежей и производит оплату первого платежа со своей сохраненной в Яндексе банковской карты.

  3. Проведение платежа.

    1. Яндекс Пэй проводит платеж, списывая денежные средства с выбранной карты пользователя.

    2. Яндекс Пэй уведомляет бэкенд магазина о статусе платежа через вызов /webhook, если был настроен Callback URL.

      Бэкенд магазина может самостоятельно запросить статус заказа через запрос /orders/{order_id}.

      Статусы оплаты
      • PENDING — оплата еще в процессе, требуется запросить статус оплаты позже. В уведомлении этот статус не отправляется.

        Продавец может прервать оплату с помощью метода /orders/{orderId}/rollback в одном из случаев:

        • пользователь отказался от покупки;
        • появилась необходимость отменить покупку;
        • произошло зависание кассовой программы.
      • FAILED — оплата завершилась неудачно. Терминальный неуспешный статус.

      • CAPTURED — оплата успешно совершена, можно печатать чек. Терминальный успешный статус.

    3. Необходимо распечатать чек через кассовую программу. Покупка успешно совершена.

На следующий рабочий день деньги в размере полной стоимости покупки поступят на расчетный счет организации офлайн-магазина.

Схема процесса оплаты

image

Проведение возврата

Провести возврат можно двумя способами:

  • в личном кабинете в разделе Платежи;
  • при помощи запросов к API.