// /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();
Официальная справка по кастомизации платежной системы и кастомизации шаблона платежной системы.
Отправьте заявку нашим специалистам