Подключение Яндекс Пэй в 1С-Битрикс

Бесплатный модуль

Чтобы оплачивать покупки при помощи Яндекс Пэй и Сплит в 1С-Битрикс, нужно установить специальный модуль. Модуль предоставляется ООО «Яндекс» бесплатно.

Внимание

Описанные функциональные возможности доступны в модуле версии 1.4.6 и выше. Версия 1С-Битрикс должна быть не ниже 19.0.0.

Подробнее о модуле читайте на сайте партнера.

Установка модуля

Вы можете установить модуль Яндекс Пэй из Маркетплейс 1С-Битрикс:

  1. Откройте страницу модуля одним из способов:

    • перейдите по прямой ссылке на страницу в браузере;
    • в 1С-Битрикс перейдите в МагазинНастройкиПлатежные системы, нажмите на значок стрелки на кнопке Добавить платежную систему и выберите опцию Установить из маркетплейса. В появившемся списке выберите «Официальный модуль Яндекс Пэй».
  2. Под названием модуля «Официальный модуль Яндекс Пэй» нажмите кнопку Установить.

  3. Во всплывающем окне введите адрес вашего сайта и нажмите кнопку Установить.

  4. В новом окне браузера откроется панель управления указанного сайта. В списке обновлений будет доступна установка модуля «Официальный модуль Яндекс Пэй». Нажмите кнопку Загрузить и примите условия лицензионных соглашений.

  5. После скачивания модуля в том же окне появится возможность установить решение — нажмите кнопку Установить.

Регистрация в Яндекс Пэй

  1. Последовательно авторизуйтесь в Яндекс ID и личном кабинете Яндекс Пэй по шагам в разделе Регистрация.

  2. В личном кабинете на вкладке Сервисы заполните данные о вашем магазине.

  3. Перейдите в Настройки → Сайт и скопируйте Merchant ID и API-ключ. Эти данные понадобятся вам при добавлении платежной системы в 1С-Битрикс.

    Примечание

    Если вы не использовали API-ключ до этого, сначала его необходимо выпустить. О том, как это сделать, читайте в разделе Настройки.

  4. На странице Сайт для получения уведомлений об оплатах укажите Callback URL: https://#DOMAIN#/bitrix/services/yandexpay.pay/trading/, где #DOMAIN# — адрес сайта в Битриксе.

Добавление платежной системы

  1. В 1С-Битрикс зайдите в МагазинНастройкиПлатежные системы. В правом верхнем углу нажмите кнопку Добавить платежную систему.

  2. Заполните основные параметры платежной системы:

    Параметр

    Значение

    Обработчик

    Яндекс Пэй (yandexpay)

    Название

    Яндекс Пэй

    Доступные методы оплаты на платежной форме Яндекс Пэй

    Выберите Пэй и Сплит, чтобы в вашем магазине были доступны оба способа оплаты

    Кодировка

    UTF-8

    Merchant ID

    Укажите Merchant ID магазина, для которого вы настраиваете платежную систему

    API-ключ

    Укажите API-ключ, полученный в личном кабинете Яндекс Пэй

    Примечание

    Если Merchant ID и API-ключ в параметрах платежной системы уже были заполнены, нажмите ссылку Показать все, отключите опцию По умолчанию и введите новые значения.

    Остальные параметры заполните самостоятельно по необходимости.

    Если вы хотите разделить кнопки оплат для Пэй и Сплит

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

    • с названием Яндекс Пэй и методом оплаты Пэй — для Пэй;
    • с названием Яндекс Сплит и методом оплаты Сплит — для Сплит.
  3. Внизу страницы нажмите кнопку Применить, чтобы продолжить настройку платежной системы, или Сохранить, чтобы сохранить изменения и выйти из настроек.

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

Чтобы проверить корректность обработки платежей c помощью Яндекс Пэй, включите тестовый режим:

  1. В административной панели 1С-Битрикс перейдите в МагазинНастройкиПлатежные системыЯндекс Пэй и нажмите кнопку Изменить.

  2. В блоке Настройка обработчика ПС нажмите ссылку Показывать все и включите опцию Тестовый режим.

  3. Включите опцию Активность.

    Примечание

    Если опция Активность уже была включена, то отключите ее и установите заново.

  4. Создайте заказ на сайте магазина, выберите платежную систему Яндекс Пэй и оплатите покупку одной из тестовых карт.

  5. Чтобы проверить возвраты, на административной панели 1С-Битрикс зайдите на страницу просмотра заказа через МагазинЗаказы. Подробнее о возвратах читайте в главах Полный возрат и Частичный возврат.

Если вы используете копию сайта для разработчиков, в личном кабинете Яндекс Пэй отметьте Показать настройки тестовой среды и замените доменное имя в поле Callback URL. Копия для разработчиков должна быть доступна по протоколу https без дополнительной авторизации (например, http-авторизации).

Настройка онлайн-чеков

В соответствии с 54-ФЗ магазин должен печатать онлайн-чек.

1С-Битрикс поддерживает подключение для следующих касс:

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

Посмотреть настроенные кассы можно через МагазинКассыСписок касс.

Настройте печать чеков:

  1. Проверьте, что в Битрикс уже была добавлена касса, или добавьте новую.
  2. На вкладке Ограничения проверьте, что отсутствует ограничение по платежным системам. Разрешите системе использовать новую платежную систему, дважды нажав на строку с ограничением.
  3. Зайдите в МагазинНастройкиПлатежные системыЯндекс Пэй и включите опцию Разрешить печать чеков.

Если касса уже была подключена к 1С или CRM, а обмен заказами настроен, вы можете продолжить печать чеков без внесения дополнительных изменений.

Публикация

