/// <summary>
 /// 含参构造函数
 /// </summary>
 /// <param name="out_order_no">商户服务订单号  <para>body商户系统内部服务订单号(不是交易单号),要求此参数只能由数字、大小写字母_-|*组成,且在同一个商户号下唯一。详见[商户订单号]。</para><para>示例值:1234323JKHDFE1243252</para></param>
 /// <param name="appid">应用ID  <para>body微信为调用商户分配的公众账号ID,接口传入的appid应该为公众号的appid和小程序的appid(在mp.weixin.qq.com申请的)或APP的appid(在open.weixin.qq.com申请的)。</para><para>校验规则:1、该appid需要与调用接口的商户号(即请求头中的商户号)有绑定关系,若未绑定,可参考该指引完成绑定(商家商户号与AppID账号关联管理);2、该appid需要在支付分系统中先进行配置</para><para></para><para>示例值:wxd678efh567hg6787</para></param>
 /// <param name="service_id">服务ID  <para>body该服务ID有本接口对应产品的权限。</para><para>示例值:500001</para></param>
 /// <param name="service_introduction">服务信息  <para>body服务信息,用于介绍本订单所提供的服务,当参数长度超过20个字符时,报错处理。</para><para>示例值:某某酒店</para></param>
 /// <param name="post_payments">后付费项目 <para>body后付费项目列表,最多包含100条付费项目。如果传入,用户侧则显示此参数。</para><para>可为null</para></param>
 /// <param name="post_discounts">后付费商户优惠 <para>body后付费商户优惠列表,最多包含30条商户优惠。如果传入,用户侧则显示此参数。</para><para>可为null</para></param>
 /// <param name="time_range">服务时间段 <para>body服务时间范围</para></param>
 /// <param name="location">服务位置 <para>body服务位置信息如果传入,用户侧则显示此参数。</para><para>可为null</para></param>
 /// <param name="risk_fund">订单风险金 <para>body订单风险金信息</para></param>
 /// <param name="attach">商户数据包  <para>body商户数据包可存放本订单所需信息,需要先urlencode后传入。当商户数据包总长度超出256字符时,报错处理。</para><para>可为null</para></param>
 /// <param name="notify_url">商户回调地址  <para>body商户接收用户确认订单和付款成功回调通知的地址。</para><para>示例值:https://api.test.com</para></param>
 /// <param name="openid">用户标识  <para>body微信用户在商户对应appid下的唯一标识。免确认订单:必填需确认订单:不填</para><para>获取用户openid指引</para></param>
 /// <param name="need_user_confirm">是否需要用户确认 <para>body枚举值:false:免确认订单true:需确认订单默认值true</para><para>示例值:true</para><para>可为null</para></param>
 public CreateServiceOrderRequestData(string out_order_no, string appid, string service_id, string service_introduction, Post_Payment[] post_payments, Post_Discount[] post_discounts, Time_Range time_range, Location location, Risk_Fund risk_fund, string attach, string notify_url, string openid, bool?need_user_confirm)
 {
     this.out_order_no         = out_order_no;
     this.appid                = appid;
     this.service_id           = service_id;
     this.service_introduction = service_introduction;
     this.post_payments        = post_payments;
     this.post_discounts       = post_discounts;
     this.time_range           = time_range;
     this.location             = location;
     this.risk_fund            = risk_fund;
     this.attach               = attach;
     this.notify_url           = notify_url;
     this.openid               = openid;
     this.need_user_confirm    = need_user_confirm;
 }
 /// <summary>
 /// 含参构造函数
 /// </summary>
 /// <param name="appid">应用ID  <para>调用接口提交的公众账号ID。</para><para>示例值:wxd678efh567hg6787</para></param>
 /// <param name="mchid">商户号  <para>调用接口提交的商户号。</para><para>示例值:1230000109</para></param>
 /// <param name="out_order_no">商户服务订单号  <para>调用接口提交的商户服务订单号。</para><para>示例值:1234323JKHDFE1243252</para></param>
 /// <param name="service_id">服务ID  <para>调用该接口提交的服务ID。</para><para>示例值:500001</para></param>
 /// <param name="openid">用户标识 <para>微信用户在商户对应appid下的唯一标识。</para><para>示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</para></param>
 /// <param name="state">服务订单状态  <para>表示当前单据状态。</para><para>枚举值:1、DOING:服务订单进行中</para><para>示例值:DOING</para></param>
 /// <param name="state_description">订单状态说明  <para>对服务订单"进行中"状态的附加说明。1、USER_CONFIRM:用户确认示例值:USER_CONFIRM</para><para>可为null</para></param>
 /// <param name="total_amount">商户收款总金额  <para>总金额,大于等于0的数字,单位为分,只能为整数,详见支付金额。此参数需满足:总金额=后付费项目金额之和-后付费商户优惠项目金额之和,且小于等于订单风险金额。取消订单时,该字段必须为0。</para><para>示例值:40000</para><para>可为null</para></param>
 /// <param name="service_introduction">服务信息  <para>服务信息,用于介绍本订单所提供的服务不超过20个字符,超出报错处理。</para><para>示例值:嗨客餐厅用餐</para></param>
 /// <param name="post_payments">后付费项目 <para>付费项目列表,最多包含100条付费项目。</para></param>
 /// <param name="post_discounts">后付费商户优惠 <para>商户优惠列表,最多包含5条商户优惠。</para><para>可为null</para></param>
 /// <param name="risk_fund">订单风险金 <para>订单风险金信息</para></param>
 /// <param name="time_range">服务时间段 <para>服务使用时间范围</para></param>
 /// <param name="location">服务位置 <para>服务使用位置信息。</para><para>可为null</para></param>
 /// <param name="attach">商户数据包  <para>商户数据包可存放本订单所需信息,需要先urlencode后传入。当商户数据包总长度超出256字符时,报错处理。</para><para>示例值:attach</para><para>可为null</para></param>
 /// <param name="order_id">微信支付服务订单号  <para>微信支付服务订单号,每个微信支付服务订单号与商户号下对应的商户服务订单号一一对应。</para><para>示例值:15646546545165651651</para><para>可为null</para></param>
 /// <param name="need_collection">是否需要收款  <para>是否需要收款。true:微信支付分代收款false:无需微信支付分代收款</para><para>示例值:false</para><para>可为null</para></param>
 public ConfirmServiceOrderNotifyJson(string appid, string mchid, string out_order_no, string service_id, string openid, string state, string state_description, long total_amount, string service_introduction, Post_Payments[] post_payments, Post_Discounts[] post_discounts, Risk_Fund risk_fund, Time_Range time_range, Location location, string attach, string order_id, bool need_collection)
 {
     this.appid                = appid;
     this.mchid                = mchid;
     this.out_order_no         = out_order_no;
     this.service_id           = service_id;
     this.openid               = openid;
     this.state                = state;
     this.state_description    = state_description;
     this.total_amount         = total_amount;
     this.service_introduction = service_introduction;
     this.post_payments        = post_payments;
     this.post_discounts       = post_discounts;
     this.risk_fund            = risk_fund;
     this.time_range           = time_range;
     this.location             = location;
     this.attach               = attach;
     this.order_id             = order_id;
     this.need_collection      = need_collection;
 }
 /// <summary>
 /// 含参构造函数
 /// </summary>
 /// <param name="appid">应用ID  <para>调用接口提交的公众账号ID。</para><para>示例值:wxd678efh567hg6787</para></param>
 /// <param name="mchid">商户号  <para>调用接口提交的商户号。</para><para>示例值:1230000109</para></param>
 /// <param name="out_order_no">商户服务订单号  <para>调用接口提交的商户服务订单号。</para><para>示例值:1234323JKHDFE1243252</para></param>
 /// <param name="service_id">服务ID  <para>调用该接口提交的服务ID。</para><para>示例值:500001</para></param>
 /// <param name="service_introduction">服务信息  <para>服务信息,用于介绍本订单所提供的服务。</para><para>示例值:某某酒店</para></param>
 /// <param name="state">服务订单状态  <para>表示当前单据状态。</para><para>枚举值:1、CREATED:商户已创建服务订单2、DOING:服务订单进行中3、DONE:服务订单完成4、REVOKED:商户取消服务订单5、EXPIRED:服务订单已失效</para><para>示例值:CREATED</para></param>
 /// <param name="state_description">订单状态说明  <para>对服务订单"进行中"状态的附加说明。1、USER_CONFIRM:用户确认2、MCH_COMPLETE:商户完结</para><para>示例值:MCH_COMPLETE</para><para>可为null</para></param>
 /// <param name="post_payments">后付费项目 <para>后付费项目列表,最多包含100条付费项目。如果传入,用户侧则显示此参数。</para><para>可为null</para></param>
 /// <param name="post_discounts">后付费商户优惠 <para>后付费商户优惠,最多包含30条付费项目。如果传入,用户侧则显示此参数。</para><para>可为null</para></param>
 /// <param name="risk_fund">订单风险金 <para>订单风险金信息</para></param>
 /// <param name="time_range">服务时间段 <para>服务时间范围</para></param>
 /// <param name="location">服务位置 <para>服务使用信息。如果传入,用户侧则显示此参数。</para><para>可为null</para></param>
 /// <param name="attach">商户数据包  <para>商户数据包,可存放本订单所需信息,需要先urlencode后传入,总长度不大于256字符,超出报错处理。</para><para>示例值:Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald</para><para>可为null</para></param>
 /// <param name="notify_url">商户回调地址  <para>商户接收用户确认订单或扣款成功回调通知的地址。</para><para>示例值:https://api.test.com</para><para>可为null</para></param>
 /// <param name="order_id">微信支付服务订单号  <para>微信支付服务订单号,每个微信支付服务订单号与商户号下对应的商户服务订单号一一对应。</para><para>示例值:15646546545165651651</para></param>
 /// <param name="package">跳转微信侧小程序订单数据  <para>用户跳转到微信侧小程序订单数据,需确认模式特有API中调起支付分-确认订单传入。该数据一小时内有效。</para><para>示例值:DJIOSQPYWDxsjdldeuwhdodwxasd_dDiodnwjh9we</para></param>
 public CreateServiceOrderReturnJson(string appid, string mchid, string out_order_no, string service_id, string service_introduction, string state, string state_description, Post_Payments[] post_payments, Post_Discounts[] post_discounts, Risk_Fund risk_fund, Time_Range time_range, Location location, string attach, string notify_url, string order_id, string package)
 {
     this.appid                = appid;
     this.mchid                = mchid;
     this.out_order_no         = out_order_no;
     this.service_id           = service_id;
     this.service_introduction = service_introduction;
     this.state                = state;
     this.state_description    = state_description;
     this.post_payments        = post_payments;
     this.post_discounts       = post_discounts;
     this.risk_fund            = risk_fund;
     this.time_range           = time_range;
     this.location             = location;
     this.attach               = attach;
     this.notify_url           = notify_url;
     this.order_id             = order_id;
     this.package              = package;
 }