BUG出现在类文件WxPayData.cs中的FromXml(string xml)方法
/**
* @将xml转为WxPayData对象并返回对象内部的数据
* @param string 待转换的xml串
* @return 经转换得到的Dictionary
* @throws WxPayException
*/
public SortedDictionary<string, object> FromXml(string xml)
{
if (string.IsNullOrEmpty(xml))
{
Log.Error(this.GetType().ToString(), "将空的xml串转换为WxPayData不合法!");
throw new WxPayException("将空的xml串转换为WxPayData不合法!");
}
SafeXmlDocument xmlDoc = new SafeXmlDocument();
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;//获取xml的键值对到WxPayData内部的数据中
}
try
{

本文详细解析了微信支付.NET SDK中WxPayData.cs类的FromXml方法存在的BUG,探讨了签名验证逻辑的问题,并对比了Java SDK的实现方式,提出了解决方案。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



