Тестирование

Перед приемом платежей пользователей рекомендуем протестировать сервис:

Совет

Для знакомства с платежными механиками API Яндекс Пэй используйте готовую Postman-коллекцию.

Скачать коллекцию

Тестирование сервиса Яндекс Пэй и Сплит

Чтобы начать тестирование сервиса Яндекс Пэй и Сплит, необходимо переключить настройки на тестовый контур. Шаги тестирования отличаются в зависимости от вида интеграции:

Внимание

Тестирование проводится в тестовом окружении (Sandbox). В данном случае запросы к API сервиса Яндекс Пэй отправляются на https://sandbox.pay.yandex.ru.

  1. В личном кабинете откройте раздел Настройки.

  2. Включите опцию Тестовые данные.

  3. Задайте тестовое значение Callback URL.

  4. Проверьте значение ключа Ключ Merchant API — в тестовой среде оно должно быть равно значению Merchant ID.

  5. Установите тестовое окружение в параметрах SDK (Web, Android, iOS).

  6. Установите элементы фронтенда SDK и проведите тестовый платеж. Доступные сценарии оплаты см. в разделе Эмуляция результатов оплаты.

    Примечание

    Для авторизации используется реальный аккаунт, но банковская карта для оплаты будет предложена из списка тестовых карт.

    Убедитесь, что платеж тестовый: в адресе ссылки на оплату будет префикс sandbox. Например: https://sandbox.pay.ya.ru/o/nxPUqR.

  7. Получите SMS с кодом авторизации на номер телефона, привязанный к аккаунту покупателя.

  8. Введите код из SMS. Произойдет тестовая оплата покупки и отобразится страница успешной оплаты.

    Примечание

    На данном этапе в боевых условиях происходит эквайринг в банке выбранной карты. В тестовой среде эквайринг имитируется программным способом.

  9. Выполните частичный возврат одного товара или части стоимости товара из тестового заказа.

  10. Выполните полный возврат товара из тестового заказа.

Внимание

Тестирование проводится в тестовом окружении (Sandbox). В данном случае запросы к API сервиса Яндекс Пэй отправляются на https://sandbox.pay.yandex.ru.

  1. В личном кабинете откройте раздел Настройки.

  2. Включите опцию Тестовые данные.

  3. Задайте тестовое значение Callback URL.

  4. Проверьте значение ключа Ключ Merchant API — в тестовой среде оно должно быть равно значению Merchant ID.

  5. Выберите способ оплаты и проведите тестовый платеж. Доступные сценарии оплаты см. в разделе Эмуляция результатов оплаты.

    Примечание

    Для авторизации используется реальный аккаунт, но банковская карта для оплаты будет предложена из списка тестовых карт.

    Убедитесь, что платеж тестовый: в адресе ссылки на оплату будет префикс sandbox. Например: https://sandbox.pay.ya.ru/o/nxPUqR.

  6. Получите SMS с кодом авторизации на номер телефона, привязанный к аккаунту покупателя.

  7. Введите код из SMS. Произойдет тестовая оплата покупки и отобразится страница успешной оплаты.

    Примечание

    На данном этапе в боевых условиях происходит эквайринг в банке выбранной карты. В тестовой среде эквайринг имитируется программным способом.

  8. Выполните частичный возврат одного товара или части стоимости товара из тестового заказа.

  9. Выполните полный возврат товара из тестового заказа.

Внимание

Тестирование проводится в тестовом окружении (Sandbox). В данном случае запросы к API сервиса Яндекс Пэй отправляются на https://sandbox.pay.yandex.ru.

Тестирование прямого QR

