• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/cashboxrobokassa.php
  • Класс: BitrixSaleCashboxCashboxRobokassa
  • Вызов: CashboxRobokassa::onAfterProcessCheck
protected function onAfterProcessCheck(SaleResult $result, SalePayment $payment): SaleResult
{
	$onAfterProcessCheckResult = new SaleResult();

	$checkList = CheckManager::getList([
		'select' => ['ID'],
		'filter' => [
			'ORDER_ID' => $payment->getOrder()->getId(),
		],
	])->fetchAll();

	if ($checkList)
	{
		$statuses = $result->getData();
		foreach ($statuses as $key => $status)
		{
			$resultCode = (int)$status['Code'];
			if ($resultCode === 0)
			{
				continue;
			}

			switch ($resultCode)
			{
				case 1:
					$onAfterProcessCheckResult->addError(new MainError(MainLocalizationLoc::getMessage('SALE_CASHBOX_ROBOKASSA_PRINT_ERROR_WAIT')));
					break;

				case 2:
					$status['CheckId'] = $checkList[$key]['ID'];
					$applyCheckResult = static::applyCheckResult($status);
					if (!$applyCheckResult->isSuccess())
					{
						$onAfterProcessCheckResult->addErrors($applyCheckResult->getErrors());
					}
					break;

				case 3:
					$onAfterProcessCheckResult->addError(new MainError(MainLocalizationLoc::getMessage('SALE_CASHBOX_ROBOKASSA_STATUS_ERROR_REGISTER')));
					break;

				default:
					$onAfterProcessCheckResult->addError(new MainError(MainLocalizationLoc::getMessage('SALE_CASHBOX_ROBOKASSA_STATUS_ERROR_PROCESSING')));
					break;
			}
		}
	}
	else
	{
		$onAfterProcessCheckResult->addError(new MainError(MainLocalizationLoc::getMessage('SALE_CASHBOX_ROBOKASSA_CHECK_NOT_FOUND')));
	}

	return $onAfterProcessCheckResult;
}