wphow.ru wordpress WPHow

WooCommerce: установка и настройка оплаты через платежную систему Яндекс.Касса

Диагностика проблемы: почему оплата через Яндекс.Кассу не работает в WooCommerce

Многие владельцы интернет-магазинов на WooCommerce сталкиваются с проблемами интеграции Яндекс.Кассы (теперь Яндекс.Платежка) для приёма платежей. Распространённые симптомы:

  • кнопка оплаты Яндекс.Кассы не отображается на странице оформления заказа;
  • при попытке оплаты появляется ошибка "Платёж не прошёл" или "Ошибка соединения с платежным шлюзом";
  • заказы создаются, но платежи не проходят или не подтверждаются;
  • отсутствие уведомлений о платеже в админке WooCommerce.

Эти симптомы обычно указывают на неправильную настройку плагина или проблемы с API Яндекс.Кассы.

Пошаговое решение: установка и настройка Яндекс.Кассы в WooCommerce

1. Установка официального плагина

Лучший способ интеграции — использовать официальный плагин "Yandex Checkout for WooCommerce" или его аналоги, поддерживающие новую платформу Яндекс.Платежка.

  1. Перейдите в админку WordPress → Плагины → Добавить новый.
  2. В поиске введите yandex checkout woocommerce.
  3. Найдите плагин с хорошими отзывами и совместимостью с вашей версией WooCommerce.
  4. Установите и активируйте плагин.

2. Получение API-ключей Яндекс.Кассы

Для работы плагина необходимы API-ключи и идентификаторы магазина:

  • Зайдите в личный кабинет Яндекс.Кассы.
  • Создайте магазин и получите идентификатор магазина (Shop ID) и секретный ключ (Secret key).
  • Убедитесь, что магазин настроен для приёма платежей в нужных валютах и регионах.

3. Настройка плагина в WooCommerce

В админке WordPress перейдите в WooCommerce → Настройки → Платежи и выберите Яндекс.Кассу.

Заполните поля:

  • Shop ID — из кабинета Яндекс.Кассы;
  • Секретный ключ — из кабинета Яндекс.Кассы;
  • Активируйте нужные методы оплаты (карты, Apple Pay, Google Pay, и др.).

Обязательно укажите корректные URL для уведомлений (Webhook URL), которые плагин подскажет — это нужно для автоматического обновления статусов заказов.

4. Проверка работы платежей в тестовом режиме

Перед запуском в боевой режим:

  • Включите тестовый режим в настройках плагина.
  • Создайте тестовый заказ и попробуйте оплатить через Яндекс.Кассу.
  • Проверьте, что заказ меняет статус на "Обработан" или "Выполнен" после успешной оплаты.

Проверка результата после внедрения

Чтобы убедиться, что всё работает корректно:

  • Создайте заказ на сайте и перейдите к оплате.
  • Отправьте тестовую оплату через Яндекс.Кассу (тестовый режим или реальные данные в боевом режиме).
  • Проверьте, что на странице благодарности отображается успешное сообщение.
  • В админке WooCommerce убедитесь, что статус заказа обновился.
  • Проверьте, что в личном кабинете Яндекс.Кассы появился платёж с правильными данными.

Частые ошибки и как их исправить

Ошибка 1: Проблемы с Webhook — статусы заказов не обновляются

Причина: Яндекс.Касса не может достучаться до вашего сайта из-за блокировок или неправильного URL.

Решение:

  • Проверьте URL уведомлений в настройках плагина. Он должен быть доступен извне без авторизации.
  • Убедитесь, что на сервере не блокируются запросы от IP Яндекс.Кассы (проверьте firewall, .htaccess).
  • Проверьте логи сервера на ошибки при получении Webhook.

Ошибка 2: "Платёж не прошёл" с сообщением об ошибке SSL

Причина: на сервере нет корректного SSL-сертификата или проблемы с HTTPS.

Решение:

  • Убедитесь, что SSL-сертификат валиден и установлен корректно.
  • Проверьте, что сайт доступен по HTTPS без предупреждений.
  • Если используется прокси или CDN, проверьте их настройки.

Ошибка 3: Плагин конфликтует с другими плагинами WooCommerce

Причина: несовместимость версий или переопределение функций оплаты.

Решение:

  • Отключите остальные платежные плагины, оставьте только Яндекс.Кассу.
  • Обновите WooCommerce и все плагины до последних версий.
  • Проверьте консоль браузера на ошибки JavaScript на странице оформления заказа.

Практические советы по безопасности и производительности

  • Обновляйте плагин и WooCommerce регулярно — это закрывает уязвимости и улучшает совместимость.
  • Используйте HTTPS на сайте — Яндекс.Касса требует защищённое соединение для корректной работы.
  • Ограничьте доступ к админке по IP — чтобы минимизировать риск взлома.
  • Включите логирование платежей в настройках плагина для быстрой диагностики проблем.
  • Оптимизируйте скорость загрузки страницы оформления заказа, отключая лишние скрипты и стили, чтобы не замедлять процесс оплаты.

Сравнение способов интеграции Яндекс.Кассы с WooCommerce

МетодПлюсыМинусыКогда использовать
Официальный плагин Яндекс.КассыПолная поддержка API, обновления, поддержка платежейИногда конфликтует с другими плагинами, требует настройкиДля большинства магазинов
Самописная интеграция через REST APIМаксимальная кастомизацияСложная реализация, требует поддержкиОсобые бизнес-задачи
Сторонние плагиныПростота настройки, дополнительные функцииРиски безопасности, нестабильностьЕсли официальное решение не подходит

Пример кода: добавление пользовательского поля в платежную форму Яндекс.Кассы

Иногда нужно добавить дополнительное поле (например, комментарий к платежу). Для этого можно использовать хук WooCommerce:

add_action('woocommerce_after_order_notes', 'add_custom_payment_field');
function add_custom_payment_field( $checkout ) {
    echo '<div id="custom_payment_field">';
    woocommerce_form_field( 'custom_comment', array(
        'type'          => 'text',
        'class'         => array('custom-comment form-row-wide'),
        'label'         => __('Комментарий к оплате'),
        'placeholder'   => __('Введите комментарий'),
        ), $checkout->get_value( 'custom_comment' ));
    echo '</div>';
}

add_action('woocommerce_checkout_process', 'validate_custom_payment_field');
function validate_custom_payment_field() {
    if ( ! $_POST['custom_comment'] ) {
        wc_add_notice( __('Пожалуйста, заполните комментарий к оплате.'), 'error' );
    }
}

add_action('woocommerce_checkout_update_order_meta', 'save_custom_payment_field');
function save_custom_payment_field( $order_id ) {
    if ( ! empty( $_POST['custom_comment'] ) ) {
        update_post_meta( $order_id, '_custom_comment', sanitize_text_field( $_POST['custom_comment'] ) );
    }
}

Этот код добавит поле на страницу оформления заказа и сохранит комментарий в мета-данных заказа, который можно передать в API Яндекс.Кассы при необходимости.

Как проверить, что поле передается в платежную систему

Для проверки:

  • Включите логирование запросов в плагине Яндекс.Кассы.
  • Сделайте тестовый заказ с заполненным полем.
  • Проверьте логи — там должен быть параметр с вашим комментарием.
  • Убедитесь, что комментарий отображается в админке заказа WooCommerce.
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