• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/payment.php
  • Класс: BitrixSalePayment
  • Вызов: Payment::add
private function add()
{
	$result = new Result();

	$registry = Registry::getInstance(static::getRegistryType());
	/** @var OrderHistory $orderHistory */
	$orderHistory = $registry->getOrderHistoryClassName();

	if ($this->getOrderId() === 0)
	{
		$this->setFieldNoDemand('ORDER_ID', $this->getOrder()->getId());
	}

	$r = $this->addInternal($this->getFields()->getValues());
	if (!$r->isSuccess())
	{
		$orderHistory::addAction(
			'PAYMENT',
			$this->getOrderId(),
			'PAYMENT_ADD_ERROR',
			null,
			$this,
			["ERROR" => $r->getErrorMessages()]
		);

		$result->addErrors($r->getErrors());
		return $result;
	}

	$id = $r->getId();
	$this->setFieldNoDemand('ID', $id);
	$result->setId($id);

	$this->setAccountNumber($id);

	$orderHistory::addAction(
		'PAYMENT',
		$this->getOrderId(),
		'PAYMENT_ADDED',
		$id,
		$this
	);

	return $result;
}