/** 是否财付通签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。 * @return boolean */ 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)); }