using Newtonsoft.Json; using System.ComponentModel.DataAnnotations; namespace LifePayment.Domain { public class FundTransPagePayInput { /// /// 商户端的唯一订单号,对于同一笔转账请求,商户需保证该订单号唯一。 /// [JsonProperty("out_biz_no", NullValueHandling = NullValueHandling.Ignore)] [Required] public string OutBizNo { get; set; } /// /// 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,9999999999999.99] /// [JsonProperty("trans_amount", NullValueHandling = NullValueHandling.Ignore)] [Required] public decimal TransAmount { get; set; } /// /// 销售产品码,商家和支付宝签约的产品码 /// [JsonProperty("product_code", NullValueHandling = NullValueHandling.Ignore)] [Required] public string ProductCode { get; set; } /// /// 描述特定的业务场景,比如对党费缴纳场景需走党费专户 /// [JsonProperty("biz_scene", NullValueHandling = NullValueHandling.Ignore)] [Required] public string BizScene { get; set; } /// /// 收款方信息 /// [JsonProperty("payee_info", NullValueHandling = NullValueHandling.Ignore)] [Required] public Participant PayeeInfo { get; set; } /// /// 转账备注 /// [JsonProperty("remark", NullValueHandling = NullValueHandling.Ignore)] [Required] public string Remark { get; set; } /// /// 支付宝订单号,仅批量有密场景下生效 /// [JsonProperty("order_id", NullValueHandling = NullValueHandling.Ignore)] [Required] public string OrderId { get; set; } /// /// 付款方信息 /// [JsonProperty("payer_info", NullValueHandling = NullValueHandling.Ignore)] [Required] public Participant PayerInfo { get; set; } /// /// 转账订单的标题,用于在收银台和消费记录展示 /// [JsonProperty("order_title", NullValueHandling = NullValueHandling.Ignore)] [Required] public string OrderTitle { get; set; } /// /// 支付绝对超时时间,格式为yyyy-MM-dd HH:mm /// [JsonProperty("time_expire", NullValueHandling = NullValueHandling.Ignore)] [Required] public string TimeExpire { get; set; } /// /// 自动退款绝对超时时间,格式为yyyy-MM-dd HH:mm /// [JsonProperty("refund_time_expire", NullValueHandling = NullValueHandling.Ignore)] [Required] public string RefundTimeExpire { get; set; } /// /// 公用回传参数,如果请求时传递了该参数,则异步通知商户时会回传该参数。 /// [JsonProperty("passback_params", NullValueHandling = NullValueHandling.Ignore)] [Required] public string PassbackParams { get; set; } /// /// JSON格式,传递业务扩展参数,使用前请与支付宝工程师联系! /// [JsonProperty("business_params", NullValueHandling = NullValueHandling.Ignore)] [Required] public string BusinessParams { get; set; } } public class Participant { /// /// 收款方账号或付款方账号,传入支付宝uid 参与方的标识,单笔无密转账到银行卡固定为收款方银行卡号 /// [JsonProperty("identity", NullValueHandling = NullValueHandling.Ignore)] [Required] public string Identity { get; set; } /// /// identity传入支付宝uid时为:LAIPAY_USER_ID 参与方的标识类型,单笔无密转账到银行卡固定为BANKCARD_ACCOUNT /// [JsonProperty("identity_type", NullValueHandling = NullValueHandling.Ignore)] [Required] public string IdentityType { get; set; } /// /// 参与方的证件号,支持身份证号、护照号。 /// [JsonProperty("cert_no", NullValueHandling = NullValueHandling.Ignore)] [Required] public string CertNo { get; set; } /// /// 参与方的证件类型。 /// [JsonProperty("cert_type", NullValueHandling = NullValueHandling.Ignore)] [Required] public string CertType { get; set; } /// /// 参与方真实姓名,如果非空,将校验收款支付宝账号姓名一致性。当identity_type=ALIPAY_LOGON_ID时,本字段必填。 /// 收款方银行账户名称 /// [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// 描述参与方信息的扩展属性,使用前请与支付宝工程师确认 /// [JsonProperty("ext_info", NullValueHandling = NullValueHandling.Ignore)] public string ExtInfo { get; set; } [JsonProperty("bankcard_ext_info", NullValueHandling = NullValueHandling.Ignore)] public BankcardExtInfo BankCardExtInfo { get; set; } } public class BankcardExtInfo { /// /// 当收款账户为对公账户时,机构名称必填;当收款账户为对私账户时,机构名称可为空。 如:交通银行 /// [JsonProperty("inst_name", NullValueHandling = NullValueHandling.Ignore)] public string InstName { get; set; } /// /// 收款账户类型。 /// 1:对公(在金融机构开设的公司账户),如果银行卡为对公,必须传递省市支行信息或者联行号 /// 2:对私(在金融机构开设的个人账户) /// [JsonProperty("account_type", NullValueHandling = NullValueHandling.Ignore)] public string AccountType { get; set; } /// /// 银行所在省份 /// [JsonProperty("inst_province", NullValueHandling = NullValueHandling.Ignore)] public string InstProvince { get; set; } /// /// 收款银行所在市 /// [JsonProperty("inst_city", NullValueHandling = NullValueHandling.Ignore)] public string InstCity { get; set; } /// /// 收款银行所属支行 /// [JsonProperty("inst_branch_name", NullValueHandling = NullValueHandling.Ignore)] public string InstBranchName { get; set; } /// /// 银行支行联行号 /// [JsonProperty("bank_code", NullValueHandling = NullValueHandling.Ignore)] public string BankCode { get; set; } } }