Yandex Pay – это сервис быстрой онлайн‑оплаты, позволяющий пользователям платить картой Яндекс Деньги, банковской картой, СБП и даже в рассрочку. Для владельцев интернет‑магазинов и сервисов подключение Yandex Pay открывает новые каналы продаж и повышает конверсию.
Самое главное помнить, что
- Только зарегистрированный аккаунт Яндекса может стать продавцом.
- Для работы нужен идентификатор продавца (merchant_id) и ключ подписи (secret_key), полученные после одобрения заявки.
- Технические требования к сайту (HTTPS, CSP, поддержка Web‑SDK) обязательны.
- Все действия следует тестировать в sandbox‑режиме, а только после успешных проверок переключать на продакшн.
Почему стоит подключить Yandex Pay
Сервис предлагает:
- Мгновенную оплату без ввода данных карты (одно‑клик).
- Поддержку оплаты в рассрочку и кредит от партнёров Яндекса.
- Встроенный QR‑код для офлайн‑платежей.
- Гибкую интеграцию через Yandex Pay Web SDK, GateLine или готовые плагины для популярных CMS.
Подготовительный этап
- Регистрация в Яндекс‑Бизнесе
- Создайте (или используйте существующий) аккаунт Yandex Pay. Заполните профиль компании, укажите ИНН, юридический адрес и банковские реквизиты.
- Подача заявки на подключение
- В личном кабинете выберите «Подключить Yandex Pay», заполните форму (требуется URL сайта, типы товаров, условия возврата). После проверки вам будет выдан merchant_id и secret_key.
- Техническая подготовка сайта
-
- Обязательно HTTPS на всех страницах, где будет отображаться кнопка оплаты.
- Установите корректные CSP (Content‑Security‑Policy)‑заголовки, разрешив скрипты
https://pay.yandex.ruиhttps://static.pay.yandex.net. - Подготовьте страницу «Успешный платёж» и «Неудачный платёж» с уникальными URL‑ами (их укажете в настройках).
Способы интеграции
Интеграция через Yandex Pay Web SDK (рекомендованный способ)
Web SDK позволяет добавить кнопку «Оплатить через Яндекс Pay» без написания серверного кода для формирования токенов.
- Подключите скрипт SDK в
<head>вашего сайта:<script src="https://static.pay.yandex.net/checkout-widget/v1.0.0/checkout-widget.js"></script> - Создайте контейнер для кнопки:
<div id="yandex-pay-button"></div> - Инициализируйте виджет (пример на JavaScript):
const widget = new YaPay.CheckoutWidget({ merchantId: 'YOUR_MERCHANT_ID', // полученный merchant_id amount: { value: '1999', // сумма в копейках/центах currency: 'RUB' }, description: 'Оплата заказа №12345', returnUrl: 'https://example.com/pay/success', failUrl: 'https://example.com/pay/fail', mode: 'test' // поменяйте на 'production' после проверки }); widget.render('#yandex-pay-button'); - Обработайте результат на сервере: после перехода пользователя на
returnUrlполучите параметрpayment_idи проверьте статус через API Yandex Pay (методGET /v1/payments/{id}).
Интеграция через GateLine
GateLine – платформа‑агрегатор, предоставляющая готовый модуль Yandex Pay. Подключить его проще, но вы платите комиссию за использование.
- Зарегистрируйтесь в GateLine и запросите подключение модуля Yandex Pay.
- Получите API‑ключ GateLine и merchant_id Yandex Pay.
- Тестируйте в sandbox‑режиме, затем переключите
mode: 'production'.
<script src="https://gate.line/pay.js"></script>
<button id="gate-yandex-pay">Оплатить через Яндекс Пэй</button>
<script>
GatePay.init({
merchantId: 'YOUR_MERCHANT_ID',
apiKey: 'YOUR_GATELINE_API_KEY',
container: '#gate-yandex-pay',
amount: 1999,
currency: 'RUB',
description: 'Заказ №12345',
returnUrl: 'https://example.com/pay/success',
failUrl: 'https://example.com/pay/fail',
mode: 'test'
});
</script>
Плагины для CMS (Shopify, WooCommerce, Bitrix, OpenCart)
Для популярных платформ доступны готовые расширения. Обычно процесс выглядит так:
- Установите плагин «Yandex Pay» через магазин расширений.
- В настройках введите merchant_id и secret_key.
- Укажите URL‑ы
returnUrlиfailUrlв панели администрирования. - Сохраните и включите режим «Тест» для проверки.
Пошаговая инструкция (общий вариант через Web SDK)
- Создать аккаунт в Яндекс Pay и пройти проверку.
- Получить merchant_id и secret_key в личном кабинете.
- Обеспечить HTTPS на всех страницах, где будет кнопка.
- Подключить Web SDK (см. выше).
- Настроить параметры виджета (сумма, описание, URL‑ы).
- Реализовать серверную проверку статуса через API (получаем
payment_id→ запрос к/v1/payments/{id}). - Тестировать в sandbox‑режиме (используйте тестовые карты, указанные в документации).
- Перейти в production – замените
mode: 'test'на'production'и отключите тестовые ключи. - Мониторинг и аналитика – подключите Web‑hooks для автоматических уведомлений о статусах платежей.
https://static.pay.yandex.net. Иначе кнопка не будет загружаться, а клиент получит ошибку «Content Security Policy: The page’s settings blocked the loading of a resource». Технические требования к сайту
- Протокол HTTPS (TLS 1.2 или выше).
- Поддержка SameSite=None для cookie‑ов, используемых в процессе оплаты.
- Разрешённые CORS‑заголовки:
Access-Control-Allow-Origin: *(или ваш домен) для запросов кhttps://api.pay.yandex.ru. - Поддержка JavaScript ES6 (для работы SDK).
- Объём ответа сервера не более 2 секунд при проверке статуса платежа (иначе пользователь увидит таймаут).
Тестирование и переход в продакшн
- Включите режим sandbox в настройках виджета.
- Используйте тестовые карты:
4444 4444 4444 4441(RUB, CVV 123, срок 12/30). - Проверьте обработку успешного и неуспешного платежа (настраивая
returnUrlиfailUrl). - Убедитесь, что ваш сервер корректно записывает статус в базу данных.
- После успешных тестов замените
mode: 'test'→'production'и обновите secret_key на production‑версию.
Часто задаваемые вопросы (FAQ)
- Как проверить, что мой merchant_id правильно?
- Вызовите
GET https://api.pay.yandex;ru/v1/merchants/{merchant_id}с вашим secret_key. При правильных данных получите 200 OK и информацию о счёте. - Можно ли принимать оплату в рассрочку?
- Да. В параметрах виджета укажите
installments: true. Платёж будет автоматически предложен клиенту, если его банк поддерживает рассрочку. - Что делать, если кнопка не отображается?
-
- Проверьте, что страница доступна по HTTPS.
- Убедитесь, что CSP‑заголовки разрешают
https://static.pay.yandex.net. - Откройте консоль браузера и ищите ошибки 404/403.
- Можно ли использовать Yandex Pay совместно с другими платёжными шлюзами?
- Конечно. Кнопку Yandex Pay можно разместить рядом с другими кнопками (PayPal, Stripe). Главное – не смешивать параметры
returnUrlиfailUrlразных шлюзов.
Подключить Yandex Pay достаточно просто, если соблюдать последовательность: регистрация → получение ключей → подготовка сайта → выбор способа интеграции → тестирование → переход в продакшн. Следуя описанным выше шагам, вы быстро начнёте принимать быстрые и безопасные платежи, а ваш клиент получит удобный способ оплаты в один клик.
Если возникнут вопросы, обратитесь в службу поддержки Яндекса или к партнёрам‑агрегаторам, таким как GateLine, – они помогут решить любые технические нюансы.