Bitrix

1С-Битрикс. Из чего состоит обработчик платежной системы

Вероятно, возможен случай, когда Битрикс-разработчику приходится писать свой обработчик платежной системы. Правда представить себе этот случай сложно, поскольку Битрикс богат предустановленными обработчиками платежных систем: там и Яндекс-деньги, там и Webmoney, там и Assist. Но все же, наверное, в каких-то случаях нужно написать свой или скорректировать системный. В этом посте мы с вами попытаемся разобраться как подступиться к этой задаче.

Что если требуется изменить стандартный обработчик?

Для этого нужно взять стандартный обработчик из папки /bitrix/modules/sale/payment  и скопировать в /bitrix/php_interface/include/sale_payment/ . После чего провести изменение файлов обработчика.

 

Из каких файлов состоит обработчик платежной системы?

payment.php — Этот файл подключается на последнем шаге оформления заказа и служит для вывода квитанции на оплату, либо для вывода формы для отправления на мерчант-сервер (это например для Webmoney).

.description.php  — Файл для задания констант платежной системы. Описанные в файле константы можно получать в файле payment.php с помощью CSalePaySystemAction::GetParamValue() .

result.php — Скрипт, который осуществляет запрос к серверу платежной системы, чтобы узнать оплатил клиент или нет. Этот файл может отсутствовать в случае, когда этот факт узнать невозможно.

result_rec.php — обработчик результата оплаты в публичной части.

 

И, конечно, в папке с обработчиком может присутствовать папка lang с локализациями обработчика.

 

Сделаем простейший обработчик.

Предположим, что нам по какой-то причине понадобился обработчик оплаты, который бы просто выводил сумму заказа с просьбой ее оплатить. В этом случае нам очевидно понадобятся создать файлы .description.php и payment.php . С целью еще больше упростить решение локализацию делать не будем.

Сперва нужно создать папку /bitrix/php_interface/include/sale_payment/test_ps/ и создать там 2 файла:

// файл .description.php

<?if (!defined(«B_PROLOG_INCLUDED») || B_PROLOG_INCLUDED !== true) die();?>

<?

$psTitle = «Тестовый обработчик платежной системы»;
$psDescription = «Выводит сумму и просит оплатить!»;

$arPSCorrespondence = array(

      "PRICE" => array(
            "NAME" => "Цена",
            "DESCR" => "Указываем откуда взять цену",
            "VALUE" => "PRICE",
            "TYPE" => "ORDER"
         ),

);
?>

 

// файл payment.php

<?if (!defined(«B_PROLOG_INCLUDED») || B_PROLOG_INCLUDED !== true) die();?>

Пожалуйста, оплатите <?=CSalePaySystemAction::GetParamValue(«PRICE»)?> рублей.

 

Вот и все в общем-то. Надеюсь, что кому-то будет полезна эта информация.

 

Отставить комментарий

Ваш электронный адрес не будет опубликован.Обязательные для заполнения поля отмечены *

10 + 11 =