Для тестирования прямого QR:

  1. Создайте тестовый заказ с помощью запроса https://sandbox.pay.yandex.ru/api/merchant/v1/orders и получите ссылку на оплату, которая есть в ответе на запрос.

  2. Преобразуйте полученную ссылку на оплату в QR-код. Для этого можно использовать сторонний сервис, например QR Code Generator.

  3. Распечатайте QR-код или выведите его на экран кассовой программы.

  4. Считайте с QR-кода ссылку на оплату с помощью камеры смартфона или приложения Яндекс Пэй и перейдите к форме оплаты:

    • Если приложение Яндекс Пэй не установлено, то после сканирования QR-кода процесс оплаты происходит в браузере. При этом может потребоваться авторизация в Яндекс ID.
    • Если приложение Яндекс Пэй установлено, то после сканирования QR-кода процесс оплаты происходит в приложении.
  5. В форме оплаты выберите любой способ оплаты (оплата сразу с кешбэком или частями в Сплит). Доступные сценарии оплаты см. в разделе Эмуляция результатов оплаты.

    Примечание

    Для авторизации используется реальный аккаунт, но банковская карта для оплаты будет предложена из списка тестовых карт.

    Убедитесь, что платеж тестовый: в адресе ссылки на оплату будет префикс sandbox. Например: https://sandbox.pay.ya.ru/o/nxPUqR.

  6. Получите SMS с кодом авторизации на номер телефона, привязанный к аккаунту покупателя.

  7. Введите код из SMS. Произойдет тестовая оплата покупки и отобразится страница успешной оплаты.

    Примечание

    На данном этапе в боевых условиях происходит эквайринг в банке выбранной карты. В тестовой среде эквайринг имитируется программным способом.

  8. После успешной оплаты в кассовой программе должен сформироваться чек.

  9. Выполните частичный возврат одного товара или части стоимости товара из тестового заказа.

  10. Выполните полный возврат товара из тестового заказа.

Тестирование обратного QR

Для тестирования обратного QR:

  1. Авторизуйтесь в Яндекс ID под логином пользователя.

  2. Откройте страницу с обратным QR-кодом.

  3. Считайте QR-код кассовым сканером и через бэкенд магазина создайте заказ с помощью запроса https://sandbox.pay.yandex.ru/api/merchant/v1/orders.

    После создания заказа страница с QR-кодом автоматически обновится и на ней отобразится форма оплаты Яндекс Пэй.

  4. В форме оплаты выберите любой способ оплаты (оплата сразу с кешбэком или частями в Сплит). Банковская карта для оплаты выбирается из списка тестовых карт.

  5. Оплатите тестовый заказ и проверьте, что на бэкенд магазина пришло уведомление об оплате. Доступные сценарии оплаты см. в разделе Эмуляция результатов оплаты.

  6. После успешной оплаты в кассовой программе должен сформироваться чек.

Модуль «1С-Битрикс»

Чтобы проверить обработку платежей с новой платежной системы включите тестовый режим:

  1. В административной панели 1С-Битрикс перейдите к редактированию платежной системы Яндекс Пэй (Магазин → Настройки → Платежные системы → Яндекс Пэй → Изменить).
  2. В параметрах платежной системы включите опцию Режим песочницы.
  3. В личном кабинете Яндекс Пэй включите опцию Тестовые данные, нажмите Добавить Callback URL Тестовый и укажите Callback URL для режима отладки, который указан в административной панели 1С-Битрикс в параметрах платежной системы.
  4. Создайте заказ в публичной части сайта, выбрав платежную систему Яндекс Пэй, и оплатите одной из тестовых карт. Доступные сценарии оплаты см. в разделе Эмуляция результатов оплаты.
  5. Проверить работу возврата можно в форме просмотра заказа (Магазин → Яндекс Пэй) административной панели 1С-Битрикс.

Модуль «1С:Фитнес клуб»

  1. В 1С:Фитнес клуб включите опцию Тестовый режим для начала тестирования.

  2. Выполните несколько платежей для проверки корректности настроек и работы вашей интеграции. Доступные сценарии оплаты см. в разделе Эмуляция результатов оплаты.

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

  4. Отключите опцию Тестовый режим для начала обработки реальных платежей.

  5. После завершения проверок отправьте сообщение на адрес электронной почты, с которого пришло подтверждение активации тестовой версии продукта: «Мы провели тестовые платежи: Оплату и возврат. Все прошло успешно. Просим вас активировать полную версию Яндекс Пэй».

Эмуляция результатов оплаты

В процессе тестирования с помощью эмулятора оплаты вы можете проверить различные сценарии обработки платежа.

