Мы часто сталкиваемся с необходимостью интеграции новых платежных методов в существующие учетные системы. В этой статье мы подробно рассмотрим, как настроить прием платежей по Системе Быстрых Платежей (СБП) банка ВТБ в 1С:Розница 2.3, особенно когда "коробочного" решения для прямой интеграции нет. Наша основная цель — добиться того, чтобы при выборе оплаты через СБП, на экране платежного терминала формировался QR-код, который покупатель сможет считать своим мобильным приложением для осуществления платежа (в отличие от альтернативного подхода с печатью QR-кода на чеке). Мы проанализируем сложности, которые возникают на этом пути, и предложим пошаговые решения, основанные на реальном опыте пользователей.
Это ключевой подход, который позволил решить проблему по приему платежей СБП многим пользователям. Суть метода заключается в том, что один физический платежный терминал настраивается таким образом, чтобы работать как два (или более) логических терминала с разными идентификаторами. Такой подход позволяет нам четко разделить потоки платежей по обычным картам и по СБП.
Обращение в банк для настройки терминала:
Прежде всего, критически важно обратиться в техническую поддержку банка ВТБ. Объясните им вашу задачу: вам необходимо, чтобы на одном физическом платежном терминале (например, Ingenico) можно было принимать как обычные банковские карты, так и платежи по СБП, с обязательным выводом QR-кода на экран самого терминала (для других терминалов, например, PAX D230, могут понадобиться отдельные решения). Мы выясним, какие действия должен выполнить банк:
Как показывает практика, сотрудники банка ВТБ готовы приехать на место и выполнить эту настройку, "привязав" к одному физическому терминалу два серийных номера, что подтверждает реальность такого решения.
Настройка в 1С:Розница 2.3:
После того как банк выполнил настройку терминала и предоставил вам необходимые идентификаторы, мы переходим к конфигурации 1С:Розница. Мы рассмотрим пошаговые действия, которые необходимо выполнить:
Таким образом, в 1С у вас будет отображаться два "эквайринговых терминала", хотя физически он останется одним устройством. Продавец при оформлении оплаты будет выбирать нужный вид оплаты – "Карта" или "СБП" (или другое название, которое вы дадите новому виду оплаты) – и 1С будет направлять команду на соответствующий логический терминал, обеспечивая правильную маршрутизацию платежа.
Создание вида оплаты для СБП в 1С:
Для удобства работы кассира и корректного отражения платежей мы создадим новый вид оплаты, который будет ассоциироваться с СБП:
Теперь при выборе этого вида оплаты на кассе, 1С будет отправлять соответствующую команду на СБП-терминал, который, в свою очередь, сформирует QR-код на экране для оплаты.
В некоторых случаях, или если стандартная настройка не сработала должным образом, может потребоваться более глубокая конфигурация на уровне драйвера платежного терминала. Этот подход требует понимания взаимодействия 1С с низкоуровневыми командами терминала и работы с конфигурационными файлами.
Получение operation configuration от банка:
Мы должны запросить у банка ВТБ документ "operation configuration" для СБП. Этот документ является критически важным, поскольку он содержит специфические команды и параметры, которые терминал использует для инициирования платежей, возвратов и запросов статуса по СБП. Важно понимать, что для СБП могут быть нужны совершенно другие команды и параметры, чем для операций с обычными банковскими картами. Банк должен предоставить точные номера команд и их синтаксис.
Редактирование файла ops.ini:
Файл ops.ini (или аналогичный конфигурационный файл для вашего драйвера Ingenico, например, ARCUS2.ini) является ключом к управлению командами, которые 1С отправляет на терминал. В этот файл необходимо добавить или модифицировать команды в соответствии с полученной от банка "operation configuration". Мы рассмотрим шаги по редактированию:
ops.ini. Обычно он находится в директории драйвера эквайрингового терминала (например, в папке, где расположен IngenicoDriver1C.dll, или в системной папке программы).ОплатитьСБП. Вам потребуется узнать от банка точный номер команды и ее синтаксис. Каждый банк может использовать свои уникальные коды.ops.ini. Важно: это обобщенный пример, реальные команды, их номера и параметры нужно брать строго из документации, предоставленной банком:
[SBP_PAYMENT]
CommandCode=24 ; Пример номера команды для операции оплаты через СБП
OperationName=ОплатитьСБП ; Название операции для идентификации
Parameters=Amount|1|N|12,CurrencyCode|2|N|3,RRN|3|AN|12,AdditionalInfo|4|AN|255
CommandCode – это уникальный номер команды, который 1С будет отправлять терминалу для инициирования СБП-платежа.OperationName – это название операции, используемое для внутренней идентификации.Parameters – список параметров, которые передаются вместе с командой (такие как сумма платежа, код валюты, референс-номер транзакции и дополнительная информация).СтатусСБП (для проверки статуса платежа, если он не был подтвержден мгновенно) и, что очень важно, ВозвратСБП для выполнения операций возврата.Внимание: Некорректное редактирование файла ops.ini может привести к неработоспособности платежного терминала или ошибкам при проведении операций. Всегда делайте резервную копию файла перед внесением любых изменений.
Использование драйвера IngenicoDriver1C.dll и ПО ARCUS2:
1С:Розница взаимодействует с платежным терминалом через специализированный драйвер, такой как IngenicoDriver1C.dll. Этот драйвер, в свою очередь, может использовать низкоуровневое программное обеспечение, установленное на самом терминале (например, ARCUS2), для непосредственного управления устройством. Драйвер IngenicoDriver1C.dll выступает в роли посредника: он отвечает за отправку команд, указанных в ops.ini, на терминал и за обработку ответов, приходящих от терминала.
Когда мы отправляем команду на терминал из 1С (например, команду, связанную с операцией ОплатитьСБП), драйвер "переводит" эту команду в протокол, понятный терминалу, и инициирует выполнение операции (в данном случае – формирование QR-кода на экране). В 1С, настройка номера команды обычно осуществляется не напрямую в пользовательском интерфейсе конфигурации, а либо через конфигурацию самого драйвера, либо через параметры, передаваемые в функции драйвера. Этот механизм может варьироваться в зависимости от версии драйвера и его конкретной реализации.
Даже после успешной настройки оплаты могут возникнуть сложности. Мы проанализируем наиболее частые проблемы и возможные пути их решения.
Проблемы с возвратами СБП:
Одной из наиболее частых проблем, возникающих после успешной настройки оплаты по СБП, является отсутствие или некорректная работа функции возврата. Мы рассмотрим наиболее вероятные причины и способы их устранения:
ops.ini: Как и для операции оплаты, для возврата платежа через СБП нужна своя специфическая команда. Мы должны убедиться, что в файле ops.ini прописана отдельная команда для возврата по СБП (например, ВозвратСБП) с правильным номером и параметрами, предоставленными банком. Часто проблема кроется именно в отсутствии такой записи или ее неверном синтаксисе.При возникновении проблем с возвратами, мы рекомендуем собрать подробные логи обмена данными между 1С и терминалом. Затем следует предоставить эти логи в техническую поддержку банка ВТБ. Их рекомендация "обращаться к разработчику кассового ПО (1С)" часто означает, что банку нужны именно эти логи для анализа и выявления первопричины.
Ошибка "при переходе к оплате если в настройках оборудования терминала в 1С использую ИД с СБП":
Если вы столкнулись с ошибкой при попытке перейти к оплате, когда в настройках оборудования терминала в 1С используется идентификатор, предназначенный для СБП, мы проанализируем возможные причины, которые могут приводить к такому поведению:
ИД) на терминале для работы с СБП. Возможно, он настроен, но не активирован, или с ним связаны другие ограничения, которые не позволяют корректно инициализировать СБП-операцию.ops.ini: Если драйвер пытается использовать определенную команду для СБП, но эта команда не прописана или прописана неверно в файле ops.ini, это может вызвать ошибку еще на этапе инициализации операции.Для диагностики этой проблемы, мы рекомендуем внимательно проверить логи работы драйвера и 1С при каждой попытке оплаты. Зачастую там содержится более детальная информация об ошибке, которая поможет нам локализовать проблему.
Для обеспечения успешной и стабильной работы СБП в 1С:Розница мы рекомендуем придерживаться следующих практических советов:
Интеграция СБП, особенно с банками, которые не предоставляют готовые "коробочные" решения, требует внимательного и системного подхода. Она включает в себя взаимодействие с разными сторонами: банком, производителем терминала, разработчиком ПО. Мы надеемся, что это подробное руководство поможет вам успешно настроить прием платежей по СБП ВТБ в 1С:Розница и обеспечить бесперебойную работу вашего бизнеса.