using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using PaySharp.Core; using PaySharp.Core.Utils; namespace PaySharp.Wechatpay.Domain { public class QueryModel : IValidatableObject { /// /// 订单支付时传入的商户订单号,和微信订单号不能同时为空。 /// TradeNo,OutTradeNo如果同时存在优先取TradeNo /// [StringLength(32, ErrorMessage = "商户订单号最大长度为32位")] public string OutTradeNo { get; set; } /// /// 微信订单号,和商户订单号不能同时为空 /// [ReName(Name = "transaction_id")] [StringLength(32, ErrorMessage = "微信订单号最大长度为32位")] public string TradeNo { get; set; } /// /// 随机字符串 /// public string NonceStr { get; } = Util.GenerateNonceStr(); public IEnumerable Validate(ValidationContext validationContext) { if (string.IsNullOrEmpty(OutTradeNo) && string.IsNullOrEmpty(TradeNo)) { yield return new ValidationResult("商户订单号和微信订单号不能同时为空"); } yield return ValidationResult.Success; } } }