Можно эмулировать следующие результаты:

Результат

Как воспроизвести

Карта не подходит

В форме оплаты выберите карту VISA — в результате отобразится ошибка «Карта не подходит», можно выбрать другую карту для оплаты.

Оплата не прошла

  1. Создайте заказ на сумму 10 001 руб.
  2. В форме оплаты выберите карту МИР и оплатите заказ. В результате отобразится ошибка «Оплата не прошла», статус заказа изменится на FAILED.

Недостаточно средств

  1. Создайте заказ на сумму 10 002 руб.
  2. В форме оплаты выберите карту МИР и оплатите заказ. В результате отобразится ошибка «Недостаточно средств», можно выбрать другую карту для оплаты.

Оплата прошла успешно

  1. Создайте заказ на любую сумму, кроме 10 001 и 10 002 руб.
  2. В форме оплаты выберите карту МИР и оплатите заказ. В результате отобразится сообщение «Оплата прошла», статус заказа изменится на CAPTURED.

Тестирование сервиса QR‑код от Яндекс Пэй

Чтобы протестировать сервис QR‑код от Яндекс Пэй:

Важно

Протестировать прием платежей в кассовом ПО можно, если вы подключили QR‑код от Яндекс Пэй в настройках кассового ПО.

  1. Создайте заказ в вашем кассовом ПО и выберите способ оплаты с помощью QR‑кода от Яндекс Пэй.

  2. Отсканируйте QR-табличку камерой смартфона и подтвердите оплату с помощью СБП.

  3. Проверьте, что оплата прошла успешно.

  4. Если у вас подключена оплата в Сплит, создайте заказ и аналогично шагам выше оплатите заказ в Сплит.

  5. Проверьте, что оплата прошла успешно.

  6. Выполните возврат средств в вашем кассовом ПО.

    Примечание

    Если кассовое ПО не поддерживает возвраты, оформите возврат в разделе Платежи личного кабинета Яндекс Пэй. Как оформить возврат см. подробнее в разделе Возврат платежей.

Важно

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

  1. Перейдите в раздел Платежи личного кабинета Яндекс Пэй и примите оплату по инструкции в разделе Прием платежа по QR‑коду от Яндекс Пэй.
  2. Выполните возврат средств по инструкции в разделе Возврат платежей.

Совет

Подробный процесс работы с заказом см. в разделе Самостоятельная интеграция.

Для тестирования Cash Register API доступна sandbox-среда, которая позволяет проверить интеграцию без реальных платежей. В ней все методы API работают так же, как в боевой среде.

Особенности sandbox:

  • Тестовые ключи отличаются от боевых.
  • Базовый URL: https://sandbox.pay.yandex.ru/api/merchant/cash-register.
  • Включена автоматическая оплата — после создания заказа оплата происходит автоматически, переходить по paymentUrl не требуется.

Настройка тестовой среды в личном кабинете

  1. В личном кабинете откройте раздел Настройки.

  2. Включите опцию Тестовая среда.

    Настройки sandbox

  3. В разделе Тестирование в Sandbox скопируйте тестовые ключи и используйте их для аутентификации запросов:

    • YandexPayApiKey — в заголовке Authorization: Api-Key <ключ>;
    • SoftwareAuthorization — в заголовке Software-Authorization: <ключ>.
  4. Настройте Callback URL для получения нотификаций о статусе заказа и операций.

  5. Вы также можете посмотреть тестовые платежи в личном кабинете. Подробнее см. в разделе Просмотр тестовых платежей.

