CardOnlinePaymentResultRequest.cs 1.2 KB

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