public static string GetSign(SortedDictionary<string, string> sparam)
{
sparam.Add("_appver", "3040000");
sparam.Add("_tid", "0");
sparam.Add("_p", "1");
sparam.Add("_down", "0");
sparam.Add("platform", "android");
sparam.Add("_device", "android");
sparam.Add("_hwid", "ccbb856c97ccb8d2");
sparam.Add("ts", ((long)((DateTime.Now - new DateTime(1970, 1, 1)).TotalSeconds)).ToString());
if (!sparam.ContainsKey("appkey")) sparam.Add("appkey", appkey);
if (!sparam.ContainsKey("type")) sparam.Add("type", "json");
if (!sparam.ContainsKey("appsec")) sparam.Add("appsec", appsec);
string final_param = "";
foreach (var aparam in sparam)
{
if (aparam.Value == null || aparam.Key == "appsec") continue;
if (final_param != "") final_param += "&";
final_param += aparam.Key + "=" + aparam.Value;
}
using (var md5 = MD5.Create())
{
string hashed = BitConverter.ToString(md5.ComputeHash(Encoding.ASCII.GetBytes(final_param + sparam["appsec"]))).Replace("-", "").ToLower();
final_param += "&sign=" + hashed;
}
return final_param;
}