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

Уявімо, що нам необхідно здійснити інтеграцію з якоїсь абстрактної платіжною системою під назвою "ExpressPay". Для зручності, розділимо процес інтеграції на кілька етапів:

  1. додавання способу оплати в шаблони даних;
  2. реалізація класу платіжної системи;
  3. створення шаблонів виведення форми для переходу в платіжну систему;
  4. настройка оплати в інтернет-магазині.

Додавання способу оплати

Щоб додати свій спосіб оплати, створіть в корені сайту файл з будь-яким ім'ям. Помістіть в нього наступний код і запустите з рядка браузера.

Цей код створює в системі новий об'єкт типу даних "Спосіб оплати" з ім'ям ($ paymentName) ExpressPay. Для об'єкта створюється призначений для користувача клас ($ className) Express. який є розширенням класу payment. Реалізація даного класу наведена нижче.

Перейдіть в модуль Шаблони даних. У списку Способи оплати Ви побачите тільки що доданий тип даних "ExpressPay".

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

Реалізація класу платіжної системи

Створіть новий PHP-файл з назвою "express.php" в папці "/ classes / modules / emarket / classes / payment / systems /". Помістіть в файл опис класу і його методів:

Розглянемо опис класу більш докладно: він повинен бути успадкований від абстрактного класу «payment», ім'я повинно повторювати ідентифікатор типу способу оплати з суфіксом "Payment", обов'язкова присутність методів validate. process і poll.

Метод validate викликається в момент формування списку можливих способів оплати. Він дозволяє заборонити оплату за допомогою платіжної системи, якщо замовлення не задовольняє будь-яким параметрам. Щоб дозволити або заборонити оплату за допомогою платіжної системи метод повинен повернути логічне значення true або false відповідно.

Метод process призначений для формування та відправки даних платіжній системі. Коли користувач вибирає спосіб оплати, метод отримує необхідні для платіжної системи дані (наприклад: логін, пароль, ідентифікатор замовлення), змінює статус замовлення на "инициализирован" і виводить форму для переходу до оплати замовлення.

За допомогою методу poll проводиться обробка відповіді від платіжної системи і виставляється відповідний статус оплати.

Більш докладні приклади реалізації класу платіжної системи можна подивитися в системних файлах інших платіжних систем, які знаходяться в папці "/ classes / modules / emarket / classes / payment / systems" (наприклад: "yandex.php", "rbk.php" і т . Д.).

Створення шаблонів виведення форми для переходу в платіжну систему

Якщо Ви використовуєте TPL-шаблонизатор, то Вам необхідно створити файл "/tpls/emarket/payment/expresspay/default.tpl" (це шаблон виводу форми за замовчуванням) і помістити в нього наступний код:

Для передачі платіжній системі необхідних даних, в формі використовуються hidden поля, значення для цих полів доступні через спеціальні макроси. Наприклад, якщо в методі process в масив даних було додано поле login, то його значення буде доступно через макрос% login%.

При використанні XSLT-шаблонізатора, необхідно додати шаблон форми в файл "/xsltTpls/modules/emarket/purchase/payment.xsl". Найбільш зручно буде зробити в такий спосіб: відкрити даний файл, знайти шаблон для будь-якої платіжної системи, скопіювати і відредагувати його відповідно до Ваших даними. У випадку з нашим прикладом, вийде приблизно наступний код:

У XSLT-шаблонизатор значення для hidden полів доступні через однойменні змінні. Наприклад, в методі process в масив даних було додано поле shop_id, тоді його значення буде доступно через змінну shop_id.

Налаштування оплати в інтернет-магазині

Перейдіть в модуль Інтернет-магазин. на вкладці Оплата наведіть курсор на кнопку Додати спосіб оплати і в випадаючому списку виберіть "ExpressPay". Вкажіть назву способу оплати і заповніть необхідні поля (в нашому випадку - це логін, пароль і ідентифікатор магазину), натисніть кнопку Додати. Тепер користувачі Вашого інтернет-магазину зможуть оплачувати замовлення за допомогою даної платіжної системи.

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

Схожі статті