Подключение платежных систем в CMS 1C-Битрикс

21 Мая 2020

следующая статья
Владимир Хованец

Back End Developer

Владимир  Хованец
Подключение платежных систем в CMS 1C-Битрикс

Если ваш проект связан с электронной коммерцией, возникает вопрос, каким образом можно принимать оплаты от онлайн-покупателей. Наложенный платеж все еще пользуется популярностью, но далеко не везде и всегда его возможно использовать. Да и как покупателю гораздо удобнее  оплатить товары и услуги онлайн, так и продавцу получить и проконтролировать оплату через интернет-эквайринг. Давайте разберемся, как же это все может работать.

Что нужно знать об онлайн-оплате?

Для начала давайте узнаем, что такое интернет-эквайринг и каким он бывает. Если посмотреть на определение Википедии, мы увидим следующее:

Интернет-эквайринг (англ. «internet acquiring») — это технология, являющаяся разновидностью эквайринга, позволяющая принимать к оплате банковские карты через Интерне

То есть, внедряя его у себя, вы обретаете возможность получать оплаты от ваших покупателей сразу после оформления заказа. И не только получать, но и автоматически фиксировать их, а также автоматически переводить заказ в нужный статус, передавать эти данные в вашу 1С или другую учетную систему  при необходимости.

Причем, платежную форму пользователю можно выводить как на странице процессингового сервиса, так и на вашем же сайте. Во втором случае для этого понадобится дополнительно обзавестись сертификатом PCI DSS, а также провести более сложное, индивидуальное внедрение по работе с API платежного сервиса. Получить сертификат PCI DSS совсем не просто и если вы задались целью его получить, скорее всего, вы и так знаете все тонкости по принципам работы интернет эквайринга ☺

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

Разберем, общий алгоритм работы каждого из этих типов.

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

При двухэтапной оплате, средства на счету покупателя сначала «авторизируются». Со стороны пользователя все идет таким же образом, как и при одноэтапной оплате, но в результате деньги со счета покупателя не списываются, а блокируются у него на счету. Магазину же приходит сообщение, что средства авторизированы и готовы к списанию. Такой алгоритм позволяет перед тем как провести финансовую операцию удостоверится, что товар (или услуга) может быть предоставлена. 

На моём опыте, такой механизм понадобился на проекте по продаже авиабилетов. Бывают ситуации, когда забронированный билет не может быть выписан. В то же время, перед выпиской нужно быть уверенным, что он оплачен. Чтобы не терять время на возврат денежных средств, так как в данном случае потеря нескольких дней, а то и часов может быть критична, проведение оплаты в 2 этапа не имеет альтернатив – сначала проводится авторизация средств, затем выписка билетов и следом производится запрос на списание (capture), ранее авторизированной суммы.

Рекуррентный платеж является платежом «по подписке» - то есть, пользователь его подключает, а далее, средства списываются с его счета автоматически через заданный промежуток времени.

Интеграция платежной системы

CMS 1C-Битрикс, в свою очередь, обладает всем необходимым, чтобы работать с электронными платежами и позволяет провести внедрение системы любой сложности. Рассмотрим способы подключения эквайринга к вашему сайту:

Способ первый: стандартный обработчик от платежной системы.

В Маркетплейсе 1С-Битрикс можно найти стандартное решение для почти любой платежной системы.

unnamed.png

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

Их подключение довольно просто, они довольно универсальны, то есть написаны таким образом, что при установке и настройке могут в кратчайшие сроки быть запущенными в «боевом» режиме. Все что нужно – заключить договор с понравившимся оператором интернет-эквайринга, получить необходимые ключи для идентификации продавца на стороне оператора платежей, установить нужный обрабочик платежной системы и внести в него нужные настройки (ну и не забыть протестировать).

Есть у них и недостатки: как правило, они реализуют только простейший одноэтапный способ оплаты. Также, не всегда из коробки они «умеют» выставлять оплате нужный статус.

Если по какой-то причине в маркетплейсе нет обработчика нужного вам сервиса, есть второй способ: его можно создать средствами Bitrix Framework. Правда, для того, чтобы это сделать нужны навыки программирования.

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

Что необходимо сделать разработчику

Углубимся в детали, как это делается со стороны битрикса:

