using ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ShellChina_EPS_Project_CarPlatePay_EpsClient_App.MessageEntity
{
    public abstract class PaymentCommand : MessageBase
    {
        public PaymentCommand()
        {
            base.MessageTypeIdentifier = 0200;
        }

        /// <summary>
        /// 定长,3个字节的BCD码
        /// </summary>
        public virtual int P_3_处理码 { get; protected set; }

        /// <summary>
        /// 定长,6个字节的BCD码。交易金额,单位按分来计。右对齐,左补0,如123.45元格式为0x00 00 00 01 23 45
        /// </summary>
        public virtual decimal P_4_交易金额 { get; protected set; }

        /// <summary>
        /// 定长,6个字节的BCD码。单位按分来计。右对齐,左补0
        /// </summary>
        public virtual decimal P_5_实付金额 { get; protected set; }

        /// <summary>
        /// 定长,7个字节BCD码,格式为YYYYMMDDhhmmss
        /// </summary>
        public virtual DateTime P_7_交易时间 { get; protected set; }

        /// <summary>
        /// 定长,9个字节ASCII码
        /// </summary>
        public virtual string P_12_交易流水号 { get; protected set; }

        /// <summary>
        /// LLVAR ans..99   变长,最大长度99字节的ASCII码。
        /// </summary>
        public virtual string P_18_商户订单号 { get; protected set; }

        /// <summary>
        /// 2位定长ASCII码。定长右对齐,左补0
        /// </summary>
        public virtual string P_23_加油枪号 { get; protected set; }

        /// <summary>
        /// 20位定长ASCII码。定长右对齐,左补0 
        /// </summary>
        public virtual string P_24_会员ID { get; protected set; }

        /// <summary>
        /// LLLVAR ans..64   变长,最大长度64字节的ASCII码
        /// </summary>
        public virtual string P_34_车牌号码 { get; protected set; }

        /// <summary>
        /// 交易响应码, 定长,5个字节ASCII码,表示交易结果。“00000”表示交易成功,“00001”表示交易失败
        /// </summary>
        public virtual string P_39_交易响应码 { get; protected set; }

        /// <summary>
        /// LLLVAR ans..999     错误信息,展示给客户的错误信息 变长,最大长度999字节的ASCII码。
        ///错误信息,此域可能为中文。当39域为“00001”时,此域传输的出错提示信息
        /// </summary>
        public virtual string P_40_错误信息 { get; protected set; }

        /// <summary>
        /// 终端编号, 此终端号由EPS分配,需要配置到终端内
        /// </summary>
        public virtual string P_41_终端编号 { get; protected set; }
    }
}