После настройки и тестирования подготовьте Яндекс Пэй к приему оплат от покупателей:

  1. В административной панели 1С-Битрикс перейдите в МагазинНастройкиПлатежные системыЯндекс Пэй и нажмите кнопку Изменить.

  2. В блоке Настройка обработчика ПС нажмите ссылку Показывать все и отключите опцию Тестовый режим.

  3. Включите опцию Активность.

    Примечание

    Если опция Активность уже была включена, то отключите ее и установите заново.

  4. Если вы выполняли настройку на копии сайта для разработчиков, в личном кабинете Яндекс Пэй снимите переключатель Показать настройки тестовой среды, а в поле Callback URL замените доменное имя сайта.

  5. Оформите заказ и выполните оплату через Яндекс Пэй. Дождитесь печати чека и выполните возврат. Подробнее о возвратах читайте в главах Полный возрат и Частичный возврат.

Если у вас возникли сложности с настройкой или замечания по проведению платежей, напишите разработчикам модуля 1С-Bitrix.

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

Для осуществления возврата:

  1. В административной панели 1С-Битрикс перейдите в окно просмотра оформленного заказа через МагазинЗаказы.
  2. В разделе Оплата нажмите на статус оплаты Оплачен и выберите в выпадающем меню Возврат.
  3. Во всплывающем окне в поле Вернуть на выберите Яндекс Пэй и нажмите кнопку Сохранить.
  4. Проверьте значение поля Статус заказа в разделе Параметры заказа.

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

Внимание

На текущий момент 1С-Битрикс не поддерживает частичные возвраты.

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

Для корректного оформления частичного возврата товаров:

  1. Сделайте полный возврат по заказу.
  2. Скопируйте старый заказ.
  3. Уберите ненужные позиции и сохраните новый заказ.
  4. После оплаты нового заказа напечайте чек заново.

Частые проблемы

При возникновении проблем с подключением проверьте, что следующие параметры введены верно:

  • Merchant ID
  • API-ключ

Если эти настройки корректны, то посмотрите список самых частых проблем и их решений:

Ошибка

Варианты решения

Текст ошибки: "response_status": 404. Возникает при запросе к Callback URL.

В личном кабинете Яндекс Пэй проверьте значение Сallback URL, скорее всего, оно введено неверно.

Внимание

При регистрации аккаунта в Яндекс Пэй через кнопку Настроить Яндекс Пэй Callback URL НЕ передается, поэтому его необходимо выставить вручную в личном кабинете Яндекс Пэй: https://#DOMAIN#/bitrix/services/yandexpay.pay/trading/.

Ошибка редиректов со слешем «/» или без слеша при запросе на /bitrix/services/yandexpay.pay/trading/.

В файле .htaccess добавьте исключение RewriteCond %{REQUEST_URI} !^/bitrix/ перед пользовательскими правилами RewriteRule.

Внимание

Исключение нельзя добавлять перед RewriteRule ^(.*)$ /bitrix/urlrewrite.php

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

  • Проверьте шаблон страницы confim.php компонента sale.order.ajax на наличие вывода кода обработчика из переменной <?=$arPaySystem["BUFFERED_OUTPUT"]?>.
  • Проверьте, для какого идентификатора платежной системы включен указанный выше код. Идентификатор платежной системы Яндекс Пэй должен подходить под условие, заданное в коде.
  • Если идентификатор платежный системы в коде задан корректно, но кнопка не отображается, то проверьте, корректны ли значения переменных, содержащих информацию о платежной системе.
Пример

image

В этом примере предусмотрен вывод только для платежных систем с индентификаторами 3 и 5, поэтому кнопка оплаты Яндекс Пэй не будет отображаться.

ЧПУ для карточки товара у клиента формируется кастомно: не только по правилу формирования из инфоблока, но, например, где-то в коде.

Установите опцию для расширения конечного шаблона ЧПУ: \YandexPay\Pay\Config::setOption('injection_engine_element_greedy', '#GREEDY#/');, где #GREEDY# — конечный шаблон.

Пример
  • #GREEDY#/
  • #GREEDY#.html
  • #GREEDY#/#GREEDY#.html

Отладка ошибок при запросах на /bitrix/services/yandexpay.pay/trading/button/data/#rout#.

В настройках платежной системы или чекаута установите опцию Содержание журнала событий в режим «Отладка». В этом режиме все запросы в платежной системе будут записываться и отображаться на вкладке Журнал Яндекс Пэй.

Системные настройки модуля

Настройка модуля

Расшифровка

Pay\Config::getOption('check_product_available', 'Y')

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

Pay\Config::getOption('check_product_validate', 'Y')

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

Pay\Config::getOption('library_query')

Показывает, какая версия jquery установлена. Работает в админке.

Pay\Config::getOption('injection_engine_element_greedy', '')

Используется для установки кастомного ЧПУ для карточки товара.

Pay\Config::getOption('log_expire_days', 10)

Используется для установки количества дней для очистки логов.

Pay\Config::getOption('set_http_host', 'N')

Передает http host в запросы от Яндекс Пэй.

Pay\Config::getOption('region_cookie', '')

Используется для установки региона в куки при запросах для Аспро решений.

Pay\Config::getOption('stores_by_available')

Используется для установки стратегии получения складов магазина, ”all” — учитывает наличие корзины товаров на всех складах.

Pay\Config::getOption('catalog_store_description', '#DESCRIPTION#')

Используется для установки шаблона для описания складов, ”#DESCRIPTION#” — описание будет состоять только из значения поля Описание.

Pay\Config::getOption('environment_product_provider', '')

Используется для установки кастомного product provider. Указывается класс для провайдера товаров формирования корзины.