Оформление заказа с помощью статического QR-кода

  1. Получите qrcId методом /accounts.

  2. Создайте заказ методом /orders с одной из тестовых сумм для эмуляции результатов оплаты.

    Тестовые суммы

    Сумма

    Результат

    10 000

    Успешная оплата через СБП, карту или в Сплит.

    Статус платежа: paymentStatus: "CAPTURED".

    Статус операции: operationType: "AUTHORIZE", status: "SUCCESS".

    10 001

    Техническая ошибка.

    Статус платежа: paymentStatus: "FAILED", reason: "WRONG_ENVIRONMENT".

    Статус операции: operationType: "AUTHORIZE", status: "FAIL".

    10 002

    Недостаточно средств.

    Статус платежа: paymentStatus: "FAILED", reason: "NOT_ENOUGH_FUNDS".

    Статус операции: operationType: "AUTHORIZE", status: "FAIL".

    10 004

    Вечный статус PENDING. Используйте для проверки поллинга и деактивации статического QR-кода.

    Статус платежа: paymentStatus: "PENDING" — заказ остается в этом статусе до деактивации.

    Статус операции: operationType: "AUTHORIZE", status: "PENDING".

    Для отображения Сплита в способах оплаты передайте availablePaymentMethods: ["CARD", "SPLIT"].

  3. Яндекс Пэй вернет поле paymentUrl с уникальной ссылкой на оплату.

    В sandbox оплата произойдет автоматически — переходить по ссылке не требуется.

    В боевой среде перейдите по ссылке и оплатите заказ через СБП, карту или в Сплит.

  4. Проверьте статус заказа одним из способов:

    • Нотификации (рекомендуется) — дождитесь нотификации /webhook с событием ORDER_STATUS_UPDATED.

    • Поллинг — опрашивайте статус методом /orders/{orderId}. Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду.

    Ожидаемый результат см. в столбце Результат в таблице тестовых сумм.

Оформление заказа с помощью динамического QR-кода

  1. Создайте заказ методом /orders/dynamic с одной из тестовых сумм для эмуляции результатов оплаты. Получать qrcId не требуется — QR-код генерируется автоматически.

    Тестовые суммы

    Сумма

    Результат

    10 000

    Успешная оплата через СБП, карту или в Сплит.

    Статус платежа: paymentStatus: "CAPTURED".

    Статус операции: operationType: "AUTHORIZE", status: "SUCCESS".

    10 001

    Техническая ошибка.

    Статус платежа: paymentStatus: "FAILED", reason: "WRONG_ENVIRONMENT".

    Статус операции: operationType: "AUTHORIZE", status: "FAIL".

    10 002

    Недостаточно средств.

    Статус платежа: paymentStatus: "FAILED", reason: "NOT_ENOUGH_FUNDS".

    Статус операции: operationType: "AUTHORIZE", status: "FAIL".

    10 004

    Вечный статус PENDING. Используйте для проверки поллинга и деактивации статического QR-кода.

    Статус платежа: paymentStatus: "PENDING" — заказ остается в этом статусе до деактивации.

    Статус операции: operationType: "AUTHORIZE", status: "PENDING".

    Для отображения Сплита в способах оплаты передайте availablePaymentMethods: ["CARD", "SPLIT"].

  2. Яндекс Пэй вернет поле paymentUrl с уникальной ссылкой на оплату.

    В sandbox оплата произойдет автоматически — переходить по ссылке не требуется.

    В боевой среде перейдите по ссылке и оплатите заказ через СБП, карту или в Сплит.

  3. Проверьте статус заказа одним из способов:

    • Нотификации (рекомендуется) — дождитесь нотификации /webhook с событием ORDER_STATUS_UPDATED.

    • Поллинг — опрашивайте статус методом /orders/{orderId}. Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду.

    Ожидаемый результат см. в столбце Результат в таблице тестовых сумм.

Поллинг и деактивация (прерывание оплаты)

Деактивация доступна только для статических QR-кодов.

  1. Получите qrcId методом /accounts.

  2. Создайте заказ методом /orders на сумму 10 004 рубля.

  3. Деактивация доступна только для заказов в статусе paymentStatus: "PENDING".

    Проверьте статус заказа методом /orders/{orderId}.

  4. Настройте поллинг:

    • Первый запрос — через 5–10 секунд после создания заказа.

    • Последующие запросы — не чаще одного раза в секунду.

  5. Убедитесь, что заказ остается в статусе paymentStatus: "PENDING" и деактивируйте его методом /orders/{orderId}/deactivate.

  6. Проверьте статусы:

    • операции: operationType: "AUTHORIZE", status: "FAIL";
    • заказа: paymentStatus: "FAILED", reason: "Payment rolled back by merchant".

