交易流程 / 預先授權完成

應用場景

POS呼叫刷卡機進行信用卡完成預先授權交易時

  • Step 1. POS:呼叫刷卡機完成預先授權交易。
  • Step 2. 刷卡機:進行信用卡完成預先刷卡授權後並回傳授權結果。

❗ 注意事項:

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

交易流程圖

請求電文內容

 STX + Data + ETX + LRC

請求開始電文 STX

STX  byte 
本文開始 必填

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

請求電文參數說明 (Data)

Trans Type String(2) 
交易別 必填
位置1

  • 11 AUTH COMPLE 預先授權完成

Host ID String(2) 
銀行別 必填 
位置3

  • 01 信用卡 

Invoice Number String(6) 
調閱編號  
位置5

  • 請填空白

Card Number  String(19) 
信用卡卡號
位置11

  • 請填空白

CUP Flag  String(2)
銀聯交易 必填 
位置30

  • 00 一般交易

Trans Amount  String(12) 
交易金額
位置32

右靠、左補0,包含兩位小數, 不包含小數點

Trans Date  String(6)
交易日期
位置44

  • 請填預授權回傳之交易日期

Trans Time  String(6)
交易時間
位置50

  • 請填空白

Approval Number  String(6)
授權碼
位置56

  • 請填預授權回傳之授權碼

ECR Response Code  String(4)
通訊回應碼
位置62

  • 請填空白

Terminal ID  String(8)
端末機代號
位置66

  • 請填空白

Merchant ID  String(15)
商店代號
位置74

  • 請填空白

EC Order Number  String(20)
綠界授權單號
位置89

  • 請填預授權回傳之綠界授權單號

Store ID  String(18)
櫃號 選填 
位置109

18碼,不傳送時必須填滿空白

 

Card Type  String(2)
卡片代碼
位置127

  • 請填空白

Redeem Amount  String(12)
折抵金額
位置129

  • 請填空白

Redeem Point  String(10)
折抵點數
位置141

  • 請填空白

Redeem Balance  String(10)
剩餘紅利點數
位置151

  • 請填空白

Installment Period  String(2)
分期期數
位置161

  • 請填空白

Down Payment Amount  String(12)
首期金額
位置163

  • 請填空白

Down Payment Amount  String(12)
每期金額
位置175

  • 請填空白

Encrypted Card Number  String(50)
電子發票加密卡號
位置187

  • 請填空白

POS Number  String(20)
POS設備編號 有條件必填 

位置237

  • 20碼,左靠、右補空白

Reserve  String(236)
保留
位置257

  • 請填空白

POS Request Time  String(14)
收銀機系統時間 必填 
位置493

  • 西元年二十四小時制YYYYMMDDHHMMSS

Request Hash Value  String(40)
發送資料雜湊值 必填 
位置507

  • 把欄位1〜欄位24,使用Sha-1演算法得出20個Bytes的Hash Value,然後轉為ASCII字元為40個Bytes

EDC Response Time String(14)
刷卡機系統時間
位置547

  • 請填空白

Response Hash Value String(40)
回應資料雜湊值
位置561

  • 請填空白

請求電文結束 ETX

ETX byte
本文結束 必填

0x03

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

請求電文壓碼 LRC

LRC byte 
電文檢查碼 必填

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

請求電文參數說明範例 (預先授權完成交易)

  • 電文內容:STX + Data + ETX + LRC
  • 電文格式:byte
				
					....
				
			

回覆電文內容

ACK + ACK + STX + Data + ETX + LRC

回覆電文接收成功 ACK

ACK byte
確認回應

0x06,第一個回應

  • 由刷卡機產生回傳
  • ASCII字符集中的控制字符ACK,確認收到請求回應
				
					byte ACK = 0x06 ;
				
			

ACK byte
確認回應

0x06,第二個回應

  • 由刷卡機產生回傳
  • ASCII字符集中的控制字符ACK,確認收到請求回應
				
					byte ACK = 0x06 ;
				
			

回覆開始電文 STX

STX  byte 
本文開始 必填

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

回覆電文參數說明(Data)

