get_record('payment_gateways', ['accountid' => $accountId, 'gateway' => GatewayConfig::GATEWAY]); if ($record === false) { return null; } return self::fromRecord($record); } /** * Заполненные настройки с данным номером счёта MONETA.RU — чтобы проверить * подпись уведомления по заказу, которого нет в БД. */ public function findByAccountNumber(string $accountNumber): ?GatewayConfig { global $DB; foreach ($DB->get_records('payment_gateways', ['gateway' => GatewayConfig::GATEWAY]) as $record) { $config = self::fromRecord($record); if ($config->isComplete() && $config->accountNumber === $accountNumber) { return $config; } } return null; } private static function fromRecord(\stdClass $record): GatewayConfig { $config = json_decode((string) $record->config, true); return GatewayConfig::fromArray(is_array($config) ? $config : [], (bool) $record->enabled); } }