_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 ); } } /** * Возвращает сумму возврата * @return AmountInterface Сумма возврата */ public function getAmount() { return $this->_amount; } /** * Проверяет была ли установлена сумма возврата * @return bool True если сумма возврата была установлена, false если нет */ public function hasAmount() { return !empty($this->_amount); } /** * Устанавливает сумму * * @param AmountInterface|array|string $value Сумма возврата * * @return self Инстанс билдера запросов */ public function setAmount($value) { $this->_amount = new MonetaryAmount(); if ($value === null || $value === '') { $this->_amount = new MonetaryAmount(); } elseif ($value instanceof AmountInterface) { $this->_amount = $value; } elseif (is_array($value)) { $this->_amount->fromArray($value); } else { $this->_amount->setValue($value); } return $this; } /** * Валидирует объект запроса * @return bool True если запрос валиден и его можно отправить в API, false если нет */ public function validate() { if (empty($this->_paymentId)) { $this->setValidationError('Payment id not specified'); return false; } if ($this->_amount === null) { $this->setValidationError('Payment amount not specified'); return false; } $value = $this->_amount->getValue(); if (empty($value) || $value <= 0.0) { $this->setValidationError('Invalid payment amount value: ' . $value); return false; } return true; } }