ValidateCardRequest.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using Edge.Core.Parser.BinaryParser.Attributes;
  2. using HengshanPaymentTerminal.Support;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. namespace HengshanPaymentTerminal.MessageEntity.Incoming
  7. {
  8. /// <summary>
  9. /// IC terminal on pump requests card validation on system
  10. /// 油机卡终端向后台发起验卡请求
  11. /// Sample: FA010161001C1500000001000000000000100105536DCA9D06010103001800025EC8FF3258
  12. /// Analysis: FA 01 01 61 001C 15 00000001 00000000000010010553 6DCA9D06 0101 030018 00025EC8 FF 3258
  13. /// </summary>
  14. public class ValidateCardRequest : CardMessageBase
  15. {
  16. #region Constructor
  17. public ValidateCardRequest() : base(Command.ValidateCardRequest)
  18. {
  19. }
  20. #endregion
  21. #region Properties
  22. /// <summary>
  23. /// The ID of the IC card terminal.
  24. /// 终端编号,类型:压缩BCD,4字节
  25. /// </summary>
  26. [Format(4, EncodingType.BcdString, -90)]
  27. public string TerminalID { get; set; }
  28. /// <summary>
  29. /// Logical card number.
  30. /// 逻辑卡号,类型:压缩BCD,10字节
  31. /// </summary>
  32. [Format(10, EncodingType.BcdString, -89)]
  33. public string Asn { get; set; }
  34. /// <summary>
  35. /// The physical card number.
  36. /// 物理卡号,HEX,4字节
  37. /// </summary>
  38. [Format(4, EncodingType.ReverseHexString, -88)]
  39. public string PhysicalCardNo { get; set; }
  40. /// <summary>
  41. /// Fueling poing code, 1 byte nozzle number, 1 byte pump number.
  42. /// 加油点编号,HEX,2字节,1字节油枪号,1字节泵编号
  43. /// </summary>
  44. [Format(2, EncodingType.HexString, -87)]
  45. public string FPCode { get; set; }
  46. [Format(3, EncodingType.HexString, -86)]
  47. public string CardInfo { get; set; }
  48. /// <summary>
  49. /// Card balance.
  50. /// 卡钱包余额,HEX,4字节
  51. /// </summary>
  52. [Format(4, EncodingType.BIN, -85)]
  53. public int Balance { get; set; }
  54. //THIS FIELD WAS SPECIFIED BUT NOT USED.
  55. /// <summary>
  56. /// Time stamp of the transaction.
  57. /// 交易时间,压缩BCD,7字节
  58. /// </summary>
  59. public DateTime DispenserTime { get; set; }
  60. public FuelingPointCode FuelingPoint
  61. {
  62. get
  63. {
  64. return new FuelingPointCode
  65. {
  66. NozzleNo = FPCode.Substring(0, 2).ToByte(),
  67. PumpNo = FPCode.Substring(2, 2).ToByte()
  68. };
  69. }
  70. }
  71. public CardInfo CurrentCardInfo
  72. {
  73. get
  74. {
  75. return new CardInfo
  76. {
  77. CardType = CardInfo.Substring(0, 2).ToByte(),
  78. CardCtc = CardInfo.Substring(2, 4).ToUInt16()
  79. };
  80. }
  81. }
  82. #endregion
  83. }
  84. }