NovaBuild API. Взаимодействие со сторонними системами оплаты

В момент написания инструкции сборка NovaBuild находилась в версии 0.4.2.79.

1. Демонстрационный плагин Latte

Для демонстрации возможностей API NovaBuild был создан плагин, реализующий прием средств от вымышленной одноименной системы оплаты. Демонстрационный плагин Latte доступен в каталоге.

Инструкция опирается на исходный код плагина Latte и перечисляет ключевые моменты, необходимые для взаимодействия с API NovaBuild.

Инструкция предполагает, что сборка NovaBuild уже установлена.

2. Установка и активация

После копирования файлов плагина Latte в соответствующую директорию (как это сделать правильно — описано в инструкции к плагину), его необходимо активировать.

В момент активации выполняется следующий участок кода:

common/plugins/latte/PluginLatte.class.php

  /**
   * Активация плагина Latte
   */
  public function Activate() {

    /**
     * Добавление записи в таблицу nova_pay_system
     */
    $oPaySystem = Engine::GetEntity('PluginNova_ModulePay_EntityPaySystem');
    $oPaySystem->setKey('latte');
    $oPaySystem->setName('Latte');
    $oPaySystem->setActivation(0);
    $this->PluginNova_Pay_AddOrUpdatePaySystem($oPaySystem);
    return true;

  }


Создается объект системы оплаты, обладающий ключом (latte), названием (Latte) и состоянием активности (неактивен). Информация о системе оплаты заносится в БД.

При деактивации плагина информация о данной системе оплаты будет удалена из БД.

3. Настройка

Для управления системой оплаты Latte необходимо в админ. панели перейти на страницу «Системы оплаты» (Магазин → Системы оплаты).

В общем списке систем оплаты теперь отображается система оплаты Latte. При ее редактировании выполняется следующий участок кода:

common/plugins/latte/classes/actions/ActionAdmin.class.php

  protected function PaySystemLatteEdit($oPaySystem) {
    ...
  }


Функция PaySystemLatteEdit такое название получила по следующей причине. При обращении к странице редактирования системы оплаты NovaBuild вызывает функцию PaySystem<key>Edit, где <key> — это ключ системы оплаты (при этом первая буква ключа преобразуется в верхний регистр).

Для дальнейшей работы с системой оплаты, ее необходимо активировать путем установления галки «Активировать».

4. Установка связи со службой доставки

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

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

5. Invoice (счет)

Допустим, пользователь при оформлении заказа совершил выбор в пользу системы оплаты Latte. В итоге он попадет на страницу просмотра счета. URL страницы будет следующий: /invoice/<invoice_id>/, где <invoice_id> — это ID счета.

При посещении пользователем данной страницы выполнится следующий код:

common/plugins/latte/classes/actions/ActionInvoice.class.php

  /**
   * Срабатывает, когда пользователь запрашивает страницу просмотра счета
   */
  protected function EventInvoice() {
    ...
  }


6. Подтверждение платежа

Система электронных платежей (в нашем случае она является вымышленной и называется Latte) должна послать запрос нашему сайту о том, что пользователь в самом деле оплатил счет. Реализовать это можно следующим образом:

common/plugins/latte/classes/actions/ActionInvoice.class.php

  protected function RegisterEvent() {

    $this->AddEventPreg('/^latte$/i', '/^result$/i', 'EventResult');
    $this->AddEventPreg('/^latte$/i', '/^success$/i', 'EventRedirect');

    ...

  }


Функции EventResult и EventRedirect находятся в этом же файле. Первая отвечает за подтверждение платежа, вторая — служит для переадресации пользователя после совершения оплаты на сайте сторонней системы оплаты на страницу счета.

P.S. Возможно, нужный вам плагин для приема оплаты средств уже существует. Так ли это, можно проверить тут.

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

  • Плагин интеграции с Telegram API
    Выпустил первую версию адаптации библиотеки Telegram Bot API PHP к AltoCMS. В коде плагина выполнены примеры встраивания через хуки, расширения функционала существующих функций (E::ModuleNotify()—>SendTalkNew())...
  • Что с Alto CMS? Да все нормально! Просто жара
    На дворе лето, жара, деловая активность затихает, делать ничего не хочется... И, видя затянувшееся затишье, кто-то может подумать, что действительно все встало и ничего не делается. Но это обманчивое затишье! Сейчас...
  • NovaBuild 0.4.4.94
    NovaBuild 0.4.4.94 исправляет ряд ошибок в предыдущей версии сборки. Для обновления достаточно старые файлы заменить на новые (настоятельно рекомендуется перед обновлением сделать резервную копию сайта). Список...
  • Установка и настройка NovaBuild 0.4
    Оглавление Установка Настройка 1. Категории 2. Атрибуты 3. Группы местоположений 4. Валюта 5. Системы оплаты 6. Службы доставки Наполнение каталога Установка Для установки сборки NovaBuild версии 0.4 необходимо: 1....

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.