_deal; } /** * Проверяет, были ли установлены данные о сделке. * * @return bool True если данные о сделке были установлены, false если нет */ public function hasDeal(): bool { return !empty($this->_deal); } /** * Устанавливает данные о сделке, в составе которой проходит платеж. * * @param null|array|CaptureDealData $deal Данные о сделке, в составе которой проходит платеж * * @throws InvalidPropertyValueTypeException Выбрасывается если переданные данные не удалось интерпретировать как метаданные платежа */ public function setDeal(mixed $deal): self { $this->_deal = $this->validatePropertyValue('_deal', $deal); return $this; } /** * Валидирует объект запроса. * * @return bool True если запрос валиден и его можно отправить в API, false если нет */ public function validate(): bool { if ($this->hasAmount()) { $value = $this->getAmount()?->getValue(); if (empty($value) || $value <= 0.0) { $this->setValidationError('Invalid amount value: ' . $value); return false; } } if ($this->hasReceipt() && $this->getReceipt()?->notEmpty()) { $email = $this->getReceipt()?->getCustomer()?->getEmail(); $phone = $this->getReceipt()?->getCustomer()?->getPhone(); if (empty($email) && empty($phone)) { $this->setValidationError('Both email and phone values are empty in receipt'); return false; } } return true; } /** * Возвращает билдер объектов запросов на подтверждение оплаты. * * @return CreateCaptureRequestBuilder Инстанс билдера */ public static function builder(): CreateCaptureRequestBuilder { return new CreateCaptureRequestBuilder(); } }