簽名生成規則如下:
參與簽名的字段包括noncestr(隨機字符串), 有效的jsapi_ticket, timestamp(時間戳), url(當前網頁的URL,不包含#及其后面部分)。
1、對所有待簽名參數按照字典序排序,使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串string1(這里需要注意的是所有參數名均為小寫字符);
2、對string1作sha1加密,字段名和字段值都采用原始值,不進行URL 轉義。
對應的:
string string1 = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + noncestr+ "×tamp=" + timestamp + "&url=" + url;
和:
string signature = SHA1_Encrypt(string1);public static string SHA1_Encrypt(string Source_String){ byte[] StrRes = Encoding.Default.GetBytes(Source_String); HashAlgorithm iSHA = new SHA1CryptoServicePRovider(); StrRes = iSHA.ComputeHash(StrRes); StringBuilder EnText = new StringBuilder(); foreach (byte iByte in StrRes) { EnText.AppendFormat("{0:x2}", iByte); } return EnText.ToString();}
新聞熱點
疑難解答