天天看點

PSE選擇

PSE選擇

使用PSE進入應用,稱為目錄(檔案名)選擇。

PSE名稱:1PAY.SYS.DDF01  (315041592E5359532E4444463031)

步驟1: 終端通過使用選擇( SELECT) 指令來選擇檔案名為“1PAY.SYS.DDF01”的支付系統環境而 開始,由此建立支付系統環境并進入初始目錄。

注意:發送選擇PSE指令,卡片傳回6A81(卡被鎖定或者指令不支援)、6A82(卡上沒有PSE)、6283(PSE 被鎖定),使用AID清單選擇法。

步驟2: 終端使用卡片傳回的FCI中的目錄SFI,從目錄的第1條記錄開始,連續讀取後續記錄,直 到卡回送狀态字SW1 SW2=“ 6A83”(表示所請求的記錄序号已不存在)。

注意:如果在執行讀記錄( READ RECORD)指令查找第1個記錄時,卡回送狀态字“ 6A83”,則表示目錄入口為空,使用AID清單選擇法。

步驟3: 讀記錄如果該入口對應某一ADF,且ADF名與終端支援的一個應用相比對則 在應用選擇訓示器( ASI) (儲存在終端中與該AID對應) 的控制下将該應用列入最終應用選擇的“ 候 選清單” 中。

注意:ASI,一位元組,0表示部分比對,1表示完全比對

步驟4: 當終端處理完最後一個記錄中的所有入口後,所有能夠按此方法找到的ADF就被确定了, 查找和産生候選清單的工作完成。如果發現了至少一個比對的ADF,選擇PSE完成。

注意:在選擇PSE過程中,隻要不能完成就使用AID清單選擇法,如果失敗的過程中已經建立了終端候選清單則先删除候選清單,再使用AID清單選擇法。

候選清單的建立參考候選清單建立文檔

Eg:

315041592E5359532E4444463031(1PAY.SYS.DDF01)

T -> C (20 bytes)....:00A404000E315041592E5359532E444446303100

C -> T (54 bytes)....:

6F32840E315041592E5359532E4444463031A5208801015F2D047A68656E9F110101BF0C0FD1023132C204494342439F4D020B0A9000

-Tag: 6F, Length: 50, Value:

840E315041592E5359532E4444463031A5208801015F2D047A68656E9F110101BF0C0FD1023132C204494342439F4D020B0A

-Tag: 84, Length: 14, Value: 315041592E5359532E4444463031

-Tag: A5, Length: 32, Value:

8801015F2D047A68656E9F110101BF0C0FD1023132C204494342439F4D020B0A

-Tag: 88, Length: 1, Value: 01

-Tag: 5F2D, Length: 4, Value: 7A68656E

-Tag: 9F11, Length: 1, Value: 01

-Tag: BF0C, Length: 15, Value:D1023132C204494342439F4D020B0A

-Tag: D1, Length: 2, Value: 3132

-Tag: C2, Length: 4, Value: 49434243

-Tag: 9F4D, Length: 2, Value: 0B0A

根據88标簽的值進行讀記錄

SFI的計算 01<<3 | 0x04 = 0x0C  // 短檔案辨別

T -> C (5 bytes)....: 00B2010C00   //讀取0C檔案下的第一條記錄

C -> T (47 bytes)....:

702B61294F08A000000333010101500A50424F432044656269748701019F120D494342432050626F63436172649000

-Tag: 70, Length: 43, Value:

61294F08A000000333010101500A50424F432044656269748701019F120D494342432050626F6343617264

-Tag: 61, Length: 41, Value:

4F08A000000333010101500A50424F432044656269748701019F120D494342432050626F6343617264

-Tag: 4F, Length: 8, Value: A000000333010101

-Tag: 50, Length: 10, Value: 50424F43204465626974

-Tag: 87, Length: 1, Value: 01

-Tag: 9F12, Length: 13, Value: 494342432050626F6343617264

T -> C (5 bytes)....: 00B2020C00    //讀取0C檔案下的第二條記錄

C -> T (2 bytes)....: 6A83          //卡片傳回6A83讀記錄結束

注意:此文檔參考PBOC3.0規範,PBOC3.0删除了DDF嵌套(在讀記錄中再次選擇PSE,再讀記錄….)

繼續閱讀