Как можно сделать оплату заказа по его ID в Bitrix?

Добрый день, можно ли реализовать такое и как это лучше сделать?

Страничку с полем ввода номера заказа и если заказ найдет, предоставить возможность выбрать каким способом его можно оплатить и соответственно оплатить его в дальнейшем?
  • Вопрос задан
  • 9630 просмотров
Решения вопроса 1
вывести обработчик оплаты на страницу можно таким образом
$orderObj = Sale\Order::load($order['ORDER']['ID']);
												$paymentCollection = $orderObj->getPaymentCollection();
												$payment = $paymentCollection[0];
												$service = Sale\PaySystem\Manager::getObjectById($payment->getPaymentSystemId());
												$context = \Bitrix\Main\Application::getInstance()->getContext();
												$service->initiatePay($payment, $context->getRequest());


Можно вывести компонентом

<?$APPLICATION->IncludeComponent(
    "bitrix:sale.order.payment",
    "",
    Array(
    )
);?>


Но судя по коду компонента он выполняет примерно тоже, что код выше

Если хотите вывести с шаблоном сайта, то можно так сделать через буферизацию
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$APPLICATION->SetTitle("Оплата заказа");
ob_start();
?>
<?$APPLICATION->IncludeComponent(
    "bitrix:sale.order.payment",
    "",
    Array(
    )
);?>
<?
$formPay = ob_get_contents();
ob_end_clean();
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
$APPLICATION->SetTitle("Оплата заказа");
?>
<div class="formPayment">
<?
echo $formPay;
?>
</div>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Вот очень простой способ: CSaleOrder::PayOrder($orderId, "Y");
При этом в документации bitrix про него написано как устаревший метод. Так же рекомендуется использовать Order

Кто знает как то же сделать через Order отпишитесь в комментариях пожалуйста.
Ответ написан
Сделать можно всё (практически). Вы уже хоть как-то сами пробовали? У нового магазина есть более-менее апи. Со старым всё хуже.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы