Models_Payment

Описание

Класс Models_Payment

Реализует логику взаимодействия с новой системой оплат.

Методы со знаком * содержат хуки

Методы класса

array getPayments() Возвращает все оплаты новой системы.
array|null getPayment() Возвращает оплату по заданному условию.

$payments Models_Payment::getPayment('WHERE `rate` > 0'true);

array|null getPaymentById() Возвращает оплату по её id.
array|null getPaymentByCode() Возвращает оплату по её коду.
array|null getPaymentByPlugin() Возвращает оплату по её плагину.
bool updatePayment() Обновление оплаты.

Метод используется для изменения оплаты системой. Например, при редактировании оплаты через административную панель.
Изменять оплату в плагине рекомендуется напрямую в базе данных.

$result Models_Payment::updatePayment(1002, [
    
'name' => 'Тестовая оплата',
    
'public_name' => 'Тестовая оплата',
    
'activity' => 0,
    
'deliveryMethod' => [3,4,7]
], 
'PLUG688');

bool createCustomPayment() Создаёт пользовательскую оплату (не привязанную к плагину).

$result Models_Payment::createCustomPayment([
    
'name' => 'Тестовая оплата',
    
'public_name' => 'Тестовая оплата',
    
'activity' => 0,
    
'description' => 'Примечание для тестовой оплаты',
    
'rate' => 0,
    
'permission' => 'fiz',
    
'icon' => 'https://mysite.domainzone/uploads/payment.png'
]);

bool addPayment() Создаёт новую оплату (из плагина)

$defaultParams = [
[
'name' => 'stringOption',
'title' => 'Текстовая настройка',
'type' => 'text',
'value' => '',
'tip' => 'Подсказка для текстовой настройки',
],
[
'name' => 'cryptOption',
'title' => 'Шифруемая текстовая настройка',
'type' => 'crypt',
'value' => '',
],
[
'name' => 'checkboxOption',
'title' => 'Чекбокс-настройка',
'type' => 'checkbox',
'value' => false,
],
[
'name' => 'selectOption',
'title' => 'Настройка с выбором',
'type' => 'select',
'value' => 'option1',
'options' => [
[
'name' => 'option1',
'title' => 'Первый вариант',
],
[
'name' => 'option2',
'title' => 'Второй вариант',
],
]
],
[
'name' => 'multiSelectOption',
'title' => 'Настройка с множественным выбором',
'type' => 'multiselect',
'values' => ['option2'],
'options' => [
[
'name' => 'option1',
'title' => 'Первый вариант',
],
[
'name' => 'option2',
'title' => 'Второй вариант',
],
]
],
];

$urls = [
[
'type' => 'info',
'title' => 'Result URL',
'link' => SITE.'/payment?payment=yourpayment&pay=result',
],
[
'type' => 'success',
'title' => 'Success URL',
'link' => SITE.'/payment?payment=yourpayment&pay=success',
],
[
'type' => 'fail',
'title' => 'Fail URL',
'link' => SITE.'/payment?payment=yourpayment&pay=fail',
],
];

$result Models_Payment::addPayment(
    
'payment-example',
    
'Тестовая оплата',
    
'Тестовая оплата',
    
'payment-example',
    
$defaultParams,
    
'https://mysite.domainzone/uploads/payment.png',
    
$urls,
    
0,
    
'yur',
    
true
);

string mergeParams() Задаёт настройкам оплаты новые значения.

$newParamsJson Models_Payment(1066, [
    
'stringOption' => 'Новое значение',
    
'checkboxOption' => true,
    
'multiselectOption' => [option1option2],
]);

string getPaymentsByDeliveryId() Используется при AJAX запросе,
возвращает html список способов оплаты в зависимости от
выбранного способа доставки.
array getDeliveries() Возвращает массив доставок.
string getPaymentForm() Создаёт событие отрисовки формы оплаты для конкретной оплаты.
array getPaymentParams() Возвращает подготовленный список параметров оплаты.
array handleRequest() * Создаёт событие запроса к оплатам. Срабатывает когда от банков приходит вебхук (нотификация), чтобы плагины оплат могли их обработать.
bool loger() Метод записывает лог оплаты. Логи, записанные с использованием этого метода доступны для скачивания в настройках оплаты только пользователям с полным доступом к настройкам.

