コード例 #1
0
        /// <summary>
        /// 生成签名
        /// </summary>
        /// <param name="parms">参数列表</param>
        /// <param name="appsecret">密钥</param>
        /// <returns></returns>
        public string CreateSign(Dictionary <string, string> param, string appsecret)
        {
            //抽取需要签名的参数
            Dictionary <string, string> signDic = new Dictionary <string, string>();

            foreach (var m in param)
            {
                if (!string.IsNullOrWhiteSpace(m.Key) && !m.Key.StartsWith("_"))//以下划线开头的参数和sign不参签名
                {
                    signDic.Add(m.Key, m.Value);
                }
            }
            signDic.Add(appsecretKey, appsecret);

            StringBuilder signStr = new StringBuilder();

            //按照asc码升序排列
            foreach (var m in signDic.OrderBy(m => m.Key, StringComparer.Ordinal))
            {
                signStr.Append(m.Key).Append(splitCharOne).Append(m.Value).Append(splitCharTwo);
            }

            //去除最后一个多余的分隔符
            if (signStr.Length > 0)
            {
                signStr.Remove(signStr.Length - splitCharTwo.Length, splitCharTwo.Length);
            }

            string mySign = MD5Helper.En32MD5(signStr.ToString());

            return(mySign);
        }