using System.Xml.Serialization;
using Hncore.Infrastructure.Common;
using Hncore.Pass.PaymentCenter.Domain;

namespace Hncore.Pass.PaymentCenter.WeiFuTong.SwipeCard
{
    /// <summary>
    /// 刷卡支付下单请求
    /// </summary>
    [XmlRoot("xml", Namespace = "")]
    public class SwipeCardCreateOrderRequest : WeiFuTongRequestBase
    {
        /// <summary>
        /// 商户系统内部的订单号 ,5到32个字符、 只能包含字母数字或者下划线，区分大小写，每次下单请求确保在商户系统唯一
        /// </summary>
        [XmlElement("out_trade_no")]
        public string OutTradeNo { get; set; }

        /// <summary>
        /// 终端设备号，商户自定义。特别说明：对于QQ钱包支付，此参数必传，否则会报错。
        /// </summary>
        [XmlElement("device_info")]
        public string DeviceInfo { get; set; }

        /// <summary>
        /// 商品描述
        /// </summary>
        [XmlElement("body")]
        public string Body { get; set; }

        /// <summary>
        /// 总金额，以分为单位，不允许包含任何字、符号
        /// </summary>
        [XmlElement("total_fee")]
        public int TotalFee { get; set; }

        /// <summary>
        /// 订单生成的机器 IP
        /// </summary>
        [XmlElement("mch_create_ip")]
        public string MchCreateIp { get; set; } = NetworkHelper.GetPublicIp();

        /// <summary>
        /// 扫码支付授权码， 设备读取用户展示的条码或者二维码信息
        /// </summary>
        [XmlElement("auth_code")]
        public string AuthCode { get; set; }


        public SwipeCardCreateOrderRequest()
            : base("unified.trade.micropay")
        {
        }
    }
}