_paymentId; } /** * Устанавливает айди платежа для которого создаётся возврат * @param string $value Айди платежа * * @throws EmptyPropertyValueException Выбрасывается если передано пустое значение айди платежа * @throws InvalidPropertyValueException Выбрасывается если переданное значение является строкой, но не является * валидным значением айди платежа * @throws InvalidPropertyValueTypeException Выбрасывается если передано значение не валидного типа */ public function setPaymentId($value) { if ($value === null || $value === '') { throw new EmptyPropertyValueException( 'Empty payment id value in CreateRefundRequest', 0, 'CreateRefundRequest.paymentId' ); } elseif (TypeCast::canCastToString($value)) { $length = mb_strlen($value, 'utf-8'); if ($length != 36) { throw new InvalidPropertyValueException( 'Invalid payment id value in CreateRefundRequest', 0, 'CreateRefundRequest.paymentId', $value ); } $this->_paymentId = (string)$value; } else { throw new InvalidPropertyValueException( 'Invalid payment id value type in CreateRefundRequest', 0, 'CreateRefundRequest.paymentId', $value ); } } /** * Возвращает комментарий к возврату или null, если комментарий не задан * @return string Комментарий к операции возврата, основание для возврата средств покупателю. */ public function getDescription() { return $this->_description; } /** * Проверяет задан ли комментарий к создаваемому возврату * @return bool True если комментарий установлен, false если нет */ public function hasDescription() { return $this->_description !== null; } /** * Устанавливает комментарий к возврату * @param string $value Комментарий к операции возврата, основание для возврата средств покупателю * * @throws InvalidPropertyValueTypeException Выбрасывается если была передана не строка */ public function setDescription($value) { if ($value === null || $value === '') { $this->_description = null; } elseif (TypeCast::canCastToString($value)) { $this->_description = (string)$value; } else { throw new InvalidPropertyValueTypeException( 'Invalid description value type in CreateRefundRequest', 0, 'CreateRefundRequest.description', $value ); } } /** * Устанавливает transfers (массив распределения денег между магазинами) * @param SourceInterface[]|array $value */ public function setSources($value) { if (!is_array($value)) { $message = 'Sources must be an array of SourceInterface'; throw new InvalidPropertyValueTypeException($message, 0, 'CreateRefundRequest.sources', $value); } $sources = array(); foreach ($value as $item) { if (is_array($item)) { $item = new Source($item); } if (!($item instanceof SourceInterface)) { $message = 'Source must be instance of SourceInterface'; throw new InvalidPropertyValueTypeException($message, 0, 'CreateRefundRequest.sources', $value); } $sources[] = $item; } $this->_sources = $sources; } /** * @return SourceInterface[] */ public function getSources() { return $this->_sources; } /** * @return bool */ public function hasSources() { return !empty($this->_sources); } /** * Валидирует текущий объект запроса * @return bool True если текущий объект запроса валиден, false если нет */ public function validate() { if (!parent::validate()) { return false; } if (empty($this->_paymentId)) { $this->setValidationError('Payment id not specified'); return false; } return true; } /** * Возвращает билдер объектов текущего типа * @return CreateRefundRequestBuilder Инстанс билдера запрсов */ public static function builder() { return new CreateRefundRequestBuilder(); } }