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

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

Далее описано, как установить модуль и настроить оплату заказов.

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

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

Установить модуль вы можете стандартными средствами платформы Маркетплейс 1С-Битрикс:

  1. Зайдите на страницу модуля.
  2. Нажмите кнопку Установить под названием модуля «Официальный модуль Яндекс Пэй».
  3. Во всплывающем окне введите адрес вашего сайта и нажмите кнопку Установить всплывающего окна.
  4. В новом окне браузера откроется панель управления указанного сайта, в которой в списке обновлений будет доступна установка модуля «Официальный модуль Яндекс Пэй»: для скачивания модуля нажмите кнопку Загрузить, примите условия лицензионных соглашений.
  5. После скачивания модуля в том же окне появится возможность установить решение: нажмите кнопку Установить.

Настройки Яндекс Пэй

Яндекс Пэй появится после установки модуля в списке платежных систем (Магазин → Настройки → Платежные системы).

Перейдите к редактированию модуля, нажав на иконку меню в строке платежной системы и получите идентификатор продавца Merchant ID:

  1. Авторизуйтесь в аккаунте Яндекс, который будет иметь доступ к проверке и настройке платежей в консоли Яндекс Пэй.
  2. В форме редактирования платежной системы (Магазин → Настройки → Платежные системы → Яндекс Пэй → Изменить) нажмите кнопку Настроить Яндекс Пэй, откроется страница регистрация.
  3. Заполните контактные данные и информацию об организации, после нажмите Продолжить.
  4. Подключите Яндекс Пэй на вкладке Сервисы, заполнив данные о вашем магазине.
  5. Скопируйте Merchant ID и API-ключ на странице Настройки → Сайт, в настройки платежной системы 1С-Битрикс (Магазин → Настройки → Платежные системы). Если идентификатор продавца Merchant ID и Api Key уже ранее были заполнены, нажмите ссылку Показать все, отключите опцию По умолчанию и введите новые значения.
  6. Укажите Callback URL на странице Настройки → Сайт: https://#DOMAIN#/bitrix/services/yandexpay.pay/trading/.

Найти полученный ранее идентификатор продавца Merchant ID вы можете в консоли Яндекс Пэй.

Тестовый режим

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

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

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

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

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

Настроить печать чеков можно одним из удобных способов:

  1. 1С-Битрикс поддерживает подключение ККМ в офисе, , Атол.Онлайн, Orange Data, Бизнес.Ру и других. Настроенные кассы доступны в административной панели (Магазин → Кассы → Список касс). Если уже добавляли кассу, проверьте на вкладке Ограничения отсутствует ли ограничение по платежным системам или разрешите новую платежную систему, дважды нажав на строку ограничения. После включите опцию Разрешить печать чеков в платежной системе (Магазин → Настройки → Платежные системы → Яндекс Пэй).
  2. Если касса уже подключена к 1С или CRM, с которой настроен обмен заказами. Вы можете продолжить печать чеков без внесения дополнительных изменений.

Публикация

Когда все настройки выполнены, можно предоставить покупателям возможность оплаты с помощью Яндекс Пэй:

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

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

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

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

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

  • Сделать полный возврат по заказу.
  • Скопировать старый заказ.
  • Убрать ненужные позиции и сохранить новый заказ.
  • После новой оплаты заново напечатать чек.

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

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

  1. В административной панели 1С-Битрикс перейдите в форму просмотра оформленного заказа (Магазин → Заказы).

  2. В разделе Оплата нажмите на статус оплаты (Оплачен) и выберите в выпадающем меню Возврат.

  3. Во всплывающем окне в поле Вернуть на выберите Яндекс Пэй.

  4. Нажмите кнопку Сохранить.

  5. Проверьте значение поля Статус заказа в разделе Параметры заказа.

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

Часто возникают вопросы по подключению. Первым делом проверьте корректность настроек платежной системы:

  • Идентификатор продавца Merchant ID.
  • API-ключ.

Если эти настройки корректны, то может понадобиться более специфичное решение.

Далее приведен список самых частых проблем и их решений:

  1. Ошибка "response_status": 404 при запросе к callback URL. Говорит о том, что не верно установлен callback URL.

    Решение:

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

    Решение: в файле .htaccess нужно добавить исключение RewriteCond %{REQUEST_URI} !^/bitrix/ перед пользовательскими правилами RewriteRule. Обратите внимание, нельзя добавлять исключение перед RewriteRule ^(.*)$ /bitrix/urlrewrite.php.

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

    Решение:

    1. Проверить шаблон страницы confim.php компонента sale.order.ajax. В шаблоне должен быть вывод кода обработчика из переменной <?=$arPaySystem["BUFFERED_OUTPUT"]?>.

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

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

      Пример

      image

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

  4. У клиента кастомно формируется ЧПУ для карточки товара, то есть не только по правилу формирования из инфоблока, но и, допустим, где-то в коде. На такой случай можно установить опцию для расширения конечного шаблона ЧПУ: \YandexPay\Pay\Config::setOption('injection_engine_element_greedy', '#GREEDY#/');

    #GREEDY# — конечный шаблон (примеры: ‘#GREEDY#/’, ‘#GREEDY#.html’, ‘#GREEDY#/#GREEDY#.html’).

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

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

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

  1. Pay\Config::getOption('check_product_available', 'Y') — включает проверку доступности на js при изменении оффера, чтобы не делать запросы на бэк. Работает в карточке товара. По умолчанию включено. Выключать в том случае, если не используется стандартный механизм вывода торговых предложений.
  2. Pay\Config::getOption('check_product_validate', 'Y') — включает проверку оффера: является ли оффер потомком основного товара. Работает в карточке товара. По умолчанию включено. Выключать в том случае, если не используется стандартный механизм вывода торговых предложений.
  3. Pay\Config::getOption('library_query') — показывает, какая версия jquery установлена. Работает в админке.
  4. Pay\Config::getOption('injection_engine_element_greedy', '') — устанавливает кастомное ЧПУ для карточки товара.
  5. Pay\Config::getOption('log_expire_days', 10) — устанавливает количество дней для очистки логов.
  6. Pay\Config::getOption('set_http_host', 'N') — передача http host в запросы от Яндекс Пэй.
  7. Pay\Config::getOption('region_cookie', '') — установка региона в куки при запросах для Аспро решений.
  8. Pay\Config::getOption('stores_by_available') — установка стратегии получения складов магазина (”all” — учитывать наличие корзины товаров на всех складах).
  9. Pay\Config::getOption('catalog_store_description', '#DESCRIPTION#') — установка шаблона для описания складов (”#DESCRIPTION#” — описание будет состоять только из значения поля Описание).
  10. Pay\Config::getOption('environment_product_provider', '') — установка кастомного product provider. Указывается класс для провайдера товаров формирования корзины.