Trans Type String(2)
交易別
位置1

由刷卡機產生回傳
  • 10 PREAUTH 預先授權

Host ID String(2)
銀行別
位置3

由刷卡機產生回傳
  • 01 信用卡

Invoice Number String(6)
調閱編號  
位置5

 由刷卡機產生回傳

 

Card Number  String(19)
信用卡卡號
位置11

由刷卡機產生回傳

  • 左靠、右補空白
  • 除前9碼及後4碼顯示外,其餘用*隱藏

 

CUP Flag  String(2)
銀聯交易
位置30

由刷卡機產生回傳
  • 00 一般交易
  • 01 銀聯交易

Trans Amount  String(12)
交易金額
位置32

由刷卡機產生回傳

  • 右靠、左補0,包含兩位小數,
  • 不包含小數點

Trans Date  String(6)
交易日期
位置44

由刷卡機產生回傳

  • 格式為西元年(YYMMDD)

Trans Time  String(6)
交易時間
位置50

由刷卡機產生回傳

  • 格式為二十四小時制(hhmmss)

Approval Number  String(6)
授權碼
位置56

由刷卡機產生回傳

 

ECR Response Code  String(4)
通訊回應碼
位置62

由刷卡機回傳

  • 0000 Approved 授權
  • 0001 Error 拒絕
  • 0002 Call Bank 請聯絡銀行
  • 0003 Communication Error 通訊失敗

Terminal ID  String(8)
端末機代號
位置66

由刷卡機回傳

Merchant ID  String(15)
商店代號
位置74

由刷卡機回傳

  • 為空白

EC Order Number  String(20)
綠界授權單號
位置89

由刷卡機回傳

Store ID  String(18)
櫃號
位置109

依請求傳入參數值回傳

Card Type  String(2)
卡片代碼
位置127

 由刷卡機產生回傳

  • 00 VISA
  • 01 MASTERCARD
  • 02 JCB
  • 03 CUP

Redeem Amount  String(12)
折抵金額
位置129

為空白

Redeem Point  String(10)
折抵點數
位置141

為空白

Redeem Balance  String(10)
剩餘紅利點數
位置151

為空白

Installment Period  String(2)
分期期數
位置161

為空白

Down Payment Amount  String(12)
首期金額
位置163

為空白

Down Payment Amount  String(12)
每期金額
位置175

為空白

Encrypted Card Number  String(50)
電子發票加密卡號
位置187

由刷卡機產生回傳

  • 銀行資訊+ 44碼加密卡號銀行資訊為前3碼B00+銀行代碼或卡號前6碼

❗ 注意事項:

  • 案例1: 銀行有加入發票載具(該欄位第1碼為英文字母B:B00+銀行代號)

B00807OdZm2SuYU65yEnAG++vaCd16yYS0Jt5mak50IphdwXs

  • 案例2: 銀行未加入發票載具(該欄位第1碼為數字:則為卡號前6碼)

474832OdZm2SuYU65yEnAG++vaCd16yYS0Jt5mak50IphdwXs=

POS Number  String(20)
POS設備編號
位置237

依請求傳入參數值回傳

Reserve  String(236)
保留
位置257

為空白

POS Request Time  String(14)
收銀機系統時間
位置493

依請求傳入參數值回傳

Request Hash Value  String(40)
發送資料雜湊值
位置507

依請求傳入參數值回傳

EDC Response Time String(14)
刷卡機系統時間
位置547

西元年二十四小時制YYYYMMDDHHMMSS

Response Hash Value String(40)
回應資料雜湊值
位置561

把欄位1〜欄位26,使用Sha-1演算法得出20個Bytes的Hash Value,然後轉為ASCII字元為40個Bytes

回覆電文結束 ETX

ETX byte
本文結束 必填

0x03

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

回覆電文壓碼 LRC

LRC byte 
電文檢查碼 必填

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

回覆電文參數說明範例 (預先授權完成交易)

  • 電文內容:ACK + ACK + STX + Data + ETX + LRC
  • 電文格式:byte
				
					....
				
			

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

綠界官方網站