$config значения формы {@see \paygw_moneta\Gateway} */ public static function fromArray(array $config, bool $enabled = true): self { return new self( trim((string) ($config['accountnumber'] ?? '')), (string) ($config['integritycode'] ?? ''), PaymentServer::fromSetting($config['paymentserver'] ?? null), !empty($config['testmode']), !empty($config['fiscalization']), Vat::tryFrom((string) ($config['vat'] ?? '')) ?? Vat::None, $enabled, Client::normalizeEmail((string) ($config['receiptemail'] ?? '')), !empty($config['sendpaymentlink']), PaymentMethod::tryFrom((string) ($config['paymentmethod'] ?? '')) ?? PaymentMethod::FullPayment, PaymentObject::tryFrom((string) ($config['paymentobject'] ?? '')) ?? PaymentObject::Service, ); } /** * Можно ли создавать новые заказы: реквизиты, а при фискализации ещё и * «Email для чеков», без которого чек покупателя без контактов не собрать. * Колбэки проверяют только {@see isComplete()} — уже оплаченный заказ * должен дойти до зачисления, даже если настройку потом очистили. */ public function acceptsNewOrders(): bool { return $this->isComplete() && $this->enabled && (!$this->fiscalization || $this->receiptEmail !== null); } public function isComplete(): bool { return $this->accountNumber !== '' && $this->integrityCode !== ''; } public function signature(): Signature { return new Signature($this->integrityCode); } }