using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using PaySharp.Core; using PaySharp.Core.Utils; namespace PaySharp.Wechatpay.Domain { public class TransferModel : IValidatableObject { /// /// 商户订单号 /// [ReName(Name = "partner_trade_no")] [Required(ErrorMessage = "请设置商户订单号")] [StringLength(32, ErrorMessage = "商户订单号最大长度为32位")] public string OutTradeNo { get; set; } /// /// 用户标识,此参数为微信用户在商户对应appid下的唯一标识。 /// [ReName(Name = "openid")] [Required(ErrorMessage = "请设置用户标识")] public string OpenId { get; set; } /// /// 校验用户姓名选项 /// NO_CHECK:不校验真实姓名 /// FORCE_CHECK:强校验真实姓名 /// [Required(ErrorMessage = "请设置校验用户姓名选项")] public string CheckName { get; set; } /// /// 收款用户真实姓名 /// [ReName(Name = "re_user_name")] public string TrueName { get; set; } /// /// 付款金额:RMB分 /// public int Amount { get; set; } /// /// 付款说明 /// public string Desc { get; set; } /// /// 用户端或者服务端的IP /// [Required(ErrorMessage = "请设置用户IP")] [StringLength(16, ErrorMessage = "用户IP最大长度为16位")] public string SpbillCreateIp { get; set; } = HttpUtil.LocalIpAddress; /// /// 随机字符串 /// public string NonceStr { get; } = Util.GenerateNonceStr(); public IEnumerable Validate(ValidationContext validationContext) { if (CheckName == "FORCE_CHECK" && string.IsNullOrEmpty(TrueName)) { yield return new ValidationResult("请设置收款用户真实姓名"); } yield return ValidationResult.Success; } } }