using Parser.BinaryParser.Util; using System; using System.Collections.Generic; namespace WayneChina_IcCardReader_SinoChem.MessageEntity.Outgoing { public enum ICOnlinePayResult { Success = 0x00, Failure } public class CardOnlinePaymentResultRequest : IcCardReaderMessageBase { public CardOnlinePaymentResultRequest(ICOnlinePayResult result, double amount, int displayTimeout, string errorInfo) { RawData = new List(); RawData.Add(0x09); if (result == ICOnlinePayResult.Success) { RawData.Add(0x00); RawData.AddRange(Convert.ToInt32(amount * 100).GetBCDBytes(3)); RawData.AddRange(displayTimeout.GetBCDBytes(1)); } else { RawData.Add(0x01); var errorInfoBytes = System.Text.Encoding.GetEncoding("GBK").GetBytes(errorInfo.PadRight(16, ' ')); if (errorInfoBytes.Length >= 16) { for (int i = 0; i < 16; i++) RawData.Add(errorInfoBytes[i]); } } } } }