using Edge.Core.Parser.BinaryParser.Attributes;
using HengshanPaymentTerminal.Support;
namespace HengshanPaymentTerminal.MessageEntity.Incoming
{
///
/// Authorization request from terminal to system, 0x17.
/// 授权请求,命令字0x17。
///
public class AuthRequest : CardMessageBase
{
///
/// Constructor
///
public AuthRequest() : base(Command.AuthRequest)
{
}
///
/// Id of the terminal.
/// 终端编号。
///
[Format(4, EncodingType.BcdString, -90)]
public string TerminalId { get; set; }
///
/// Logical card number.
/// 逻辑卡号。
///
[Format(10, EncodingType.BcdString, -89)]
public string Asn { get; set; }
[Format(3, EncodingType.BIN, -88)]
public int MaxAmount { get; set; }
[Format(3, EncodingType.BIN, -87)]
public int MaxVolume { get; set; }
[Format(7, EncodingType.BcdString, -86)]
public string TransactionTime { get; set; }
[Format(4, EncodingType.BIN, -85)]
public int PosTtc { get; set; }
[Format(2, EncodingType.BIN, -84)]
public ushort SeqNo { get; set; }
[Format(1, EncodingType.BIN, -83)]
public byte PresetType { get; set; }
[Format(2, EncodingType.HexString, -82)]
public string FPCode { get; set; }
[Format(2, EncodingType.HexString, -81)]
public string FuelProductCode { get; set; }
[Format(3, EncodingType.HexString, -80)]
public string CardInfo { get; set; }
[Format(1, EncodingType.BIN, -79)]
public byte PaymentType { get; set; }
public CardInfo CurrentCardInfo
{
get
{
return new CardInfo
{
CardType = CardInfo.Substring(0, 2).ToByte(),
CardCtc = CardInfo.Substring(2, 4).ToUInt16()
};
}
}
public FuelingPointCode FuelingPoint
{
get
{
return new FuelingPointCode
{
NozzleNo = FPCode.Substring(0, 2).ToByte(),
PumpNo = FPCode.Substring(2, 2).ToByte()
};
}
}
}
}