Проверка статуса оплаты по номеру заказа в CMS Битрикс

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

Как в CMS Битриксе проверить статус оплаты по номеру заказа через API

Ниже приведен пример кода, который можно использовать для проверки статуса оплаты заказа:

<?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 не оплачен.";
}
?>

Пояснение обработки:

  1. Подключение ядра Битрикс: Выполняется в начале с помощью include prolog_before.php, чтобы загрузить все необходимые классы и функции системы.
  2. Подключение модуля "sale": Это необходимо, так как именно модуль интернет-магазина отвечает за работу с заказами.
  3. Загрузка заказа: С помощью метода Order::load() загружаем объект заказа по его ID.
  4. Проверка статуса оплаты: Метод $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.

Теги:  проверка статуса оплаты, 1С-Битрикс, CMS Битрикс, статус оплаты заказа, номер заказа, обработка заказов, API Битрикс, e-commerce, веб-разработка, PHP примеры.


Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Интернет-магазин на готовом решении

от 7 дней

от 40 000 рублей
запуск сайта в максимально короткие сроки

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.

Техническая поддержка

выполняется с сайтами на основе любых CMS

от 5 000 рублей
Оптимизация производительности действующих интернет-проектов, наполнение и сопровождение, полная техническая поддержка и продвижение в поисковых сетях.

* стоимость зависит от объема и сложности выполняемых работ, используемой CMS.

Участие в проекте

привлечение в проект на part-time основе

от 20 000 рублей / неделя

Возможно участие в проекте на ежедневной основе, как разработчика. Занятость - до 20 часов в неделю
Минимальный срок - одна неделя.

* сумма фиксированная