_first6; } /** * Устанавливает первые 6 цифр номера карты * @param string $value Первые 6 цифр номера карты * @since 1.0.14 */ public function setFirst6($value) { if (TypeCast::canCastToString($value)) { if (preg_match('/^[0-9]{6}$/', (string)$value)) { $this->_first6 = (string)$value; } else { throw new InvalidPropertyValueException( 'Invalid card first6 value', 0, 'BankCard.first6', $value ); } } else { throw new InvalidPropertyValueTypeException( 'Invalid card first6 value type', 0, 'BankCard.first6', $value ); } } /** * Возвращает последние 4 цифры номера карты * @return string Последние 4 цифры номера карты */ public function getLast4() { return $this->_last4; } /** * Устанавливает последние 4 цифры номера карты * @param string $value Последние 4 цифры номера карты */ public function setLast4($value) { if ($value === null || $value === '') { throw new EmptyPropertyValueException('Empty card last4 value', 0, 'BankCard.last4'); } if (TypeCast::canCastToString($value)) { if (preg_match('/^[0-9]{4}$/', (string)$value)) { $this->_last4 = (string)$value; } else { throw new InvalidPropertyValueException( 'Invalid card last4 value', 0, 'BankCard.last4', $value ); } } else { throw new InvalidPropertyValueTypeException( 'Invalid card last4 value type', 0, 'BankCard.last4', $value ); } } /** * Возвращает срок действия, год * @return string Срок действия, год */ public function getExpiryYear() { return $this->_expiryYear; } /** * Устанавливает срок действия, год * @param string $value Срок действия, год */ public function setExpiryYear($value) { if ($value === null || $value === '') { throw new EmptyPropertyValueException( 'Empty card expiry year value', 0, 'BankCard.expiryYear' ); } if (is_numeric($value)) { if (!preg_match('/^\d\d\d\d$/', $value) || $value < 2000 || $value > 2200) { throw new InvalidPropertyValueException( 'Invalid card expiry year value', 0, 'BankCard.expiryYear', $value ); } $this->_expiryYear = (string)$value; } else { throw new InvalidPropertyValueException( 'Invalid card expiry year value', 0, 'BankCard.expiryYear', $value ); } } /** * Возвращает срок действия, месяц * @return string Срок действия, месяц */ public function getExpiryMonth() { return $this->_expiryMonth; } /** * Устанавливает срок действия, месяц * @param string $value Срок действия, месяц */ public function setExpiryMonth($value) { if ($value === null || $value === '') { throw new EmptyPropertyValueException( 'Empty card expiry month value', 0, 'BankCard.expiryMonth' ); } if (is_numeric($value)) { if (!preg_match('/^\d\d$/', $value)) { throw new InvalidPropertyValueException( 'Invalid card expiry month value', 0, 'BankCard.expiryMonth', $value ); } if (is_string($value) && $value[0] == '0') { $month = (int)($value[1]); } else { $month = (int)$value; } if ($month < 1 || $month > 12) { throw new InvalidPropertyValueException( 'Invalid card expiry month value', 0, 'BankCard.expiryMonth', $value ); } $this->_expiryMonth = (string)$value; } else { throw new InvalidPropertyValueException( 'Invalid card expiry month value', 0, 'BankCard.expiryMonth', $value ); } } /** * Возвращает тип банковской карты * @return string Тип банковской карты */ public function getCardType() { return $this->_cardType; } /** * Устанавливает тип банковской карты * @param string $value Тип банковской карты */ public function setCardType($value) { if ($value === null || $value === '') { throw new EmptyPropertyValueException('Empty cardType value', 0, 'BankCard.cardType'); } if (TypeCast::canCastToString($value)) { $this->_cardType = (string)$value; } else { throw new InvalidPropertyValueTypeException( 'Invalid cardType value type', 0, 'BankCard.cardType', $value ); } } /** * Возвращает код страны, в которой выпущена карта. Передается в формате ISO-3166 alpha-2 * @return string Код страны, в которой выпущена карта */ public function getIssuerCountry() { return $this->_issuerCountry; } /** * Устанавливает код страны, в которой выпущена карта. Передается в формате ISO-3166 alpha-2 * @param string $value Код страны, в которой выпущена карта */ public function setIssuerCountry($value) { if ($value === null || $value === '') { $this->_issuerCountry = (string)$value; } elseif (!TypeCast::canCastToString($value)) { throw new InvalidPropertyValueTypeException( 'Invalid issuerCountry value type', 0, 'PaymentMethodBankCard.issuerCountry', $value ); } elseif (mb_strlen($value) !== self::ISO_3166_CODE_LENGTH) { throw new InvalidPropertyValueException( 'Invalid issuerCountry value', 0, 'PaymentMethodBankCard.issuerCountry', $value ); } $this->_issuerCountry = (string)$value; } /** * Устанавливает наименование банка, выпустившего карту * @param string $value Наименование банка, выпустившего карту */ public function setIssuerName($value) { if ($value === null || $value === '') { $this->_issuerName = (string)$value; } elseif (!TypeCast::canCastToString($value)) { throw new EmptyPropertyValueException( 'Empty issuerName value', 0, 'PaymentMethodBankCard.issuerName' ); } $this->_issuerName = (string)$value; } /** * Возвращает наименование банка, выпустившего карту * @return string Наименование банка, выпустившего карту. */ public function getIssuerName() { return $this->_issuerName; } /** * Устанавливает источник данных банковской карты * @param string $value Источник данных банковской карты */ public function setSource($value) { if ($value === null || $value === '') { $this->_source = (string)$value; } elseif (!TypeCast::canCastToEnumString($value)) { throw new InvalidPropertyValueTypeException( 'Invalid source value type', 0, 'PaymentMethodBankCard.source', $value ); } elseif (!BankCardSource::valueExists($value)) { throw new InvalidPropertyValueException( 'Invalid source value', 0, 'PaymentMethodBankCard.source', $value ); } $this->_source = (string)$value; } /** * Возвращает источник данных банковской карты * @return string Источник данных банковской карты */ public function getSource() { return $this->_source; } }