$url 'api.somebank.domainzone/merchant';
$request = [
'action' => 'getPaymentLink',
'summ' => 17500
];
$response ApiLib::sendRequest($url$request);

$logData = [
'url' => $url,
'request' => $request,
'response' => $response,
];
Models_Payment::loger('payment-example''getPaymentLink'$logData);

bool isLogsExists() Проверка существования логов по коду оплаты.
bool togglePaymentLog() Переключение логирования оплаты.
bool clearLogs() Удаляет логи оплаты.
void downloadLogs() Отправляет на скачивание логи оплаты.
bool disablePayment() Отключает оплату.
bool deletePluginPayment() * Удаляет оплату и отключает / снимает с аренды плагин оплаты.
bool checkPaymentOutdated() Проверка, отосится ли оплата к устаревшей или новой системе.
array getPaymentsIcons() Возвращает иконки оплат новой системы
Описание методов и примеры их использования

Метод

array getPayments (bool $withDeliveries falsebool $decryptParams false)

Параметры

  • $withDeliveries: Если передать true, то каждая оплата будет содержать массив deliveries со списком подключенных к ней способов доставок.
  • $decryptParams: Если передать true, то в массиве параметров оплаты (paramArray) параметры типа "crypt" будут расшифрованы.

Описание

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

Метод

array|null getPayment (string $whereClausestring $decryptParams false)

Параметры

  • $whereClause: SQL условие для выборки оплаты (пишется с WHERE).
  • $decryptParams: Если передать true, то в массиве параметров оплаты (paramArray) параметры типа "crypt" будут расшифрованы.

Описание

Возвращает оплату по заданному условию.

$payments Models_Payment::getPayment('WHERE `rate` > 0'true);

Метод

array|null getPaymentById (int $idstring $decryptParams false)

Параметры

  • $id: Идентификатор оплаты в базе данных
  • $decryptParams: Если передать true, то в массиве параметров оплаты (paramArray) параметры типа "crypt" будут расшифрованы.

Описание

Возвращает оплату по её id.

Метод

array|null getPaymentByCode (string $codestring $decryptParams false)

Параметры

  • $code: Код оплаты в базе данных (уникальный текстовый идентификатор).
  • $decryptParams: Если передать true, то в массиве параметров оплаты (paramArray) параметры типа "crypt" будут расшифрованы.

Описание

Возвращает оплату по её коду.

Метод

array|null getPaymentByPlugin (string $pluginstring $decryptParams false)

Параметры

  • $plugin: Плагин оплаты в базе данных (как правило, название папки плагина).
  • $decryptParams: Если передать true, то в массиве параметров оплаты (paramArray) параметры типа "crypt" будут расшифрованы.

Описание

Возвращает оплату по её плагину.

Метод

bool updatePayment (int $id, array $datastring $pluginCode)

Параметры

  • $id: Идентификатор оплаты в базе данных.
  • $data: Массив с данными для обновления оплаты.
  • Ключ в этом массиве представляет из себя атрибут оплтаы в базе данных, а значение - новое значение для этого атрибута.
  • Ключ logs в этом массиве не изменит значение атрибута logs в базе данных, а включит (если значение - 1) или выключит (если значение - 0) логирование для оплаты.
  • Помимо атрибутов в этом массиве можно, также, передать deliveryMethod - массив с идентификаторами подключенных к оплате способов доставки.
  • $pluginCode: Код плагина из маркетплейса. Необходимо передать при изменении активности оплаты, чтобы ареновать/приостановить аренду соответствующего плагина на SAAS сайте.

Описание

Обновление оплаты.

Метод используется для изменения оплаты системой. Например, при редактировании оплаты через административную панель.
Изменять оплату в плагине рекомендуется напрямую в базе данных.

$result Models_Payment::updatePayment(1002, [
    
'name' => 'Тестовая оплата',
    
'public_name' => 'Тестовая оплата',
    
'activity' => 0,
    
'deliveryMethod' => [3,4,7]
], 
'PLUG688');

