_deal; } /** * Проверяет, были ли установлены данные о сделке * @return bool True если данные о сделке были установлены, false если нет */ public function hasDeal() { return !empty($this->_deal); } /** * Устанавливает данные о сделке, в составе которой проходит платеж. * @param CaptureDealData|array|null $value Данные о сделке, в составе которой проходит платеж * * @throws InvalidPropertyValueTypeException Выбрасывается если переданные данные не удалось интерпретировать как метаданные платежа */ public function setDeal($value) { if ($value === null || (is_array($value) && empty($value))) { $this->_deal = null; } elseif ($value instanceof CaptureDealData) { $this->_deal = $value; } elseif (is_array($value)) { $this->_deal = new CaptureDealData($value); } else { throw new InvalidPropertyValueTypeException( 'Invalid deal value type in CreateCaptureRequest', 0, 'CreateCaptureRequest.deal', $value ); } } /** * Валидирует объект запроса * @return bool True если запрос валиден и его можно отправить в API, false если нет */ public function validate() { 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() { return new CreateCaptureRequestBuilder(); } }