CardOnlineVerificationResultRequest.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Parser.BinaryParser.Util;
  2. using System;
  3. using System.Collections.Generic;
  4. namespace WayneChina_IcCardReader_SinoChem.MessageEntity.Outgoing
  5. {
  6. public enum VerificationResult
  7. {
  8. Success = 0x00,
  9. Failure
  10. }
  11. public class CardOnlineVerificationResultRequest : IcCardReaderMessageBase
  12. {
  13. public CardOnlineVerificationResultRequest(VerificationResult result, decimal amount, string errorInfo)
  14. {
  15. RawData = new List<byte>();
  16. RawData.Add(0x08);
  17. if (result == VerificationResult.Success)
  18. {
  19. RawData.Add(0x00);
  20. RawData.AddRange(Convert.ToInt32(amount * 100).GetBCDBytes(5));
  21. }
  22. else
  23. {
  24. RawData.Add(0x01);
  25. var errorInfoBytes = System.Text.Encoding.GetEncoding("GBK").GetBytes(errorInfo.PadRight(16, ' '));
  26. if (errorInfoBytes.Length >= 16)
  27. {
  28. for (int i = 0; i < 16; i++)
  29. RawData.Add(errorInfoBytes[i]);
  30. }
  31. }
  32. }
  33. }
  34. }