Метод

bool createCustomPayment ($data)

Параметры

  • $data: Массив с данными новой оплаты.

Описание

Создаёт пользовательскую оплату (не привязанную к плагину).

$result Models_Payment::createCustomPayment([
    
'name' => 'Тестовая оплата',
    
'public_name' => 'Тестовая оплата',
    
'activity' => 0,
    
'description' => 'Примечание для тестовой оплаты',
    
'rate' => 0,
    
'permission' => 'fiz',
    
'icon' => 'https://mysite.domainzone/uploads/payment.png'
]);

Метод

bool addPayment (string $codestring $namestring $publicNamestring $plugin, array $defaultParamsstring $iconint $logs, array $urlsfloat $ratestring $permission fizbool $disablePayment true)

Параметры

  • $code: Уникальный текстовый идентификатор. Для удобства рекомендуется использовать название папки плагина.
  • $name: Название для менеджера (Отображается в административной панели).
  • $publicName: Название для клиента (Отображается в публичной части сайта).
  • $plugin: Папка плагина.
  • $defaultParams: Массив настроек оплаты с изначальными значениями.
  • $icon: Ссылка на иконку оплаты (Отображается в публичной части сайта).
  • $logs: Поддержка записи логов оплатой (0 - оплата не поддерживает запись логов, 1 - поддерживает).
  • $urls: Массив ссылок оплаты (Отображаются в окне редактировании оплаты).
  • $rate: Наценка/скидка на способ оплаты. Передаётся коэффициент изменения стоимости, т. е. значение 0.1 означает наценку в 10%, а значение -0.05 - скидку в 5%.
  • $permission: Кому доступна оплата. all - всем покупателям, fiz - только физическим лицам, yur - только юридическим лицам.
  • $disablePayment: Флаг отключения оплаты после её создания. Рекомендуем передавать true или значение по умолчанию, чтобы только созданный, но ещё не настроенный способ оплаты не был изначально активен.

Описание

Создаёт новую оплату (из плагина)

$defaultParams = [
[
'name' => 'stringOption',
'title' => 'Текстовая настройка',
'type' => 'text',
'value' => '',
'tip' => 'Подсказка для текстовой настройки',
],
[
'name' => 'cryptOption',
'title' => 'Шифруемая текстовая настройка',
'type' => 'crypt',
'value' => '',
],
[
'name' => 'checkboxOption',
'title' => 'Чекбокс-настройка',
'type' => 'checkbox',
'value' => false,
],
[
'name' => 'selectOption',
'title' => 'Настройка с выбором',
'type' => 'select',
'value' => 'option1',
'options' => [
[
'name' => 'option1',
'title' => 'Первый вариант',
],
[
'name' => 'option2',
'title' => 'Второй вариант',
],
]
],
[
'name' => 'multiSelectOption',
'title' => 'Настройка с множественным выбором',
'type' => 'multiselect',
'values' => ['option2'],
'options' => [
[
'name' => 'option1',
'title' => 'Первый вариант',
],
[
'name' => 'option2',
'title' => 'Второй вариант',
],
]
],
];

$urls = [
[
'type' => 'info',
'title' => 'Result URL',
'link' => SITE.'/payment?payment=yourpayment&pay=result',
],
[
'type' => 'success',
'title' => 'Success URL',
'link' => SITE.'/payment?payment=yourpayment&pay=success',
],
[
'type' => 'fail',
'title' => 'Fail URL',
'link' => SITE.'/payment?payment=yourpayment&pay=fail',
],
];

$result Models_Payment::addPayment(
    
'payment-example',
    
'Тестовая оплата',
    
'Тестовая оплата',
    
'payment-example',
    
$defaultParams,
    
'https://mysite.domainzone/uploads/payment.png',
    
$urls,
    
0,
    
'yur',
    
true
);

Метод

string mergeParams (int $id, array $newParams)

Параметры

  • $id: Идентификатор оплаты в базе данных.
  • $newParams: Массив новых значений настроек. Ключ массива - название настройки, значение в массиве - новое значение настройки.

