В 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.
Похожие статьи
В современных веб-приложениях часто требуется определять геолокацию пользователя по его IP-адресу. В «1С-Битрикс: Управление сайтом» для этого предусмотрен функционал в пространстве имён \Bitrix\Main\Service\GeoIp
. Ниже мы рассмотрим, как настроить и использовать этот сервис на практике, а также ...
Класс CurrencyLangTable отвечает за работу с таблицей, в которой хранятся языкозависимые параметры валют в системе 1С-Битрикс. Он предоставляет функционал для получения, добавления, изменения и удаления записей (данных о формате валюты на разных языках). Является наследником класса Bitrix\M...
Функция AddMessage2Log()
предназначена для записи сообщений (логирования)
в специальный журнал системы 1С-Битрикс. Она может использоваться для отладки, отслеживания ошибок и
других служебных целей. В результате вызова данной функции соответствующие данные заносятся в лог-файл,
который по у...
Небольшая обзорная статья по Битрикс D7. Сначала идёт развернутое описание и сравнение со старым ядром, затем приводятся примеры использования.
Класс CurrencyTable предназначен для работы с таблицей, содержащей данные о валютах в системе «1С-Битрикс». Он управляет операциями чтения, записи, обновления и удаления записей в соответствующей таблице базы данных.
Метод CMain::ThrowException
предназначен для создания и хранения исключения (ошибки) в текущем контексте приложения.
В некоторых фреймворках (например, в 1С-Битрикс) он используется для последующего получения информации об ошибке посредством других методов (например,
через GetException()
). ...
EventManager
- это класс, предназначенный для краткосрочной и долгосрочной регистрации обработчиков событий. Он реализует паттерн Singleton (Одиночка), что означает, что существует только один экземпляр этого класса в приложении. Доступ к этому экземпляру осуществляется через метод getInstanc...
Рассматриваем вариант, когда требуется получить название или путь к шаблону сайта без использования констант, типа SITE_TEMPLATE_PATH, к примеру, из административной части.
В 1С-Битрикс привязка своих почтовых событий при оформлении заказа, покупке, оплате и других действиях реализуется через стандартный функционал почтовых событий и обработчиков событий (событийное API). Это позволяет интегрировать кастомные процессы отправки email или изменять шаблоны уведомлений.
Работа с классом Bitrix\Main\Config\Option в Битрикс D7
Метод Bitrix\Main\Localization\Loc::getDefaultLang($lang)
в Битрикс D7 используется для получения языка по умолчанию, если указанный язык недоступен. Этот метод полезен в многоязычных приложениях, где необходимо обеспечить поддержку нескольких языков и предоставить язык по умолчанию, если запраши...
Описание метода Editor::isHtmlDocument
Метод CIBlockFindTools::GetSectionID
в Bitrix используется для получения идентификатора раздела инфоблока по его коду. Этот метод полезен, когда вам нужно получить ID раздела, зная только его символьный код.
Для получения информации о текущем разделе каталога в компоненте bitrix:catalog в файле section.php
, вы можете использовать классы и методы, предусмотренные инфраструктурой Bitrix. Вот основные шаги и пример кода, как это можно сделать:
В PHP вы не можете напрямую вызывать приватные методы внутри статических методов, поскольку статические методы не имеют контекста экземпляра класса и не могут использовать $this. Однако вы можете создать экземпляр класса внутри статического метода и затем вызвать приватный метод через этот экзе...
В 1С-Битрикс для вывода структуры инфоблока, включая разделы и элементы, в файле .left.menu_ext.php
можно воспользоваться следующей логикой. В данном случае мы предполагаем, что необходимо получить названия и ссылки как для разделов, так и для элементов инфоблока с определённым ID.
Если разделы не создаются при импорте товаров из 1С в CMS Битрикс, это может быть связано с различными причинами. Ниже приведены возможные решения этой проблемы:
Ошибки нехватки памяти в CMS Битрикс могут возникать из-за недостаточного выделения оперативной памяти для выполнения скриптов. Вот основные шаги для выявления и устранения этой проблемы:
Метод wakeUp в Битриксе используется для восстановления объекта сущности на основе данных, которые уже известны. Это позволяет избежать повторного запроса к базе данных, если у вас уже есть данные, например, в виде ассоциативного массива. Давайте разберем, в чем заключается его полезность и как о...