TransferModel.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System.Collections.Generic;
  2. using System.ComponentModel.DataAnnotations;
  3. using PaySharp.Core;
  4. using PaySharp.Core.Utils;
  5. namespace PaySharp.Wechatpay.Domain
  6. {
  7. public class TransferModel : IValidatableObject
  8. {
  9. /// <summary>
  10. /// 商户订单号
  11. /// </summary>
  12. [ReName(Name = "partner_trade_no")]
  13. [Required(ErrorMessage = "请设置商户订单号")]
  14. [StringLength(32, ErrorMessage = "商户订单号最大长度为32位")]
  15. public string OutTradeNo { get; set; }
  16. /// <summary>
  17. /// 用户标识,此参数为微信用户在商户对应appid下的唯一标识。
  18. /// </summary>
  19. [ReName(Name = "openid")]
  20. [Required(ErrorMessage = "请设置用户标识")]
  21. public string OpenId { get; set; }
  22. /// <summary>
  23. /// 校验用户姓名选项
  24. /// NO_CHECK:不校验真实姓名
  25. /// FORCE_CHECK:强校验真实姓名
  26. /// </summary>
  27. [Required(ErrorMessage = "请设置校验用户姓名选项")]
  28. public string CheckName { get; set; }
  29. /// <summary>
  30. /// 收款用户真实姓名
  31. /// </summary>
  32. [ReName(Name = "re_user_name")]
  33. public string TrueName { get; set; }
  34. /// <summary>
  35. /// 付款金额:RMB分
  36. /// </summary>
  37. public int Amount { get; set; }
  38. /// <summary>
  39. /// 付款说明
  40. /// </summary>
  41. public string Desc { get; set; }
  42. /// <summary>
  43. /// 用户端或者服务端的IP
  44. /// </summary>
  45. [Required(ErrorMessage = "请设置用户IP")]
  46. [StringLength(16, ErrorMessage = "用户IP最大长度为16位")]
  47. public string SpbillCreateIp { get; set; } = HttpUtil.LocalIpAddress;
  48. /// <summary>
  49. /// 随机字符串
  50. /// </summary>
  51. public string NonceStr { get; } = Util.GenerateNonceStr();
  52. public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
  53. {
  54. if (CheckName == "FORCE_CHECK" && string.IsNullOrEmpty(TrueName))
  55. {
  56. yield return new ValidationResult("请设置收款用户真实姓名");
  57. }
  58. yield return ValidationResult.Success;
  59. }
  60. }
  61. }