В 1С-Битрикс статус оплаты заказа можно получить с помощью модуля работы с интернет-магазином и API. Для проверки статуса оплаты по номеру заказа используется класс \Bitrix\Sale\Order.

Ниже приведен пример кода, который можно использовать для проверки статуса оплаты заказа:
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
use Bitrix\Main\Loader;
use Bitrix\Sale\Order;
// Подключаем необходимые модули
if (!Loader::includeModule("sale")) {
die("Модуль Интернет-магазин не установлен");
}
// Получаем ID заказа (номер заказа)
$orderId = 123; // Укажите нужный номер заказа
// Загружаем заказ
$order = Order::load($orderId);
if (!$order) {
die("Заказ с ID $orderId не найден");
}
// Получаем статус оплаты
$isPaid = $order->isPaid();
if ($isPaid) {
echo "Заказ №$orderId оплачен.";
} else {
echo "Заказ №$orderId не оплачен.";
}
?>
Пояснение обработки:
- Подключение ядра Битрикс: Выполняется в начале с помощью include
prolog_before.php
, чтобы загрузить все необходимые классы и функции системы. - Подключение модуля "sale": Это необходимо, так как именно модуль интернет-магазина отвечает за работу с заказами.
- Загрузка заказа: С помощью метода
Order::load()
загружаем объект заказа по его ID. - Проверка статуса оплаты: Метод
$order->isPaid()
возвращаетtrue
, если заказ оплачен, иfalse
, если нет.
Важные моменты:
- Если заказ не найден (например, по указанному номеру), метод
Order::load()
вернётnull
. Это нужно правильно обработать в коде. - Учитывайте, что номер заказа (в видимом интерфейсе) может не совпадать с его внутренним идентификатором в базе данных. Если используется кастомная нумерация заказа, уточните формат хранения.
Если вы хотите дополнить проверку данными о платёже, используйте коллекцию платежей, связанную с заказом:
$paymentCollection = $order->getPaymentCollection();
foreach ($paymentCollection as $payment) {
if ($payment->isPaid()) {
echo "Платёж с ID {$payment->getId()} по заказу №$orderId проведён.";
} else {
echo "Платёж с ID {$payment->getId()} по заказу №$orderId не проведён.";
}
}
Этот подход полезен, если у вас может быть несколько платежей, привязанных к одному заказу.
Пример расширенного ответа через REST API:
Если нужен доступ к статусу оплаты через HTTP-запрос, нужно настроить кастомный REST-обработчик (/bitrix/services/rest/
или отдельный PHP-скрипт) и вернуть данные, например, в формате JSON.