Beispiel #1
0
        /// <summary>
        /// 生成Token值
        /// </summary>
        /// <param name="code">安全密匙</param>
        /// <param name="param">参数键值</param>
        /// <param name="post">API请求的参数</param>
        /// <returns></returns>
        public string CreateToken(string code, Dictionary <string, string> param, string post)
        {
            StringBuilder sbu = new StringBuilder();

            Dictionary <string, string> ParamToUpper = new Dictionary <string, string>();
            IList <string> acs  = new List <string>();
            string         temp = "";

            foreach (var item in param.OrderBy(o => o.Key))
            {
                acs.Add(item.Key.ToUpper());
                ParamToUpper.Add(item.Key.ToUpper(), param[item.Key]);
            }

            for (int i = 0; i < acs.Count - 1; i++)
            {
                for (int j = 0; j < acs.Count - 1 - i; j++)
                {
                    if (string.CompareOrdinal(acs[j], acs[j + 1]) > 0)
                    {
                        temp       = acs[j + 1];
                        acs[j + 1] = acs[j];
                        acs[j]     = temp;
                    }
                }
            }

            sbu.Append(code);
            foreach (var str in acs)
            {
                sbu.Append(str);
                sbu.Append(ParamToUpper[str]);
            }
            sbu.Append(post);
            sbu.Append(code);

            return(MyCommon.EncryptMD5(sbu.ToString()));
        }