123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using Edge.Core.Parser.BinaryParser.Util;
- using System;
- using System.Collections.Generic;
- namespace WayneChina_IcCardReader_SinoChem.MessageEntity.Outgoing
- {
- public enum VerificationResult
- {
- Success = 0x00,
- Failure
- }
- public class CardOnlineVerificationResultRequest : IcCardReaderMessageBase
- {
- public CardOnlineVerificationResultRequest(VerificationResult result, decimal amount, string errorInfo)
- {
- RawData = new List<byte>();
- RawData.Add(0x08);
- if (result == VerificationResult.Success)
- {
- RawData.Add(0x00);
- RawData.AddRange(Convert.ToInt32(amount * 100).GetBCDBytes(5));
- }
- 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]);
- }
- }
- }
- }
- /// <summary>
- /// Represents an online verification result.
- /// It's used for TCP communication against terminal.
- /// </summary>
- public class TcpCardOnlineVerificationResultRequest : IcCardReaderMessageBase
- {
- public TcpCardOnlineVerificationResultRequest(VerificationResult result, decimal amount, string errorInfo)
- {
- RawData = new List<byte>();
- RawData.Add(0x08);
- if (result == VerificationResult.Success)
- {
- RawData.Add(0x00);
- //For Tokheim
- for (int i = 0; i < 11; i++)
- {
- RawData.Add(0x00);
- }
- RawData.AddRange(Convert.ToInt32(amount * 100).GetBCDBytes(5));
- }
- 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]);
- }
- }
- }
- }
- }
|