using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace Com.Bocom.OpenApi
{
    /// <summary>
    /// 2.4 主扫聚合码接口@MPNG-CIPPMPNG210001
    /// </summary>
    public class MPNG210001RequestV1 : BocomRequest<MPNG210001ResponseV1>
    {

        public override Type GetResponseClass()
        {
            return typeof(MPNG210001ResponseV1);
        }

        public override bool IsNeedEncrypt()
        {
            return false;
        }

        public override string GetMethod()
        {
            return "POST";
        }

        public override Type GetBizContentClass()
        {
            return typeof(MPNG210001RequestV1Biz);
        }

        [DataContract]
        public class MPNG210001RequestV1Biz : BizContent
        {
            [DataMember]
            public ReqHead req_head { get; set; }

            [DataMember]
            public ReqBody req_body { get; set; }

            public class ReqHead
            {
                /// <summary>
                /// 交易时间 yyyymmddhhmmss </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("trans_time") private String transTime;
                //internal string transTime;
                public string trans_time { get; set; }
                /// <summary>
                /// 版本信息 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("version") private String version;
                public string version { get; set; }

            }

            public class ReqBody
            {
                /// <summary>
                /// "商户分账信息" </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("royalty_info") private java.util.List<RoyaltyInfo> royaltyInfo;
                public List<RoyaltyInfo> royalty_info { get; set; }

                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("valid_period") private String validPeriod;
                public string valid_period { get; set; }

                /// <summary>
                /// 交易场景 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("tran_scene") private String tranScene;
                public string tran_scene { get; set; }

                /// <summary>
                /// 终端号 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("terminal_info") private String terminalInfo;
                public string terminal_info { get; set; }

                /// <summary>
                /// 商户编号 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("mer_ptc_id") private String merPtcId;
                public string mer_ptc_id { get; set; }

                /// <summary>
                /// 商户侧交易时间 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("mer_trade_time") private String merTradeTime;
                public string mer_trade_time { get; set; }

                /// <summary>
                /// 后台通知地址 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("notify_url") private String notifyUrl;
                public string notify_url { get; set; }

                /// <summary>
                /// 经纬度信息 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("location_id") private String locationId;
                public string location_id { get; set; }

                /// <summary>
                /// 商户侧交易日期 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("mer_trade_date") private String merTradeDate;
                public string mer_trade_date { get; set; }

                /// <summary>
                /// 门店编号 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("shop_id") private String shopId;
                public string shop_id { get; set; }

                /// <summary>
                /// "服务商分润信息" </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("fee_split_info") private FeeSplitInfo feeSplitInfo;
                public FeeSplitInfo fee_split_info { get; set; }

                //* 服务商编号
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("partner_id") private String partnerId;
                public string partner_id { get; set; }

                /// <summary>
                /// 商户交易编号 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("pay_mer_tran_no") private String payMerTranNo;
                public string pay_mer_tran_no { get; set; }

                /// <summary>
                /// 不带报文的前台跳转地址 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("jump_url") private String jumpUrl;
                public string jump_url { get; set; }

                /// <summary>
                /// 商户内部备注 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("mer_memo") private String merMemo;
                public string mer_memo { get; set; }

                /// <summary>
                /// 商户订单总金额 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("total_amount") private String totalAmount;
                public string total_amount { get; set; }

                /// <summary>
                /// "额外返回的属性" </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("require_fields") private java.util.List<RequireFields> requireFields;
                public List<RequireFields> require_fields { get; set; }

                //* 线上或线下
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("location") private String location;
                public string location { get; set; }

                /// <summary>
                /// 币种 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("currency") private String currency;
                public string currency { get; set; }

                /// <summary>
                /// 交易内容 </summary>
                //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                //ORIGINAL LINE: @JsonProperty("tran_content") private String tranContent;
                public string tran_content { get; set; }

                public class RoyaltyInfo
                {
                    /// <summary>
                    /// 分账金额 </summary>
                    //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                    //ORIGINAL LINE: @JsonProperty("amount") private String amount;
                    public string amount { get; set; }

                    /// <summary>
                    /// 分账的序号 </summary>
                    //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                    //ORIGINAL LINE: @JsonProperty("serial_no") private String serialNo;
                    public string serial_no { get; set; }
                }
                public class FeeSplitInfo
                {
                    /// <summary>
                    /// 服务商分润金额 </summary>
                    //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                    //ORIGINAL LINE: @JsonProperty("partner_amount") private String partnerAmount;
                    public string partner_amount { get; set; }

                    /// <summary>
                    /// 商户结算金额 </summary>
                    //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                    //ORIGINAL LINE: @JsonProperty("mer_amount") private String merAmount;
                    public string mer_amount { get; set; }
                }
                public class RequireFields
                {
                    /// <summary>
                    /// 额外返回的属性 </summary>
                    //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
                    //ORIGINAL LINE: @JsonProperty("require_field") private String requireField;
                    public string require_field { get; set; }
                }

            }
        }
    }
}

