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;
}
}
}