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.10 查询订单@MPNG-MAPIMPNG020702
    /// </summary>
    public class MPNG020702RequestV1 : BocomRequest<MPNG020702ResponseV1>
    {
        public override Type GetResponseClass()
        {
            return typeof(MPNG020702ResponseV1);
        }
        public override bool IsNeedEncrypt()
        {
            return false;
        }

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

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

        [DataContract]
        public class MPNG020702RequestV1Biz : 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>
                /// 原交易商户侧交易日期 yyyyMMdd </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;
                //internal 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("partner_id") private String partnerId;
                //internal 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;
                //internal string payMerTranNo;
                public string pay_mer_tran_no { get; set; }

                /// <summary>
                /// 交易场景，支付交易上送的交易场景，如B2C-API-DISPLAYCODE等 </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;
                //internal string tranScene;
                public string tran_scene { get; set; }

                /// <summary>
                /// "目前支持的字段包括银行端交易流水号bank_tran_no、第三方渠道third_party、第三方渠道交易流水号third_party_tran_no、微信支付宝详细付款信息payment_info、微信支付宝详细付款信息refund_info" </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;
                //internal IList<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("mer_ptc_id") private String merPtcId;
                //internal 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("sys_order_no") private String sysOrderNo;
                //internal string sysOrderNo;
                public string sys_order_no { 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;
                    //internal string requireField;
                    public string require_field { get; set; }

                }
                

            }
        }
    }
}