На стороне битрикса, сторонние обработчики платежных систем, по умолчанию, следует складывать в папку «/bitrix/php_interface/include/sale_payment/». В ней нужно создать папку для вашего обработчика, а в этой папке могут присутствовать следующие файлы и папки:

  • handler.php – собственно, сам обработчик. Он формирует параметры редиректа на страницу платежной системы в соответствии с API. На его стороне следует реализовать получение и обработку запросов платежной системы.

  • .decription.php – файл с описанием полей настроек платежной системы. В нем задается массив, описывающий поля этих настроек. unnamed (1).png

  • Необязательная подпапка template, а в ней файл template.php, который может содержит шаблон платежной системы, который будет содержать ссылку (или форму) для редиректа пользователя на платежную систему, и будет показан пользователю после оформления заказа.

  • Необязательная подпапка lang, содержащая наборы текстовых описаний – стандартная механика многоязычности в Битриксе.

  • Другие подпапки и файлы, которые могут понадобится для внедрения той или иной платежной системы с точки зрения разработчика

После реализации интеграции, нужно на странице «/bitrix/admin/sale_pay_system.php» добавить обработчик нужной платежной системы и внестив него нужные настройки:

unnamed (2).png

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

unnamed (3).png

А в его настройки подтянутся описанные вами в файле .description.php настройки:

unnamed (4).png

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

Реализация платежной формы на сайте

Наиболее сложным и затратным по времени является реализация платежной формы на стороне сайта.

Делать её стоит тогда, когда по-другому — никак, либо когда конверсия от данной реализации перекрывает все затраты на неё. 

Во-первых, как уже писалось выше, для того, чтобы начать с ней работать, нужно получить сертификат PCI DSS.

Во-вторых, технической реализации необходимо уделить особое внимание, чтобы ни в коем случае данные платежных карт ваших покупателей не оказались в руках злоумышленников. Нужно как следует подумать, кому можно поручить реализацию подобной системы. У вас должна быть уверенность в квалификации и добросовестности вашего технического специалиста.

В-третьих, такая реализация требует постоянного контроля, даже (и особенно), после запуска системы в боевом режиме.

Если же вы взвесили все за и против и решили, что вам необходима платежная форма на вашем сайте, общая схема работы её такова:

Пользователь оформляет заказ, после (или во время) чего ему выводится платежная форма такого вида:

unnamed (5).png

Он её заполняет и отправляет, после чего на стороне сервера, с помощью методов API платежной системы инициализируется платежная сессия – отправляются данные о заказе, такие как его ID, стоимость, данные карты. В случае успеха возвращаются либо данные для 3DS верификации, либо, если платежная карта не имеет 3DS верификации, признак успешной операции или сообщение об ошибке.

3DS верификация у разных процессингов проходит по разному. Одни делают большую часть работы сами и все, что нужно – перенаправить пользователя на ссылку, полученную от процессинга, другие присылают параметры, из которых необходимо составить форму, отправка которой перенаправит пользователя на специальную страницу банка-эквайера платежной карты. После того, как на этой странице пользователь пройдет верификацию, он будет возвращен на сайт с POST параметром, который необходимо отправить для завершения 3DS верификации.

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

Срок, на который средства могут быть заблокированы при двухэтапной оплате составляет до 30 дней, однако может быть меньше у разных процессингов. Если за этот срок не было произведено списание либо отмена блокировки – они автоматически будут разблокированы и вернутся покупателю.

Интегрируйте и получайте оплаты

Вот, фактически, и все, что необходимо знать об интеграции вашего сайта  с платежной  системой. Конечно, на практике разработчик решает еще множество смежных вопросов и налаживает бесперебойный процесс принятия оплат. Ведь если эта опция присутствует на сайте, но по каким-либо причинам не работает (или работает некорректно), покупателей это сердит и отпугивает. Поэтому если вам нужна интеграция, не стесняйтесь обратится в компанию Авиви. Мы способны быстро и качественно привязать любую платежную систему к вашему сайту на 1С-Битрикс и помочь вашему онлайн-бизнесу бизнесу работать с еще большей отдачей!


Похожие статьи

Записаться на консультацию

Мы свяжемся с вами в течении 10 минут