Підключення платіжних систем у CMS Bitrix

21 Травня 2020

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

Back End Developer

Володимир Хованець
Підключення платіжних систем у CMS Bitrix

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

Що потрібно знати про онлайн-оплаті?

Для початку давайте дізнаємося, що таке інтернет-еквайринг і яким він буває. Якщо подивитися на визначення Вікіпедії, ми побачимо наступне:

Інтернет-еквайрінг (англ. «Internet acquiring») — це технологія, що є різновидом еквайрингу, та дозволяє приймати до оплати банківські картки через Інтернеті.

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

Причому, платіжну форму користувачеві можна виводити як на сторінці процесингового сервісу, так і на вашому ж сайті. У другому випадку для цього знадобиться додатково обзавестися сертифікатом PCI DSS, а також провести більш складне, індивідуальне впровадження роботи з API платіжного сервісу. Отримати сертифікат PCI DSS зовсім не просто і якщо ви поставили собі це за мету, швидше за все, ви і так знаєте всі тонкощі з принципів роботи інтернет-еквайрингу.

Ще однією корисною особливістю інтернет-еквайрінгу є те, що оплату можна отримувати в один етап, в два етапи, а також зробити платіж рекурентним.

Розберемо, загальний алгоритм роботи кожного з цих типів.

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

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

З мого досвіду, такий механізм знадобився на проєкті з продажу авіаквитків. Бувають ситуації, коли заброньований квиток не може бути виписаний. У той же час, перед випискою потрібно бути впевненим, що він сплачений. Щоб не втрачати час на повернення грошових коштів, так як в даному випадку втрата кількох днів, а то і годин, може бути критична, проведення оплати в 2 етапи немає альтернатив — спочатку проводиться авторизація засобів, потім виписка квитків і слідом проводиться запит на списання (capture), раніше авторизованої суми.

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

Інтеграція платіжної системи

CMS Bitrix, в свою чергу, володіє всім необхідним, щоб працювати з електронними платежами і дозволяє провести впровадження системи будь-якої складності. Розглянемо способи підключення еквайрингу до вашого сайту:

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

У Маркетплейсі Bitrix можна знайти стандартне рішення для майже будь-якої платіжної системи.

unnamed.png

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

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

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

Якщо з якоїсь причини в маркетплейсі немає обробника потрібного вам сервісу, є другий спосіб: його можна створити засобами Bitrix Framework. Правда, для того, щоб це зробити потрібні навички програмування.

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


Що необхідно зробити розробнику

Заглибимося в деталі, як це робиться зі сторони Bitrix:

Сторонні обробники платіжних систем, за замовчуванням, слід складати в папку «/ bitrix / php_interface / include / sale_payment /». У ній потрібно створити папку для вашого обробника, а в цій папці можуть бути присутніми наступні файли і папки:

  • handler.php — власне, сам обробник. Він формує параметри редиректу на сторінку платіжної системи відповідно до API. На його боці слід реалізувати отримання і обробку запитів платіжної системи.
  • .decription.php — файл з описом полів налаштувань платіжної системи. У ньому задається масив, що описує поля цих налаштувань. unnamed (1).png
  • Необов'язкова підпапка template, а в ній файл template.php, який може містить шаблон платіжної системи, який буде містити посилання (або форму) для редиректу користувача на платіжну систему, і буде показаний користувачеві після оформлення замовлення.
  • Необов'язкова підпапка lang, що містить набори текстових описів — стандартна механіка багатомовності у Bitrix.
  • Інші папки і файли, які можуть знадобиться для впровадження тієї чи іншої платіжної системи з точки зору розробника

Після реалізації інтеграції, потрібно на сторінці «/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 днів, однак може бути менше у різних процесингів. Якщо за цей строк не було проведено списання або скасування блокування — вони автоматично будуть розблоковані і повернуться покупцеві.

Інтегруйте і отримуйте оплати

Ось, власне, і все, що необхідно знати про інтеграцію вашого сайту з платіжною системою. Звичайно, на практиці розробник вирішує ще безліч суміжних питань і налагоджує безперебійний процес прийняття оплат. Адже якщо ця опція присутня на сайті, але з яких-небудь причин не працює (або не функціонує належним чином), покупців це сердитий і відлякує. Тому якщо вам потрібна інтеграція, не соромтеся звернутися в компанію Авіві. Ми здатні швидко і якісно прив'язати будь-яку платіжну систему до вашого сайту на Bitrix і допомогти вашому онлайн-бізнесу бізнесу працювати з ще більшою віддачею!


Схожі статті
Записатись на консультацію

Ми зв'яжемось з Вами протягом 10 хвилин