通訊規格

通訊協定

  •  RS232序列資料通訊介面
  •  傳輸模式:非同步傳輸 (Asynchronous Serial Communication)
  •  傳輸鮑率 (Baud Rate):115200 bps
  •  資料位元 (Data Bits):8 Bits
  •  同位檢查 (Parity):None (無同位檢查)
  •  停止位 (Stop Bits):1 Bits

資料結構與校驗機制

收銀機(ECR)與刷卡機(EDC)之間傳輸的所有資料封包,均需以標準 ASCII 字元包裹,交易資料格式

<STX> [DATA (600 Byte)] <ETX> <LRC>

  • <STX>:起始字元,0x02
  • [DATA]:交易資料,共 600 Byte
  • <ETX>:結束字元,0x03
  • <LRC>:檢查碼
    • 計算規則:
      從 DATA 的第 1 個 Byte 開始,逐 Byte 與後續位元組執行互斥或
      (Exclusive-Or/XOR)運算,直到並包含
      <ETX>。
    • 注意事項:
      計算範圍不包含 <STX>。

通訊內容

Request (ECR) Response (EDC)
STXDATAETXLRC>> 
 <<ACKACK
等待處理中(Timeout >60秒) 刷磁條卡,插晶片或感應信用卡
 <<STXDATAETXLRC
 ACKACK>> 
  • <ACK>(0x06): 表示成功收到共 603 Byte 的資料,並且需傳送兩個 <ACK>。
  • <NAK>(0x15): 表示資料接收不完全或資料校驗錯誤,並且需傳送兩個 <NAK>。
  • Timeout: 交易逾時時間建議設定為 60~120 秒。

通訊內容說明

STX  byte 

  • ASCII字符集中的控制字符STX(Start of Text)
  • 十六進制(Hexadecimal)值為 0x02
				
					byte STX = 0x02 ;
				
			

DATA  byte 

  • 交易電文內容,長度總共600字元。

ETX byte 

  • ASCII字符集中的控制字符ETX(End of Text)
  • 十六進制(Hexadecimal)值為0x03
				
					byte ETX = 0x03 ;
				
			

LRC byte 電文檢查碼

  • 將LRC初始值=0跟Data(請求電文內容)+ETX(請求電文結束內容)進行XOR位元運算的結果
				
					// 計算 LRC
byte LRC = 0;       // LRC 的初始值
foreach (byte b in (dataBytes))
{
   LRC ^= b;   // 進行 XOR 運算
}
LRC ^= ETX; // 進行 XOR 運算
				
			

ACK byte 確認回應

  • 由刷卡機產生回傳
  • ASCII字符集中的控制字符ACK,確認收到請求回應
  • 十六進制(Hexadecimal)值為0x06
				
					byte ACK = 0x06 ;
				
			

通訊流程

  • 正常情況

❗ 注意事項:

  • 刷卡機需在主畫面才能接收POS指令
  • POS等待處理中 (timeout總秒數至少要60秒逾時)
  • 非正常情況

❗ Request錯誤,通常發生時機:

  • LRC 錯誤 
  • 資料長度錯誤 

Copyright © Green World FinTech Service Co., Ltd. All rights reserved.

綠界官方網站