/// <summary>
/// 将实体转换为Hashtable
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="obj">实体实例</param>
/// <returns>Hashtable</returns>
internal Hashtable ConvertEntityToHashtable<T>(T obj)
{
Hashtable hst = new Hashtable();
try
{
Type type = obj.GetType();
foreach (PropertyInfo pi in type.GetProperties())
{
PropertyInfo property = type.GetProperty(pi.Name);
hst.Add(pi.Name, property.GetValue(obj, null));
}
return hst;
}
catch (Exception ex)
{
System.Console.Out.WriteLine(ex.Message);
return null;
}
}
/// <summary>
/// 排序,获取签名
/// </summary>
/// <returns>sin签名</returns>
internal string getSin(Hashtable ParametersTosin, string appkey)
{
StringBuilder sb = new StringBuilder();
ArrayList akeys = new ArrayList(ParametersTosin.Keys);
akeys.Sort();
foreach (string k in akeys)
{
string v = (string)ParametersTosin[k];
if (null != v && "".CompareTo(v) != 0
&& "sign".CompareTo(k) != 0 && "key".CompareTo(k) != 0)
{
sb.Append(k + "=" + v + "&");
}
}
sb.Append("key=" + appkey);
string sign = "";
using (var md5 = MD5.Create())
{
var strResult = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(sb.ToString())));
sign = strResult.Replace("-", "");
}
return sign;
}