Способы оплаты

Подключение и настройка платежных систем

Способы оплаты, они же платежные системы, добавляются в панели администратора сайта. 

Здесь можно добавить новый способ оплаты или отредактировать имеющийся.

Кроме обычных полей с настройкой способа оплаты, важными являются поля:

Название поле будет показываться покупателю вместе с кнопкой выбора этого способа оплаты
Обработчик здесь надо указать файл обработчика относительно шаблона сайта, который генерирует кнопку или ссылку для оплаты

Кнопки Квитанция Сбербанка и Счет для оплаты через банк формируются автоматически, для них достаточно минимум информации в шаблоне. Для вызова кнопки типа Яндекс Деньги или другой платежной системы требуется указание формы в обработчике, где можно указать все необходимые параметры покупки и сайта.

Пример обработчика Квитанция Сбербанка:

<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             
        )
    )

*/


/*
    далее ваш обработчик
*/

?>