self::trimmed($parameters['channel_code'] ?? ''), 'timestamp' => self::trimmed($parameters['timestamp'] ?? ''), 'name' => self::trimmed($parameters['name'] ?? ''), 'mobile' => self::trimmed($parameters['mobile'] ?? ''), 'company_name' => self::trimmed($parameters['company_name'] ?? ''), 'state' => self::trimmed($parameters['state'] ?? ''), 'secret' => trim($sharedSecret), ]; $joined = []; foreach ($values as $key => $value) { $joined[] = $key.'='.$value; } return hash('sha256', implode('&', $joined)); } private static function trimmed(mixed $value): string { return is_scalar($value) ? trim((string) $value) : ''; } }