(string) $deviceId, 'secret' => (string) $secret, 'timestamp' => (string) $timestamp, ]; ksort($params); $pairs = []; foreach ($params as $key => $value) { $pairs[] = $key . '=' . $value; } $plain = implode('&', $pairs); $signature = strtoupper(md5($plain)); echo 'device_id: ' . $params['device_id'] . PHP_EOL; echo 'secret: ' . $params['secret'] . PHP_EOL; echo 'timestamp: ' . $params['timestamp'] . PHP_EOL; echo 'signature: ' . $signature . PHP_EOL; echo 'url: /api/v1/authToken?secret=' . rawurlencode($params['secret']) . '×tamp=' . rawurlencode($params['timestamp']) . '&device_id=' . rawurlencode($params['device_id']) . '&signature=' . rawurlencode($signature) . PHP_EOL;