POS機的報文格式
POS機的主要功能點:
1. 簽到
2. 輸入密碼
3. 消費
4. 余額查詢
5. 撤銷
6. 系統設置
我公司建議:
1:為統一格式及今后擴展,近可能按照銀聯標準開發:
2:增加“批結算”功能;
3:建議把卡號信息寫在磁條卡“2磁道”;
4:報文格式:
TPDU(10字節) + 報文頭(12字節)+ 消息類型(4字節)+ 位圖(8字節)+位圖保護域的內容(n字節)
A:POS終端與POS中心共用同一主密鑰,在POS簽到時,POS中心將“工作密鑰”加密后回送給POS終端(可以采用“單DES” 或”3DES”加密算法),POS終端接收到數據后,將“工作密鑰”解密出來,保存在密碼鍵盤中;作為下次簽到前交易時的工作密鑰(密碼加密密鑰和64域 MAC密鑰)使用。
B:數據域的具體說明請參考“中國銀聯POS終端規范(2006年修訂版).doc”;
表1 交易要素
交易類型 | 處理碼 (3 域) | 服務點條件碼 (25 域) | 消息類型 | 交易類型碼 (60.1域) | 是否引發沖正 |
查詢 | 310000 | 00 | 0200/0210 | 01 | 無 |
預授權 | 030000 | 06 | 0100/0110 | 10 | 有 |
追加預授權 | 030000 | 60 | 0100/0110 | 10 | 有 |
預授權撤銷 | 200000 | 06 | 0100/0110 | 11 | 有 |
預授權完成(聯機) | 000000 | 06 | 0200/0210 | 20 | 有 |
預授權完成撤銷 | 200000 | 06 | 0200/0210 | 21 | 有 |
預授權完成(離線) | 000000 | 06 | 0220/0230 | 24 | 無 |
消費 | 000000 | 00 | 0200/0210 | 22 | 有 |
消費撤銷 | 200000 | 00 | 0200/0210 | 23 | 有 |
退貨 | 200000 | 00 | 0220/0230 | 25 | 無 |
結算 | 000000 | 00 | 0220/0230 | 30 | 無 |
結算調整 | 000000 | 00 | 0220/0230 | 32 | 無 |
結算調整(追加小費) | 000000 | 00 | 0220/0230 | 34 | 無 |
基于PBOC借/貸記標準的IC卡腳本處理結果通知 | 同執行該腳本通知的原始交易 | 同執行該腳本通知的原始交易 | 0620/0630 | 同執行該腳本通知的原始交易 | 無 |
離線消費 | 000000 | 00 | 0200/0210 | 36 | 無 |
基于PBOC電子錢包的IC卡指定賬戶圈存 | 600000 | 91 | 0200/0210 | 40 | 有 |
基于PBOC電子錢包的IC卡非指定賬戶轉賬圈存 | 620000 | 91 | 0200/0210 | 42 | 有 |
基于PBOC電子錢包的IC卡現金充值 | 630000 | 91 | 0200/0210 | 41 | 有 |
一:報文格式
POS終端上送POS中心的消息報文結構包括TPDU、報文頭和應用數據三部分:
TPDU | 報文頭 | 應用數據 | ||||||
ISO8583 Msg | ||||||||
ID | 目的 地址 | 源地址 | 應用類別定義 | 軟件 版本號 | 終端 狀態 | 處理 要求 | 保留 使用 | 交易數據 |
60H | NN NN | NN NN | N2 | N2 | N1 | N1 | N6 | 不定長度 |
—— TPDU說明:長度為5個字節。目前銀聯默認為6000090000
—— 報文頭說明:總長度為12字節,壓縮時用BCD碼表示為6個字節長度的數值。
在POS上送的請求/通知報文中,該數值由POS終端應用程序在打包上送時根據POS終端參數和當前狀態填入應用類別、軟件版本號和終端狀態,用于POS中心根據數值進行相應的處理。
在POS中心返回的響應報文中,由POS中心填入處理要求,其他域保持原值返回,POS將根據收到報文頭中的處理要求進行相應處理。
報文頭取值如下:
● 應用類別定義:
目前只定義
磁條卡金融支付類應用為:60
IC卡金融支付類應用為: 61
磁條卡增值業務類支付為:62
IC卡增值業務類支付為: 63
● 軟件版本號:
表2 軟件版本號
軟件版本號 | 說 明 |
10 | 2001年人民銀行POS規范之前版本 |
11 | 2001年人民銀行POS規范版本 |
21 | 2002年銀聯POS規范版本 |
22 | 2004年銀聯POS規范版本 |
● 終端狀態:
表3 終端狀態
終端狀態 | 含義 |
0 | 正常交易狀態 |
1 | 測試交易狀態 |
● 處理要求:
表4 處理要求
處理要求編碼 | 處理要求說明 |
0 | 無處理要求 |
1 | 下傳終端磁條卡參數 |
2 | 上傳終端磁條卡狀態信息 |
3 | 重新簽到 |
4 | 通知終端發起更新公鑰信息操作 |
5 | 下載終端IC卡參數 |
6 | TMS參數下載 |
● 保留使用:暫時不用,填全“0”。
—— 應用數據說明:符合ISO 8583金融交換信息格式的交易數據,本標準將定義各種交易的報文格式。
1.1.1 符號定義
—— M 強制域(Mandatory),此域在該消息中必須出現否則將被認為消息格式出錯。
—— C 條件域(Conditional),此域在一定條件下出現在該消息中,具體的條件請參考備注說明。
—— O 選用域(Optional),此域在該消息中由發送方自選。。
—— Space 此域在該種消息中不出現。
—— A 字母a-z
—— n 數字0-9
—— s 特殊字符
—— an 字母和數字字符
—— ans 字母、數字和特殊字符
—— MM 月
—— DD 日
—— YY 年
—— hh 小時
—— mm 分
—— ss 秒
—— LL 允許的最大長度為99
—— LLL 允許的最大長度為999
—— VAR 可變長度域
—— b 數據的二進制表示,后跟數字表示位(bit)的個數
—— B 用于表示變長的二進制數,后跟數字表示二進制數據所占字節(Byte)的個數
—— z 按GB/T 15120和GB/T 17552的2、3磁道編碼
—— cn BCD壓縮編碼數值
二:具體交易說明
1:簽到
表5 簽到報文
位 | 域名定義 | 屬性 | 格式 | 類型 | 請求 | 響應 | 備 注 | |
| 消息類型 | n4 |
| BCD | 0800 | 0810 | MSG-TYPE-ID | |
| 位元表 | b64 |
| BINARY | M | M | BIT MAP | |
11 | 受卡方系統跟蹤號 | n6 |
| BCD | M | M | POS終端交易流水 | |
12 | 受卡方所在地時間 | n6 | hhmmss | BCD |
| M |
| |
13 | 受卡方所在地日期 | n4 | MMDD | BCD |
| M |
| |
32 | 受理方標識碼 | n..11 | LLVAR | BCD |
| M |
| |
37 | 檢索參考號 | an12 |
| ASCII |
| M |
| |
39 | 應答碼 | an2 |
| ASCII |
| M |
| |
41 | 受卡機終端標識碼 | ans8 |
| ASCII | M | M | 終端代碼 | |
42 | 受卡方標識碼 | ans15 |
| ASCII | M | M | 商戶代碼 | |
60 | 自定義域 | n…011 | LLLVAR | BCD | M | M |
| |
60.1 | 交易類型碼 | n2 |
| BCD | M | M | 填“00” | |
60.2 | 批次號 | n6 |
| BCD | M | M |
| |
60.3 | 網絡管理信息碼 | n3 |
| BCD | M | M | 單倍長密鑰算法終端用001/ 雙倍長密鑰算法終端用003 | |
62 | 終端密鑰 | b...056 | LLLVAR | BINARY |
| C | 當39域為“00”時必選,為24、40或56字節的PIK和MAK | |
63 | 自定義域 | ans...003 | LLLVAR | ASCII | M |
|
| |
63.1 | 操作員代碼 | an3 |
| ASCII | M |
|
| |
2:消費
表6 消費報文
位 | 域名定義 | 屬性 | 格式 | 類型 | 請求 | 響應 | 備 注 |
| 消息類型 | N4 |
| BCD | 0200 | 0210 | MSG-TYPE-ID |
| 位元表 | B64 |
| BINARY | M | M | BIT MAP |
2 | 主賬號 | n..19 | LLVAR | BCD | C | M | 當22域指明非磁條輸入且可判卡號 |
3 | 交易處理碼 | N6 |
| BCD | M | M | 00xxxx |
4 | 交易金額 | N12 |
| BCD | M | M |
|
11 | 受卡方系統跟蹤號 | N6 |
| BCD | M | M | POS終端交易流水 |
12 | 受卡方所在地時間 | N6 | hhmmss | BCD |
| M |
|
13 | 受卡方所在地日期 | N4 | MMDD | BCD |
| M |
|
14 | 卡有效期 | N4 | YYMM | BCD | C1 | C2 | C1:POS能判斷時存在 |
C2:具有有效期的卡存在 | |||||||
15 | 清算日期 | n4 | MMDD | BCD |
| M |
|
22 | 服務點輸入方式碼 | N3 |
| BCD | M |
|
|
23 | 卡片序列號 | n3 |
| BCD | C | C | C:當POS能夠獲得該值時存在; |
25 | 服務點條件碼 | N2 |
| BCD | M | M | 普通消費交易填寫00;分期付款消費交易填寫64 |
26 | 服務點PIN獲取碼 | n2 |
| BCD | C |
| 22域指明PIN可輸入且持卡人輸入了PIN |
32 | 受理方標識碼 | n..11 | LLVAR | BCD |
| M |
|
35 | 2磁道數據 | z..37 | LLVAR | BCD | C |
| 22域磁條輸入且存在二磁道信息 |
36 | 3磁道數據 | z...104 | LLLVAR | BCD | C |
| 22域磁條輸入且存在三磁道信息 |
37 | 檢索參考號 | An12 |
| ASCII |
| M | POS中心系統流水號 |
38 | 授權碼 | an6 |
| ASCII |
| C | 交易承兌時由發卡行自定 |
39 | 應答碼 | an2 |
| ASCII |
| M |
|
41 | 受卡機終端標識碼 | ans8 |
| ASCII | M | M | 終端代碼 |
42 | 受卡方標識碼 | ans15 |
| ASCII | M | M | 商戶代碼 |
44 | 附加響應數據 | Ans..25 | LLVAR | ASCII |
| M | 接收/收單機構 |
49 | 交易貨幣代碼 | an3 |
| ASCII | M | M |
|
52 | 個人標識碼數據 | B64 |
| BINARY | C |
| 對于磁條卡交易有PIN輸入時必選;對于基于PBOC借/貸記標準的IC卡交易,當使用脫機密碼驗證時,該域不出現;當使用聯機密碼驗證時,該域出現 |
53 | 安全控制信息 | N16 |
| BCD | C | C | 有安全要求必選 |
63 | 自定義域 | ans...063 | LLLVAR | ASCII |
| M |
|
63.1 | 國際信用卡公司代碼 | an3 |
| ASCII |
| M |
|
63.2 | 自定義域2 | ans…120 | LLVAR | ASCII | C | C | 當POS終端、中國銀聯、發卡行、商戶結算行等需要傳送特殊信息時出現 |
64 | MAC | b64 |
| BINARY | M | C | 響應消息中39域為“00”時必選 |
|
3:消費沖正
表7 消費沖正報文
位 | 域名定義 | 屬性 | 格式 | 類型 | 請求 | 響應 | 備 注 |
| 消息類型 | n4 |
| BCD | 0400 | 0410 | MSG-TYPE-ID |
| 位元表 | b64 |
| BINARY | M | M | BIT MAP |
2 | 主賬號 | n..19 | LLVAR | BCD | C | M | 22域指明非磁條輸入且可判卡號 |
3 | 交易處理碼 | n6 |
| BCD | M | M | 同原交易 |
4 | 交易金額 | n12 |
| BCD | M | M | 同原交易請求 |
11 | 受卡方系統跟蹤號 | n6 |
| BCD | M | M | 同原交易 |
12 | 受卡方所在地時間 | n6 | hhmmss | BCD |
| M |
|
13 | 受卡方所在地日期 | n4 | MMDD | BCD |
| M |
|
14 | 卡有效期 | n4 | YYMM | BCD | C | C | 同原請求交易 |
15 | 清算日期 | n4 | MMDD | BCD |
| M |
|
22 | 服務點輸入方式碼 | n3 |
| BCD | M |
| 同原交易 |
23 | 卡片序列號 | n3 |
| BCD | C | C | C:當POS能夠獲得該值時存在;同原始交易 |
25 | 服務點條件碼 | n2 |
| BCD | M | M | 同原交易 |
32 | 受理方標識碼 | n..11 | LLVAR | BCD |
| M |
|
37 | 檢索參考號 | an12 |
| ASCII |
| M | POS中心系統流水號 |
38 | 授權標識應答碼 | an6 |
| ASCII | C |
| C:如果原始交易的應答中有授權碼,則須填入原交易授權碼 |
39 | 應答碼 | an2 |
| ASCII | M | M | 請求時為沖正原因 |
41 | 受卡機終端標識碼 | ans8 |
| ASCII | M | M | 同原交易 |
42 | 受卡方標識碼 | ans15 |
| ASCII | M | M | 同原交易 |
44 | 附加響應數據 | ans..25 | LLVAR | ASCII |
| M | 接收/收單機構 |
49 | 交易貨幣代碼 | an3 |
| ASCII | M | M | 同原交易 |
64 | MAC | b64 |
| BINARY | M | C | 響應消息中39域為“00”時必選 |
注: 由下列情形引發沖正: a) POS終端在時限內未能收到POS中心的應答消息而引發,沖正原因碼填“98”。 b) POS終端在時限內收到POS中心的批準應答消息,但由于POS機故障無法完成交易而引發,沖正原因碼填“96”。 c) POS終端對收到POS中心的應答消息,驗證MAC出錯,沖正原因碼填“A0”。 d) 其他情況,沖正原因碼填“06”。 |
4:余額查詢
表8 余額查詢報文
位 | 域名定義 | 屬性 | 格式 | 類型 | 請求 | 響應 | 備 注 |
| 消息類型 | n4 |
| BCD | 0200 | 0210 | MSG-TYPE-ID |
| 位元表 | b64 |
| BINARY | M | M | BIT MAP |
2 | 主賬號 | n..19 | LLVAR | BCD | C | M | 當22域指明非磁條輸入且可判卡號 |
3 | 交易處理碼 | n6 |
| BCD | M | M | 31xxxx |
11 | 受卡方系統跟蹤號 | n6 |
| BCD | M | M | POS終端交易流水號 |
12 | 受卡方所在地時間 | n6 | hhmmss | BCD |
| M |
|
13 | 受卡方所在地日期 | n4 | MMDD | BCD |
| M |
|
14 | 卡有效期 | n4 | YYMM | BCD | C1 | C2 | C1:POS能判斷時存在 |
C2:具有有效期的卡存在 | |||||||
22 | 服務點輸入方式碼 | n3 |
| BCD | M |
|
|
23 | 卡片序列號 | n3 |
| BCD | C | C | C:當POS能夠獲得該值時存在; |
25 | 服務點條件碼 | n2 |
| BCD | M | M | 00 |
26 | 服務點PIN獲取碼 | n2 |
| BCD | C |
| 當22域指明PIN可輸入且持卡人輸入了PIN |
32 | 受理方標識碼 | n..11 | LLVAR | BCD |
| M |
|
35 | 2磁道數據 | z..37 | LLVAR | BCD | C |
| 當22域指明磁條輸入且存在二磁道信息 |
36 | 3磁道數據 | z...104 | LLLVAR | BCD | C |
| 當22域指明磁條輸入且存在三磁道信息 |
37 | 檢索參考號 | an12 |
| ASCII |
| M | POS中心流水號 |
39 | 應答碼 | an2 |
| ASCII |
| M |
|
41 | 受卡機終端標識碼 | ans8 |
| ASCII | M | M | POS終端代碼 |
42 | 受卡方標識碼 | ans15 |
| ASCII | M | M | 商戶代碼 |
44 | 附加響應數據 | ans..25 | LLVAR | ASCII |
| M | 接收/收單機構 |
49 | 交易貨幣代碼 | an3 |
| ASCII | M | M |
|
52 | 個人標識碼數據 | b64 |
| BINARY | C |
| 對于磁條卡交易有PIN時必選;對于基于PBOC借/貸記標準的IC卡交易,當使用脫機密碼驗證時,該域不出現;當使用聯機密碼驗證時,該域出現 |
53 | 安全控制信息 | n16 |
| BCD | C | C | 有安全要求時必選 |
54 | 附加金額 | an…020 | LLLVAR | ASCII |
| C | 39域為“00”時必選 |
64 | MAC | B64 |
| BINARY | M | C | 響應消息中39域為“00”時必選 |
a:若無授權金額,該域填零。 b:若無交易貨幣代碼,該域填交易幣種。 c:若無其它金額,該域填零。 |
5:消費撤銷
表9 消費撤銷報文
位 | 域名定義 | 屬性 | 格式 | 類型 | 請求 | 響應 | 備 注 |
| 消息類型 | n4 |
| BCD | 0200 | 0210 | MSG-TYPE-ID |
| 位元表 | b64 |
| BINARY | M | M | BIT MAP |
2 | 主賬號 | n..19 | LLVAR | BCD | C | M | 22域指明非磁條輸入且可判卡號 |
3 | 交易處理碼 | n6 |
| BCD | M | M | 20XXXX |
4 | 交易金額 | n12 |
| BCD | M | M | 同原消費交易 |
11 | 受卡方系統跟蹤號 | n6 |
| BCD | M | M | POS終端交易流水號 |
12 | 受卡方所在地時間 | n6 | hhmmss | BCD |
| M |
|
13 | 受卡方所在地日期 | n4 | MMDD | BCD |
| M |
|
14 | 卡有效期 | n4 | YYMM | BCD | C1 | C2 | C1:POS能判斷時存在 |
C2:具有有效期的卡存在 | |||||||
15 | 清算日期 | n4 | MMDD | BCD |
| M |
|
22 | 服務點輸入方式碼 | n3 |
| BCD | M |
|
|
23 | 卡片序列號 | n3 |
| BCD | C | C | C:當POS能夠獲得該值時存在;同原始交易 |
25 | 服務點條件碼 | n2 |
| BCD | M | M | 00/64 |
26 | 服務點PIN獲取碼 | n2 |
| BCD | C |
| 22域指明PIN可輸入且持卡人輸入了PIN |
32 | 受理方標識碼 | n..11 | LLVAR | BCD |
| M |
|
35 | 2磁道數據 | z..37 | LLVAR | BCD | C |
| 22域磁條輸入且存在二磁道信息 |
36 | 3磁道數據 | z...104 | LLLVAR | BCD | C |
| 22域磁條輸入且存在三磁道信息 |
37 | 檢索參考號 | an12 |
| ASCII | M | M | 請求時為原消費交易參考號 |
38 | 授權標識應答碼 | an6 |
| ASCII | C1 | C2 | C1:如果原始交易的應答中有授權碼,則須填入原交易授權碼 |
C2:交易承兌時由發卡行自定 | |||||||
39 | 應答碼 | an2 |
| ASCII |
| M |
|
41 | 受卡機終端標識碼 | ans8 |
| ASCII | M | M | 同原交易 |
42 | 受卡方標識碼 | ans15 |
| ASCII | M | M | 同原交易 |
44 | 附加響應數據 | ans..25 | LLVAR | ASCII |
| M | 接收/收單機構 |
49 | 交易貨幣代碼 | an3 |
| ASCII | M | M |
|
52 | 個人標識碼數據 | b64 |
| BINARY | C |
| 對于磁條卡交易有PIN輸入時必選;對于基于PBOC借/貸記標準的IC卡交易,當使用脫機密碼驗證時,該域不出現;當使用聯機密碼驗證時,該域出現 |
53 | 安全控制信息 | n16 |
| BCD | C | C | 有安全要求必選 |
60 | 自定義域 | n…011 | LLLVAR | BCD | M | M |
|
60.1 | 交易類型碼 | n2 |
| BCD | M | M |
|
60.2 | 批次號 | n6 |
| BCD | M | M |
|
60.3 | 網絡管理碼 | n3 |
| BCD | C | C | 有后續子域存在時,本域才出現。非網絡管理類交易,此處以缺省值000填充 |
60.4 | 終端讀取能力 | n1 |
| BCD | C | C | 僅在IC卡交易、Fall Back、純磁條卡交易發生在IC卡終端等情況下出現。上述各類情況中該域都填5。 |
60.5 | 基于PBOC借/貸記標準的IC卡條件代碼 | n1 |
| BCD | C | C | 僅在IC卡交易、Fall Back、純磁條卡交易發生在IC卡終端等情況下出現。IC卡交易、Fall Back交易根據實際情況填寫。純磁條卡交易發生在IC卡終端上填0。 |
61 | 原始信息域 | n…029 | LLLVAR | BCD | M |
|
|
61.1 | 原批號 | n6 |
| BCD | M |
| 原消費交易的批次號 |
61.2 | 原POS流水號 | n6 |
| BCD | M |
| 原消費交易的流水號 |
63 | 自定義域 | ans...063 | LLLVAR | ASCII |
| M |
|
63.1 | 國際信用卡公司代碼 | an3 |
| ASCII |
| M |
|
63.2 | 自定義域2 | ans…120 | LLVAR | ASCII | C | C | 當POS終端、中國銀聯、發卡行、商戶結算行等需要傳送特殊信息時出現 |
64 | MAC | b64 |
| BINARY | M | C | 響應消息中39域為“00”時必選 |
6:消費撤銷沖正
位 | 域名定義 | 屬性 | 格式 | 類型 | 請求 | 響應 | 備 注 |
| 消息類型 | n4 |
| BCD | 0400 | 0410 | MSG-TYPE-ID |
| 位元表 | b64 |
| BINARY | M | M | BIT MAP |
2 | 主賬號 | n..19 | LLVAR | BCD | C | M | 22域指明非磁條輸入且可判卡號 |
3 | 交易處理碼 | n6 |
| BCD | M | M | 同原交易 |
4 | 交易金額 | n12 |
| BCD | M | M | 同原交易請求消息 |
11 | 受卡方系統跟蹤號 | n6 |
| BCD | M | M | 同原交易 |
12 | 受卡方所在地時間 | n6 | hhmmss | BCD |
| M |
|
13 | 受卡方所在地日期 | n4 | MMDD | BCD |
| M |
|
14 | 卡有效期 | n4 | YYMM | BCD | C | C | 同原請求交易 |
15 | 清算日期 | n4 | MMDD | BCD |
| M |
|
22 | 服務點輸入方式碼 | n3 |
| BCD | M |
| 原輸入方式 |
23 | 卡片序列號 | n3 |
| BCD | C | C | C:當POS能夠獲得該值時存在;同原始交易 |
25 | 服務點條件碼 | n2 |
| BCD | M | M | 同原交易 |
32 | 受理方標識碼 | n..11 | LLVAR | BCD |
| M |
|
37 | 檢索參考號 | an12 |
| ASCII |
| M | POS中心系統流水號 |
38 | 授權標識應答碼 | an6 |
| ASCII | C |
| 如果原始交易的應答中有授權碼,則須填入原交易授權碼 |
39 | 應答碼 | an2 |
| ASCII | M | M | 請求時為沖正原因 |
41 | 受卡機終端標識碼 | ans8 |
| ASCII | M | M | 同原交易 |
42 | 受卡方標識碼 | ans15 |
| ASCII | M | M | 同原交易 |
44 | 附加響應數據 | ans..25 | LLVAR | ASCII |
| M | 接收/收單機構 |
49 | 交易貨幣代碼 | an3 |
| ASCII | M | M |
|
53 | 安全控制信息 | n16 |
| BCD | C | C | 有安全要求必選 |
60 | 自定義域 | n…011 | LLLVAR | BCD | M | M |
|
60.1 | 交易類型碼 | n2 |
| BCD | M | M | 同原交易 |
60.2 | 批次號 | n6 |
| BCD | M | M |
|
60.3 | 網絡管理碼 | n3 |
| BCD | C | C | 有后續子域存在時,本域才出現。非網絡管理類交易,此處以缺省值000填充 |
60.4 | 終端讀取能力 | n1 |
| BCD | C | C | 僅在IC卡交易、Fall Back、純磁條卡交易發生在IC卡終端等情況下出現。上述各類情況中該域都填5。 |
60.5 | 基于PBOC借/貸記標準的IC卡條件代碼 | n1 |
| BCD | C | C | 僅在IC卡交易、Fall Back、純磁條卡交易發生在IC卡終端等情況下出現。IC卡交易、Fall Back交易根據實際情況填寫。純磁條卡交易發生在IC卡終端上填0。 |
61 | 原始信息域 | n…029 | LLLVAR | BCD | M |
|
|
61.1 | 原批號 | n6 |
| BCD | M |
| 原交易的批次號 |
61.2 | 原POS流水號 | n6 |
| BCD | M |
| 原交易的流水號 |
64 | MAC | b64 |
| BINARY | M | C | 響應消息中39域為“00”時必選 |
7:批結算
表10 批結算報文
位 | 域名定義 | 屬性 | 格式 | 類型 | 請求 | 響應 | 備 注 |
| 消息類型 | n4 |
| BCD | 0500 | 0510 | MSG-TYPE-ID |
| 位元表 | b64 |
| BINARY | M | M | BIT MAP |
11 | 受卡方系統跟蹤號 | n6 |
| BCD | M | M | POS終端交易流水 |
12 | 受卡方所在地時間 | n6 | hhmmss | BCD |
| M |
|
13 | 受卡方所在地日期 | n4 | MMDD | BCD |
| M |
|
15 | 清算日期 | n4 | MMDD | BCD |
| M |
|
32 | 受理方標識碼 | n..11 | LLVAR | BCD |
| M |
|
37 | 檢索參考號 | an12 |
| ASCII |
| M | POS中心系統流水號 |
41 | 受卡機終端標識碼 | ans8 |
| ASCII | M | M |
|
42 | 受卡方標識碼 | ans15 |
| ASCII | M | M |
|
48 | 附加數據-私有 | ans…062 | LLLVAR | BCD | M | M | 結算總額,具體見域說明 |
49 | 交易貨幣代碼 | an3 |
| ASCII | M | M |
|
60 | 自定義域 | n…011 | LLLVAR | BCD | M | M |
|
60.1 | 交易類型碼 | n2 |
| BCD | M | M | 填“00” |
60.2 | 批次號 | n6 |
| BCD | M | M |
|
60.3 | 網絡管理信息碼 | n3 |
| BCD | M | M | 201 |
63 | 自定義域 | ans...003 | LLLVAR | ASCII | M | M |
|
63.1 | 操作員代碼 | an3 |
| ASCII | M | M |
|
8:備注(報文)
A:簽到
簽到原始報文
60 00 03 00 00 60 22 00 00 00 00 08 00 00 20
00 00 00 C0 00 12 00 00 52 38 38 38 38 38 38 38
38 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
00 11 00 00 00 01 00 10 00 03 30 30 31
數據域解析:
MSG TYPE:0800(消息類型)
BITMAP:0020000000C00012(位圖)
11域:000052(流水號)
41域:3838383838383838(終端號)
42域:353535353535353535353535353535(商戶號)
60域:0011000000010010(批次及網絡管理碼)
63域:0003303031(操作員代碼)
B:消費
簽到原始報文
60 00 03 00 00 60 22 00 00 00 00 02 00 30 20
04 C0 20 C0 98 11 00 00 00 00 00 00 00 55 55 00
00 53 02 10 00 06 34 47 61 73 90 01 01 00 10 D1
01 22 01 01 23 45 67 89 38 38 38 38 38 38 38 38
35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 31
35 36 58 E0 31 D4 86 93 2F 32 20 00 00 00 00 00
00 00 00 13 22 00 00 01 00 05 00 32 41 46 36 31
31 32 44
數據域解析:
MSG TYPE:0200
BITMAP:302004C020C09811
3域:000000
4域:000000005555
11域:000053
22域:0210
25域:00
26域:06
35域:344761739001010010D10122010123456789
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
52域:58E031D486932F32
53域:2000000000000000
60域:001322000001000500
64域:3241463631313244
C:消費沖正
簽到原始報文
60 00 03 00 00 60 22 00 00 00 00 04 00 70 20
04 80 02 C0 80 11 16 47 61 73 90 01 01 00 10 00
00 00 00 00 00 55 55 55 00 00 55 02 10 00 39 38
38 38 38 38 38 38 38 38 35 35 35 35 35 35 35 35
35 35 35 35 35 35 35 31 35 36 00 13 22 00 00 01
00 05 00 30 37 36 31 42 30 30 31
數據域解析:
MSG TYPE:0400
BITMAP:7020048002C08011
2域:164761739001010010
3域:000000
4域:000000555555
11域:000055
22域:0210
25域:00
39域:3938
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
60域:001322000001000500
64域:3037363142303031
D:余額查詢
簽到原始報文
60 00 03 00 00 60 22 00 00 00 00 02 00 20 20
04 C0 20 C0 98 11 31 00 00 00 00 56 02 10 00 06
34 47 61 73 90 01 01 00 10 D1 01 22 01 01 23 45
67 89 38 38 38 38 38 38 38 38 35 35 35 35 35 35
35 35 35 35 35 35 35 35 35 31 35 36 89 C3 44 01
BD 5E DF 0A 20 00 00 00 00 00 00 00 00 13 01 00
00 01 00 05 00 35 42 32 37 35 43 37 39
數據域解析:
MSG TYPE:0200
BITMAP:202004C020C09811
3域:310000
11域:000056
22域:0210
25域:00
26域:06
35域:344761739001010010D10122010123456789
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
52域:89C34401BD5EDF0A
53域:2000000000000000
60域:001301000001000500
64域:3542323735433739
E:消費撤銷
簽到原始報文
60 00 03 00 00 60 22 00 00 00 00 02 00 30 20
04 C0 2C C0 98 19 20 00 00 00 00 00 00 55 55 00
00 57 02 10 00 06 34 47 61 73 90 01 01 00 10 D1
01 22 01 01 23 45 67 89 31 32 33 34 35 36 37 38
39 30 31 32 31 32 33 34 35 36 38 38 38 38 38 38
38 38 35 35 35 35 35 35 35 35 35 35 35 35 35 35
35 31 35 36 F4 12 0E 89 2F 5C 72 A0 20 00 00 00
00 00 00 00 00 13 23 00 00 01 00 05 00 00 12 00
00 01 00 00 53 39 33 39 45 42 38 46 45
數據域解析:
MSG TYPE:0200
BITMAP:302004C02CC09819
3域:200000
4域:000000005555
11域:000057
22域:0210
25域:00
26域:06
35域:344761739001010010D10122010123456789
37域:313233343536373839303132
38域:313233343536
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
52域:F4120E892F5C72A0
53域:2000000000000000
60域:001323000001000500
61域:0012000001000053
64域:3933394542384645
F:消費撤銷沖正
簽到原始報文
60 00 03 00 00 60 22 00 00 00 00 04 00 70 20
04 80 06 C0 80 19 16 47 61 73 90 01 01 00 10 20
00 00 00 00 00 00 55 56 00 00 59 02 10 00 31 32
33 34 35 36 39 38 38 38 38 38 38 38 38 38 35 35
35 35 35 35 35 35 35 35 35 35 35 35 35 31 35 36
00 08 23 00 00 01 00 12 00 00 01 00 00 59 43 37
31 41 39 46 32 41
數據域解析:
MSG TYPE:0400
BITMAP:7020048006C08019
2域:164761739001010010
3域:200000
4域:000000005556
11域:000059
22域:0210
25域:00
38域:313233343536
39域:3938
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
60域:000823000001
61域:0012000001000059
64域:4337314139463241
G:批結算
簽到原始報文
60 00 03 00 00 60 22 00 00 00 00 05 00 00 20
00 00 00 C1 80 12 00 00 66 38 38 38 38 38 38 38
38 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
00 62 00 00 00 00 08 88 00 10 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 31 35 36 00 11 00 00 00 02 20 10 00 03 30 30
31
數據域解析:
MSG TYPE:0500
BITMAP:0020000000C18012
11域:000066
41域:3838383838383838
42域:353535353535353535353535353535
48域:006200000000088800100000000000000000000000000000000000000000000000
49域:313536
60域:001100000022010
63域:0003303031
附 錄 A個人標識碼(PIN)的加密和解密方法
A.1 用于PIN加、解密的主賬號PAN取法
A.1.1 手輸卡號
如為手輸卡號,從所輸卡號(2域)右邊數第二位開始,向左取12位,作為參與PIN加、解密的PAN。
A.1.2 刷卡方式
如為刷卡方式,從磁道2(35域)分隔符‘=’左邊第二位開始,向左取12個字符,作為參與PIN加密的PAN;如只有磁道3(36域),則從磁道3分隔符‘=’左邊第二位開始,向左取12個字符,作為參與PIN加、解密的PAN。
A.2 PIN的長度
PIN的長度為6位(可擴展到12位)。
A.3 PIN的字符集
PIN用數字字符表示,下表給出了它的二進制對照表:
表A.1 PIN字符二進制表示
PIN字符 | 二進制表示 |
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
A.4 PIN格式
PIN的格式應符合ANSI X9.8 Format(帶主賬號信息)
PIN BLOCK格式等于PIN按位異或主賬號(PAN):
PIN格式:
表A.2 PIN格式
位置 | 長度 | 說明 |
1 | 1 BYTE | PIN長度 |
2 | 7 BYTE | 6-12位PIN(每個字符占4個BIT,不足右補F) |
PAN格式:
表A.3 PAN格式
位置 | 長度 | 說明 |
1 | 2 BYTE | %H0000 |
3 | 6 BYTE | 取主賬號的右12位(參見A.1) |
示例 1
例如:明文PIN為: 123456,
假設: 磁卡上的PAN:1234 5678 9012 3456 78
截取下的PAN:6789 0123 4567
則用于PIN加密的PAN為:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67
PIN BLOCK為:0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF
異或:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67
結果為:0x06 0x12 0x53 0xDF 0xFE 0xDC 0xBA 0x98
示例 2
假設: 磁卡上PAN:1234 5678 9012 3456
截取下的PAN:4567 8901 2345
則用于PIN加密的主賬號為:0x00 0x00 0x45 0x67 0x89 0x01 0x23 0x45
PIN BLOCK為:0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF
異或:0x00 0x00 0x45 0x67 0x89 0x01 0x23 0x45
結果為:0x06 0x12 0x71 0x31 0x76 0xFE 0xDC 0xBA
PIN的類型(類型2)必須在消息報文的域53(SECURITYRELATED-CONTROL-INFORMATION)中標明。
附 錄 B
(規范性附錄)
POS終端MAC的算法
POS終端采用ECB的加密方式,簡述如下:
a) 將欲發送給POS中心的消息中,從消息類型(MTI)到63域之間的部分構成MAC ELEMEMENT BLOCK (MAB)。
b) 對MAB,按每8個字節做異或(不管信息中的字符格式),如果最后不滿8個字節,則添加“0X00”。
示例 :
MAB = M1 M2 M3 M4
其中:
M1 = MS11 MS12 MS13 MS14 MS15 MS16 MS17 MS18
M2 = MS21 MS22 MS23 MS24 MS25 MS26 MS27 MS28
M3 = MS31 MS32 MS33 MS34 MS35 MS36 MS37 MS38
M4 = MS41 MS42 MS43 MS44 MS45 MS46 MS47 MS48
按如下規則進行異或運算:
MS11 MS12 MS13 MS14 MS15 MS16 MS17 MS18
XOR) MS21 MS22 MS23 MS24 MS25 MS26 MS27 MS28
---------------------------------------------------
TEMP BLOCK1 = TM11 TM12 TM13 TM14 TM15 TM16 TM17 TM18
然后,進行下一步的運算:
TM11 TM12 TM13 TM14 TM15 TM16 TM17 TM18
XOR) MS31 MS32 MS33 MS34 MS35 MS36 MS37 MS38
---------------------------------------------------
TEMP BLOCK2 = TM21 TM22 TM23 TM24 TM25 TM26 TM27 TM28
再進行下一步的運算:
TM21 TM22 TM23 TM24 TM25 TM26 TM27 TM28
XOR) MS41 MS42 MS43 MS44 MS45 MS46 MS47 MS48
---------------------------------------------------
RESULT BLOCK = TM31 TM32 TM33 TM34 TM35 TM36 TM37 TM38
c) 將異或運算后的最后8個字節(RESULT BLOCK)轉換成16 個HEXDECIMAL:
RESULT BLOCK = TM31 TM32 TM33 TM34 TM35 TM36 TM37 TM38
= TM311 TM312 TM321 TM322 TM331 TM332 TM341 TM342 ||
TM351 TM352 TM361 TM362 TM371 TM372 TM381 TM382
d) 取前8 個字節用MAK加密:
ENC BLOCK1 = eMAK(TM311 TM312 TM321 TM322 TM331 TM332 TM341 TM342)
= EN11 EN12 EN13 EN14 EN15 EN16 EN17 EN18
e) 將加密后的結果與后8 個字節異或:
EN11 EN12 EN13 EN14 EN15 EN16 EN17 EN18
XOR) TM351 TM352 TM361 TM362 TM371 TM372 TM381 TM382
------------------------------------------------------------
TEMP BLOCK= TE11 TE12 TE13 TE14 TE15 TE16 TE17 TE18
f) 用異或的結果TEMP BLOCK 再進行一次單倍長密鑰算法運算。
ENC BLOCK2 = eMAK(TE11 TE12 TE13 TE14 TE15 TE16 TE17 TE18)
= EN21 EN22 EN23 EN24 EN25 EN26 EN27 EN28
g) 將運算后的結果(ENC BLOCK2)轉換成16 個HEXDECIMAL:
ENC BLOCK2 = EN21 EN22 EN23 EN24 EN25 EN26 EN27 EN28
= EM211 EM212 EM221 EM222 EM231 EM232 EM241 EM242 ||
EM251 EM252 EM261 EM262 EM271 EM272 EM281 EM282
示例 :
ENC RESULT= %H84, %H56, %HB1, %HCD, %H5A, %H3F, %H84, %H84
轉換成16 個HEXDECIMAL:
“8456B1CD5A3F8484”
h) 取前8個字節作為MAC值。
取”8456B1CD”為MAC值。