Hello everyone, I have a question on my API Signing code. The code below I have tested on commands like createDomain, listTemplates, and listServices. Those all run like expected, but I am running into trouble with createAccount. I am wondering if it isn't an issue with the sort function?
function cloudstack_sign_sort($cmd) { $commands = explode('&', $cmd); sort($commands); $sort = implode('&', $commands); return $sort; } function cloudstack_formatCmd($api, $cmd) { $str = 'apiKey=' . $api . '&' . $cmd; $str = strtolower(cloudstack_sign_sort($str)); return $str; } function cloudstack_encrypt($cmd, $secret) { $hash = hash_hmac('sha1', $cmd, $secret, true); $hash = base64_encode($hash); return urlencode($hash); } function cloudstack_formattedUrl($baseUrl, $api, $cmd, $signature) { $url = $baseUrl . '?' . $cmd . '&apiKey=' . $api . '&signature=' . $signature; return $url; } function cloudstack_sign($command, $api, $secret, $baseUrl) { $clean_command = substr($command, strpos($command, '?')); $newCmd = cloudstack_formatCmd($api, $clean_command); $signature = cloudstack_encrypt($newCmd, $secret); $url = cloudstack_formattedUrl($baseUrl, $api, $clean_command, $signature); return $url; } Thanks, Blake Ferkingstad