Подключение Yandex Pay к сайту пошаговое руководство

Платите картой, СБП или в рассрочку с Yandex Pay и открывайте новые каналы продаж

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» без написания серверного кода для формирования токенов.

  1. Подключите скрипт SDK в <head> вашего сайта:
    <script src="https://static.pay.yandex.net/checkout-widget/v1.0.0/checkout-widget.js"></script>
  2. Создайте контейнер для кнопки:
    <div id="yandex-pay-button"></div>
  3. Инициализируйте виджет (пример на 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');
     
  4. Обработайте результат на сервере: после перехода пользователя на returnUrl получите параметр payment_id и проверьте статус через API Yandex Pay (метод GET /v1/payments/{id}).

Интеграция через GateLine

GateLine – платформа‑агрегатор, предоставляющая готовый модуль Yandex Pay. Подключить его проще, но вы платите комиссию за использование.

  1. Зарегистрируйтесь в GateLine и запросите подключение модуля Yandex Pay.
  2. Получите API‑ключ GateLine и merchant_id Yandex Pay.
  3. <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>
     
  4. Тестируйте в sandbox‑режиме, затем переключите mode: 'production'.

Плагины для CMS (Shopify, WooCommerce, Bitrix, OpenCart)

Для популярных платформ доступны готовые расширения. Обычно процесс выглядит так:

  1. Установите плагин «Yandex Pay» через магазин расширений.
  2. В настройках введите merchant_id и secret_key.
  3. Укажите URL‑ы returnUrl и failUrl в панели администрирования.
  4. Сохраните и включите режим «Тест» для проверки.

Пошаговая инструкция (общий вариант через Web SDK)

  1. Создать аккаунт в Яндекс Pay и пройти проверку.
  2. Получить merchant_id и secret_key в личном кабинете.
  3. Обеспечить HTTPS на всех страницах, где будет кнопка.
  4. Подключить Web SDK (см. выше).
  5. Настроить параметры виджета (сумма, описание, URL‑ы).
  6. Реализовать серверную проверку статуса через API (получаем payment_id → запрос к /v1/payments/{id}).
  7. Тестировать в sandbox‑режиме (используйте тестовые карты, указанные в документации).
  8. Перейти в production – замените mode: 'test' на 'production' и отключите тестовые ключи.
  9. Мониторинг и аналитика – подключите Web‑hooks для автоматических уведомлений о статусах платежей.
Очень важно: после перехода в продакшн проверьте, что в CSP‑заголовках разрешён домен 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 секунд при проверке статуса платежа (иначе пользователь увидит таймаут).

Тестирование и переход в продакшн

  1. Включите режим sandbox в настройках виджета.
  2. Используйте тестовые карты: 4444 4444 4444 4441 (RUB, CVV 123, срок 12/30).
  3. Проверьте обработку успешного и неуспешного платежа (настраивая returnUrl и failUrl).
  4. Убедитесь, что ваш сервер корректно записывает статус в базу данных.
  5. После успешных тестов замените 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, – они помогут решить любые технические нюансы.