setType(NotificationType::NOTIFICATION); $this->setEvent(NotificationEventType::PAYMENT_METHOD_ACTIVE); if (!empty($sourceArray['type'])) { if ($this->getType() !== $sourceArray['type']) { throw new InvalidPropertyValueException( 'Invalid value for "type" parameter in Notification', 0, 'notification.type', $sourceArray['type'] ); } } if (!empty($sourceArray['event'])) { if ($this->getEvent() !== $sourceArray['event']) { throw new InvalidPropertyValueException( 'Invalid value for "event" parameter in Notification', 0, 'notification.event', $sourceArray['event'] ); } } if (empty($sourceArray['object'])) { throw new EmptyPropertyValueException('Parameter object in NotificationPaymentMethodActive is empty'); } $this->setObject($sourceArray['object']); } /** * Возвращает объект с информацией о способе оплаты, уведомление о котором хранится в текущем объекте. * * Так как нотификация может быть сгенерирована и поставлена в очередь на отправку гораздо раньше, чем она будет * получена на сайте, то опираться на статус пришедшего способа оплаты не стоит, лучше запросить текущую информацию о * способе оплаты у API. * * @return SavePaymentMethodInterface Объект с информацией о способе оплаты */ public function getObject(): SavePaymentMethodInterface { return $this->_object; } /** * Устанавливает объект с информацией о способе оплаты, уведомление о котором хранится в текущем объекте. * * @param SavePaymentMethodInterface|array $object * * @return self */ public function setObject(mixed $object): self { if (is_array($object)) { $object = (new SavePaymentMethodFactory())->factoryFromArray($object); } $this->_object = $this->validatePropertyValue('_object', $object); return $this; } }