Файлы обработчика располагаются по адресу:
Важное замечание
// /bitrix/php_interface/include/sale_payment/<НАЗВАНИЕ ПС>/Пример простого вывода одной оплаты
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
use \Bitrix\Main,
Bitrix\Sale;
$ORDER_ID=trim($_GET["ORDER_ID"]);
if(empty($ORDER_ID)){
die('Неизвестный заказ!');
}
Bitrix\Main\Loader::includeModule("sale");
$order = Sale\Order::loadByAccountNumber($ORDER_ID);
$paymentCollection = $order->getPaymentCollection();
$onePayment = $paymentCollection[0];
$service = Sale\PaySystem\Manager::getObjectById($onePayment->getPaymentSystemId());
$context = \Bitrix\Main\Application::getInstance()->getContext();
$initResult = $service->initiatePay($onePayment, $context->getRequest(), \Bitrix\Sale\PaySystem\BaseServiceHandler::STRING);
echo $initResult->getTemplate();
Если в заказе несколько оплат, то их можно вывести в цикле:
// выведем все оплаты заказа в цикле
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
use \Bitrix\Main,
Bitrix\Sale;
$ORDER_ID=trim($_GET["ORDER_ID"]);
if(empty($ORDER_ID)){
die('Неизвестный заказ!');
}
Bitrix\Main\Loader::includeModule("sale");
$order = Sale\Order::loadByAccountNumber($ORDER_ID);
$paymentCollection = $order->getPaymentCollection();
echo 'У заказа '.$ORDER_ID.' есть '.count($paymentCollection ).' оплаты
';
foreach($paymentCollection as $payment){
$service = Sale\PaySystem\Manager::getObjectById($payment->getPaymentSystemId());
$context = \Bitrix\Main\Application::getInstance()->getContext();
$initResult = $service->initiatePay($payment, $context->getRequest(), \Bitrix\Sale\PaySystem\BaseServiceHandler::STRING);
$buffered_output = $initResult->getTemplate();
echo 'Оплата № '.$payment->getField('ACCOUNT_NUMBER').' на '.$payment->getSum();
echo (strlen($buffered_output)<2) ? '
**Кнопки нет' : $buffered_output;
echo '
';
}
Важное замечание
При вызове шаблон платежной системы нужно подключать с помощью require(), а не require_once(). В последнем случае платежная система выведет результат только один раз.
Полезные дополнения
// проверка оплачен ли заказ - true или false $paymentCollection->isPaid(); // оплаченная сумма $paymentCollection->getPaidSum(); // оплачена хотя бы одна оплата $paymentCollection->hasPaidPayment(); // сумма к оплате $payment->getSum(); // название платежной системы $payment->getPaymentSystemName();
Официальная справка по кастомизации платежной системы и кастомизации шаблона платежной системы.
Отправьте заявку сейчас
