/// <summary> /// 创建package签名 /// </summary> /// <returns></returns> public virtual string CreateMd5Sign() { StringBuilder sb = new StringBuilder(); ArrayList akeys = new ArrayList(Parameters.Keys); akeys.Sort(); foreach (string k in akeys) { string v = (string)Parameters[k]; if (null != v && "".CompareTo(v) != 0 && "sign".CompareTo(k) != 0 && "".CompareTo(v) != 0) { sb.Append(k + "=" + v + "&"); } } string sign = MD5Util.GetMD5(sb.ToString(), GetCharset()).ToLower(); this.SetParameter("sign", sign); return(sign); }
/// <summary> /// 是否财付通签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名 @return boolean /// </summary> /// <param name="aKeys"></param> /// <returns></returns> public virtual Boolean IsTenpaySign(ArrayList aKeys) { StringBuilder sb = new StringBuilder(); foreach (string k in aKeys) { string v = (string)Parameters[k]; if (null != v && "".CompareTo(v) != 0 && "sign".CompareTo(k) != 0 && "key".CompareTo(k) != 0) { sb.Append(k + "=" + v + "&"); } } sb.Append("key=" + this.GetKey()); string sign = MD5Util.GetMD5(sb.ToString(), getCharset()).ToLower(); //debug信息 this.SetDebugInfo(sb.ToString() + " => sign:" + sign); return(GetParameter("sign").ToLower().Equals(sign)); }
/// <summary> /// 随机生成Noncestr /// </summary> /// <returns></returns> public static string GetNoncestr() { Random random = new Random(); return(MD5Util.GetMD5(random.Next(1000).ToString(), "GBK")); }