Способы оплаты
Способы оплаты, они же платежные системы, добавляются в панели администратора сайта.
Здесь можно добавить новый способ оплаты или отредактировать имеющийся.
Кроме обычных полей с настройкой способа оплаты, важными являются поля:
Название | поле будет показываться покупателю вместе с кнопкой выбора этого способа оплаты |
Обработчик | здесь надо указать файл обработчика относительно шаблона сайта, который генерирует кнопку или ссылку для оплаты |
Кнопки Квитанция Сбербанка и Счет для оплаты через банк формируются автоматически, для них достаточно минимум информации в шаблоне. Для вызова кнопки типа Яндекс Деньги или другой платежной системы требуется указание формы в обработчике, где можно указать все необходимые параметры покупки и сайта.
Пример обработчика Квитанция Сбербанка:
<a href="{$page.link_sberbank}" {if !empty($pay.new_window)}target="_blank"{/if} class="btn">{$pay.title}</a>
{if !empty($pay.description)}
<br><small>{$pay.description}</small>
{/if}
Для добавления специфических полей в обработчик, используйте Характеристики внизу страницы. Где задается название по-русски, код латиницей для передачи в ключе массива и значение.
В обработчике доступны следующие переменные:
{$pay.title} | Название способа оплаты (обычно указывается в кнопке) |
{$pay.description} | Описание к способу оплаты |
{$pay.new_window} | Метка открытия в новом окне |
{$page.link_sberbank} | Ссылка на автоматически формируемый бланк Квитанции Сбербанка |
{$page.link_invoice} | Ссылка на автоматически формируемый бланк Счета для оплаты через банк |
{$pay.options.key.value} | Характеристика с кодом key (значение) |
{$pay.options.key.title} | Характеристика с кодом key (Название) |
Информация о заказе:
{$page.order.order_id} | Номер заказа |
{$page.order.order_id|chunk:4:"-"} | Отформатированный номер заказа |
{$page.order.total_summ} | Общая сумма заказа |
{$page.order.currency} | Валюта заказа (rur, euro, usd) |
{$page.order.fio} | Имя покупателя |
{$page.order.address} | Адрес покупателя |
{$page.order.email} | Эл.почта покупателя |
{$page.order.created} | Дата создания заказа |
Входящее уведомление об оплате
Для регистрации оплаты от платежной системы должен прийти запрос по протоколу https. Если сайт не работает по протоколу https, то запрос обрабатываться не будет.
Реализованы уведомления о платежах Яндекс.Кассы (протокол)
Адрес для уведомлений | https://сайт/module/get_payment.php |
Автоматические страницы статуса платежа
Успешная оплата | /order/pay/success/ |
Ошибка | /order/pay/fail/ |
Платеж отменен | /order/pay/cancel/ |
Кастомизация скрипта оплаты
Можно создать свой скрипт оплаты. Для этого нужно создать php файл, где можно получить нужные настройки активного способа оплаты из админки, и далее использовать их в обработчике.
Далее показан пример такого скрипта с описанием элементов массива:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/module/prolog.php");/* получение по ID способа оплаты */
$payment = $site->get_payment_by_id(1);/* получение по свойству способа оплаты */
$code = 'code';
$value = 'kassa';
$payment = $site->get_payment_by_option($code, $value);
/* полученный массив способа оплаты */
/*
Array
(
[id] => 1
[title] => Яндекс Касса
[description] => Оплата картами VISA, MasterCard, МИР и Яндекс Деньги
[price_min] => 0
[price_max] => 0
[currency] => rur
[what_todo] => payments/ya_money.html
[encoding] => utf-8
[new_window] => 1
[options] => Array(
[code] => Array(
[id] => 372
[value] => Номер витрины магазина в ЦПП (scid)
[value2] => 1
)
)*/
/*
далее ваш обработчик
*/?>