using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace Alipay.AopSdk.Core.Domain
{
///
/// AlipayTradePayModel Data Structure.
///
[Serializable]
public class AlipayTradePayModel : AopObject
{
///
/// 代扣业务需要传入协议相关信息
///
[JsonProperty("agreement_params")]
public AgreementParams AgreementParams { get; set; }
///
/// 支付宝的店铺编号
///
[JsonProperty("alipay_store_id")]
public string AlipayStoreId { get; set; }
///
/// 支付授权码,25~30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准
///
[JsonProperty("auth_code")]
public string AuthCode { get; set; }
///
/// 预授权号,预授权转交易请求中传入,适用于预授权转交易业务使用,目前只支持FUND_TRADE_FAST_PAY(资金订单即时到帐交易)、境外预授权产品(OVERSEAS_AUTH_PAY)两个产品。
///
[JsonProperty("auth_no")]
public string AuthNo { get; set; }
///
/// 订单描述
///
[JsonProperty("body")]
public string Body { get; set; }
///
/// 商户传入业务信息,具体值需要与支付宝约定
///
[JsonProperty("business_params")]
public string BusinessParams { get; set; }
///
/// 买家的支付宝用户id,如果为空,会从传入了码值信息中获取买家ID
///
[JsonProperty("buyer_id")]
public string BuyerId { get; set; }
///
/// 禁用支付渠道,多个渠道以逗号分割,如同时禁用信用支付类型和积分,则disable_pay_channels="credit_group,point"
///
[JsonProperty("disable_pay_channels")]
public string DisablePayChannels { get; set; }
///
/// 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。 如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】-【不可打折金额】
///
[JsonProperty("discountable_amount")]
public string DiscountableAmount { get; set; }
///
/// 外部指定买家
///
[JsonProperty("ext_user_info")]
public ExtUserInfo ExtUserInfo { get; set; }
///
/// 业务扩展参数
///
[JsonProperty("extend_params")]
public ExtendParams ExtendParams { get; set; }
///
/// 订单包含的商品列表信息,Json格式,其它说明详见商品明细说明
///
[JsonProperty("goods_detail")]
public List GoodsDetail { get; set; }
///
/// 商户的原始订单号
///
[JsonProperty("merchant_order_no")]
public string MerchantOrderNo { get; set; }
///
/// 商户操作员编号
///
[JsonProperty("operator_id")]
public string OperatorId { get; set; }
///
/// 商户订单号,64个字符以内、可包含字母、数字、下划线;需保证在商户端不重复
///
[JsonProperty("out_trade_no")]
public string OutTradeNo { get; set; }
///
/// 销售产品码
///
[JsonProperty("product_code")]
public string ProductCode { get; set; }
///
/// 描述分账信息,Json格式,其它说明详见分账说明
///
[JsonProperty("royalty_info")]
public RoyaltyInfo RoyaltyInfo { get; set; }
///
/// 支付场景 条码支付,取值:bar_code 声波支付,取值:wave_code
///
[JsonProperty("scene")]
public string Scene { get; set; }
///
/// 如果该值为空,则默认为商户签约账号对应的支付宝用户ID
///
[JsonProperty("seller_id")]
public string SellerId { get; set; }
///
/// 商户门店编号
///
[JsonProperty("store_id")]
public string StoreId { get; set; }
///
/// 间连受理商户信息体,当前只对特殊银行机构特定场景下使用此字段
///
[JsonProperty("sub_merchant")]
public SubMerchant SubMerchant { get; set; }
///
/// 订单标题
///
[JsonProperty("subject")]
public string Subject { get; set; }
///
/// 商户机具终端编号
///
[JsonProperty("terminal_id")]
public string TerminalId { get; set; }
///
/// 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m
///
[JsonProperty("timeout_express")]
public string TimeoutExpress { get; set; }
///
/// 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000] 如果同时传入【可打折金额】和【不可打折金额】,该参数可以不用传入;
/// 如果同时传入了【可打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【可打折金额】+【不可打折金额】
///
[JsonProperty("total_amount")]
public string TotalAmount { get; set; }
///
/// 不参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]。如果该值未传入,但传入了【订单总金额】和【可打折金额】,则该值默认为【订单总金额】-【可打折金额】
///
[JsonProperty("undiscountable_amount")]
public string UndiscountableAmount { get; set; }
}
}