Полный возврат

  1. Создайте и оплатите заказ на сумму 10 000 рублей с помощью статического или динамического QR-кода.

  2. Возврат доступен только для заказов в статусе paymentStatus: "CAPTURED" или paymentStatus: "PARTIALLY_REFUNDED".

    Проверьте статус заказа методом /orders/{orderId}.

  3. Выполните полный возврат методом /orders/{orderId}/refund с параметрами:

    • externalOperationId — уникальный идентификатор операции на стороне продавца. По нему можно узнать статус операции и он служит токеном идемпотентности.
    • refundAmount — сумма к возврату. Для полного возврата укажите сумму заказа (10 000 рублей).
    • refundCart — корзина возвращаемых позиций. Для полного возврата можно не указывать.
  4. Проверьте статус операции возврата одним из способов:

    • Нотификации (рекомендуется) — дождитесь нотификации /webhook с событием OPERATION_STATUS_UPDATED.

    • Поллинг — опрашивайте статус методом /orders/{orderId}. Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду. Находите нужную операцию по externalOperationId, который вы передали в /orders/{orderId}/refund.

    Ожидаемый результат: operationType: "REFUND", status: "SUCCESS".

  5. Проверьте статус заказа одним из способов:

    • Нотификации (рекомендуется) — дождитесь нотификации /webhook с событием ORDER_STATUS_UPDATED.

    • Поллинг — опрашивайте статус методом /orders/{orderId}. Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду.

    Ожидаемый результат: paymentStatus: "REFUNDED".

Частичный возврат

  1. Создайте и оплатите заказ с несколькими позициями на сумму 10 000 рублей с помощью статического или динамического QR-кода.

    При формировании корзины используйте одну из логик: базовую без цены за единицу товара CartItem.unitPrice или расширенную — с CartItem.unitPrice.

    От корзины при создании заказа зависит будущая логика возврата.

  2. Возврат доступен только для заказов в статусе paymentStatus: "CAPTURED" или paymentStatus: "PARTIALLY_REFUNDED".

    Проверьте статус заказа методом /orders/{orderId}.

  3. Выполните частичный возврат методом /orders/{orderId}/refund с параметрами:

    • externalOperationId — уникальный идентификатор операции на стороне продавца. По нему можно узнать статус операции и он служит токеном идемпотентности.

    • refundAmount — сумма к возврату.

    • refundCart — корзина возвращаемых позиций. Обязательна для частичного возврата.

      Формат refundCart зависит от логики возвратов. Подробнее см. в разделах Две логики возвратов и Примеры возвратов.

  4. Проверьте статус операции возврата одним из способов:

    • Нотификации (рекомендуется) — дождитесь нотификации /webhook с событием OPERATION_STATUS_UPDATED.

    • Поллинг — опрашивайте статус методом /orders/{orderId}. Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду. Находите нужную операцию по externalOperationId, который вы передали в /orders/{orderId}/refund.

    Ожидаемый результат: operationType: "REFUND", status: "SUCCESS".

  5. Проверьте статус заказа одним из способов:

    • Нотификации (рекомендуется) — дождитесь нотификации /webhook с событием ORDER_STATUS_UPDATED.

    • Поллинг — опрашивайте статус методом /orders/{orderId}. Первый запрос через 5–10 секунд после создания заказа, далее не чаще раза в секунду.

    Ожидаемый результат: paymentStatus: "PARTIALLY_REFUNDED".

Просмотр тестовых платежей

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

  1. В разделе Настройки включите для вашего магазина опцию Тестовые данные.

  2. Перейдите в раздел Платежи — в нем отобразится список тестовых платежей и сообщение о том, что включен режим тестовой среды:

Чтобы скрыть тестовые платежи, отключите тестовую среду. Это можно сделать двумя способами:

  • в разделе Платежи — в правом верхнем углу нажмите кнопку Выключить;
  • в разделе Настройки — выключите для вашего магазина опцию Тестовые данные.

Примечание

Повторно переключиться на список тестовых платежей можно только, включив тестовую среду в разделе Настройки.

Предыдущая