_type; } /** * Устанавливает type. * * @param string|null $type Код способа оплаты. Возможное значение: ~`bank_card` — банковская карта. * * @return self */ public function setType(?string $type = null): self { $this->_type = $this->validatePropertyValue('_type', $type); return $this; } /** * Проверяет, были ли установлен код способа оплаты. * * @return bool True если код способа оплаты был установлен, false если нет */ public function hasType(): bool { return null !== $this->_type; } /** * Возвращает card. * * @return PaymentMethodCard|null */ public function getCard(): ?PaymentMethodCard { return $this->_card; } /** * Устанавливает card. * * @param PaymentMethodCard|array|null $card Данные для проверки и сохранения банковской карты. * * @return self */ public function setCard(mixed $card): self { $this->_card = $this->validatePropertyValue('_card', $card); return $this; } /** * Возвращает holder. * * @return PaymentMethodHolder|null */ public function getHolder(): ?PaymentMethodHolder { return $this->_holder; } /** * Устанавливает holder. * * @param PaymentMethodHolder|array|null $holder Данные магазина, для которого сохраняется способ оплаты. * * @return self */ public function setHolder(mixed $holder = null): self { $this->_holder = $this->validatePropertyValue('_holder', $holder); return $this; } /** * Возвращает client_ip. * * @return string|null */ public function getClientIp(): ?string { return $this->_client_ip; } /** * Устанавливает client_ip. * * @param string|null $client_ip IPv4 или IPv6-адрес пользователя. Если не указан, используется IP-адрес TCP-подключения. * * @return self */ public function setClientIp(?string $client_ip = null): self { $this->_client_ip = $this->validatePropertyValue('_client_ip', $client_ip); return $this; } /** * Возвращает confirmation. * * @return AbstractConfirmation|null */ public function getConfirmation(): ?AbstractConfirmation { return $this->_confirmation; } /** * Устанавливает confirmation. * * @param AbstractConfirmation|array|null $confirmation Данные, необходимые для инициирования сценария подтверждения привязки. * * @return self */ public function setConfirmation(mixed $confirmation = null): self { if (is_array($confirmation)) { $confirmation = (new ConfirmationFactory())->factoryFromArray($confirmation); } $this->_confirmation = $this->validatePropertyValue('_confirmation', $confirmation); return $this; } /** * Валидирует текущий запрос, проверяет все ли нужные свойства установлены. * * @return bool True если запрос валиден, false если нет */ public function validate(): bool { if (!$this->hasType()) { $this->setValidationError('Type not specified'); return false; } return true; } /** * Возвращает билдер объектов запросов создания платежа. * * @return CreatePaymentMethodRequestBuilder Инстанс билдера объектов запросов */ public static function builder(): CreatePaymentMethodRequestBuilder { return new CreatePaymentMethodRequestBuilder(); } }