2024年3月26日发(作者:)
* @将Dictionary转成xml
* @return 经转换得到的xml串
* @throws WxPayException
**/
public string ToXml()
{
//数据为空时不能转化为xml格式
if (0 == m_)
{
throw new WxPayException("WxPayData数据为空!");
}
string xml = "
foreach (KeyValuePair
{
//字段值不能为null,会影响后续流程
if ( == null)
{
throw new WxPayException("WxPayData内部含有值为null的字段!");
}
if (e() == typeof(int) || e() == typeof(float))
{
xml += "<" + + ">" + + "" + + ">";
}
else if (e() == typeof(string))
{
xml += "<" + + ">" + "" + + ">";
}
else//除了string和int类型不能含有其他数据类型
{
throw new WxPayException("WxPayData字段数据类型错误!");
}
}
xml += "";
return xml;
}
/**
* @将xml转为WxPayData对象并返回对象内部的数据
* @param string 待转换的xml串
* @return 经转换得到的Dictionary
* @throws WxPayException
*/
public SortedDictionary
{
if (OrEmpty(xml))
{
throw new WxPayException("将空的xml串转换为WxPayData不合法!");
}
SafeXmlDocument xmlDoc = new SafeXmlDocument();
l(xml);
XmlNode xmlNode = hild;//获取到根节点
XmlNodeList nodes = odes;
foreach (XmlNode xn in nodes)
{
XmlElement xe = (XmlElement)xn;
m_values[] = ext;//获取xml的键值对到WxPayData内部的数据中
}
try
{
if (m_values["return_code"] + "" != "SUCCESS")
{
return m_values;
}
CheckSign();//验证签名,不通过会抛异常
}
catch (WxPayException ex)
{
throw new WxPayException(e);
}
return m_values;
}
/**
* @Dictionary格式转化成url参数格式
* @ return url格式串, 该串不包含sign字段值
*/
public string ToUrl()
{


发布评论