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. Возможно, нужный вам плагин для приема оплаты средств уже существует. Так ли это, можно проверить тут.
0 комментариев