1048576) { throw new LocalizedException(__('Oceanpayment callback body is too large.')); } $source = $parameters; if (str_starts_with(ltrim($body), '<')) { $previous = libxml_use_internal_errors(true); try { $xml = simplexml_load_string($body, \SimpleXMLElement::class, LIBXML_NONET | LIBXML_NOCDATA); } finally { libxml_clear_errors(); libxml_use_internal_errors($previous); } if ($xml === false) { throw new LocalizedException(__('Oceanpayment callback XML is invalid.')); } $source = []; foreach (self::FIELDS as $field) { $source[$field] = isset($xml->{$field}) ? (string)$xml->{$field} : ''; } } $result = []; foreach (self::FIELDS as $field) { $value = $source[$field] ?? ''; $result[$field] = is_scalar($value) ? trim((string)$value) : ''; } return $result; } }