Описание

Задаёт настройкам оплаты новые значения.

$newParamsJson Models_Payment(1066, [
    
'stringOption' => 'Новое значение',
    
'checkboxOption' => true,
    
'multiselectOption' => [option1option2],
]);

Метод

string getPaymentsByDeliveryId ($deliveryId$customer$nojson false$countDeliv)

Параметры

  • int ID доставки.
  • string Тип покупателя.
  • bool Возвращать верстку или ajax ответ.
  • int Количество доставок.

Описание

Используется при AJAX запросе,
возвращает html список способов оплаты в зависимости от
выбранного способа доставки.

Метод

array getDeliveries ()

Описание

Возвращает массив доставок.

Метод

string getPaymentForm (int $paymentIdint $orderId)

Параметры

  • $paymentId: Идентификатор оплаты в базе данных.
  • $orderId: Идентификатор заказа в базе данных.

Описание

Создаёт событие отрисовки формы оплаты для конкретной оплаты.

Метод

array getPaymentParams (string $codebool $decrypt false)

Параметры

  • $code: Код оплаты (Уникальный строковый идентификатор).
  • $decrypt: Флаг расшифровки параметров типа "crypt".

Описание

Возвращает подготовленный список параметров оплаты.

Метод

array handleRequest ()

Результат работы метода можно изменить хуком: Models_Payment_handleRequest

Описание

Создаёт событие запроса к оплатам. Срабатывает когда от банков приходит вебхук (нотификация), чтобы плагины оплат могли их обработать.

Метод

bool loger (string $codestring $actionМетод записывает $content)

Параметры

  • $code: Код оплаты (Уникальный текстовый идентификатор).
  • $action: Логируемое действие.
  • $content: Логируемые данные. Это может быть как числовое или строковое значение, так и массив или объект.
  • $content: представляет из себя логический тип данных (true/false),
  • лучше преобразовать его в другой, текстовый или числовой перед логированием,
  • иначе в логе он будет отображаться как пустая строка.
  • $content: в лог через print_r.

Описание

Метод записывает лог оплаты. Логи, записанные с использованием этого метода доступны для скачивания в настройках оплаты только пользователям с полным доступом к настройкам.

$url 'api.somebank.domainzone/merchant';
$request = [
'action' => 'getPaymentLink',
'summ' => 17500
];
$response ApiLib::sendRequest($url$request);

$logData = [
'url' => $url,
'request' => $request,
'response' => $response,
];
Models_Payment::loger('payment-example''getPaymentLink'$logData);

Метод

bool isLogsExists (string $code)

Параметры

  • $code: Код оплаты (Уникальный текстовый идентификатор).

Описание

Проверка существования логов по коду оплаты.

Метод

bool togglePaymentLog (string $codebool $active)

Параметры

  • $code: Код оплаты (Уникальный текстовый идентификатор).
  • $active: Флаг активности логирования. true - включить логирование, false - отключить.

Описание

Переключение логирования оплаты.

Метод

bool clearLogs (string $code)

Параметры

  • $code: Код оплаты (Уникальный текстовый идентификатор).

Описание

Удаляет логи оплаты.

Метод

void downloadLogs (string $code)

Параметры

  • $code: Код оплаты (Уникальный текстовый идентификатор).

Описание

Отправляет на скачивание логи оплаты.

Метод

bool disablePayment ($id)

Параметры

  • $id: Идентификатор оплаты в базе данных.

Описание

Отключает оплату.

Метод

bool deletePluginPayment (string $codestring $pluginCode)

Параметры

  • $code: Код оплаты (Уникальный текстовый идентификатор).
  • $pluginCode: Код плагина из маркетплейса.

Результат работы метода можно изменить хуком: Models_Payment_deletePluginPayment

Описание

Удаляет оплату и отключает / снимает с аренды плагин оплаты.

Метод

bool checkPaymentOutdated (int $id)

Параметры

  • $id: Идентификатор оплаты в базе данных.

Описание

Проверка, отосится ли оплата к устаревшей или новой системе.

Метод

array getPaymentsIcons ()

Описание

Возвращает иконки оплат новой системы