//数据反转换 /// <summary> /// /// </summary> /// <param name="xml"></param> /// <returns></returns> public new static WeiXinPayWebParamData FromXml(string xml) { var m_values = new WeiXinPayWebParamData(); try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); XmlNode xmlNode = xmlDoc.FirstChild;//获取到根节点<xml> XmlNodeList nodes = xmlNode.ChildNodes; foreach (XmlNode xn in nodes) { XmlElement xe = (XmlElement)xn; m_values[xe.Name] = xe.InnerText; } return(m_values); } catch //(Exception ex) { return(m_values); } }
/// <summary> /// /// </summary> /// <param name="url"></param> /// <returns></returns> public new static WeiXinPayWebParamData FromUrl(string url) { var param = new WeiXinPayWebParamData(); try { int l = string.IsNullOrEmpty(url) ? 0 : url.Length; int i = 0; unsafe { fixed(char *s = url) { while (i < l) { int si = i; int ti = -1; while (i < l) { char ch = s[i]; if (ch == '=') { if (ti < 0) { ti = i; } } else if (ch == '&') { break; } i++; } string name = null; string value = null; if (ti >= 0) { name = url.Substring(si, ti - si); value = url.Substring(ti + 1, i - ti - 1); } else { value = url.Substring(si, i - si); i++; continue; } if (!string.IsNullOrEmpty(name) && !(string.IsNullOrEmpty(value))) { param.Add(name, WebHelper.UrlDecode(value)); } i++; } } } return(param); } catch (System.Exception) { return(param); } }