using System; using System.Linq; using System.Xml.Serialization; namespace Hncore.Pass.PaymentCenter.WxPay.WechatJsPay { /// /// 微信小程序、公众号支付 数据签名校验 /// public class WxJsPayDataBase { public string GenerateNonceStr() { return Guid.NewGuid().ToString("N"); } public WxPayChecker ToPayData() { var type = GetType(); var properties = type.GetProperties(); var data = new WxPayChecker(); foreach (var property in properties) { var xmlAttr = property.GetCustomAttributes(typeof(XmlElementAttribute), false); if (!xmlAttr.Any()) { continue; } string name = ((XmlElementAttribute)xmlAttr[0]).ElementName; object valueObj = property.GetValue(this, null); if (valueObj == null) { continue; } string value = valueObj.ToString(); if (!string.IsNullOrEmpty(value)) { data[name] = value; } } return data; } } }