歡迎您訪問鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠信通企業(yè)
全國咨詢熱線:40000-63966
興邦電子,中國水控機(jī)第一品牌

聯(lián)系興邦電子

全國咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

PBOC/EMV之深入解析電子現(xiàn)金

文章出處:http://www.xianjuhong.com 作者: 人氣: 發(fā)表時(shí)間:2012年03月11日

[文章內(nèi)容簡介]:之前的一篇文章<PBOC/EMV之電子錢包與電子現(xiàn)金的區(qū)別>已經(jīng)對(duì)電子現(xiàn)金做了一些介紹,這篇文章站在開發(fā)者的角度,深入的探討一下電子現(xiàn)金的應(yīng)用.

    之前的一篇文章<PBOC/EMV之電子錢包與電子現(xiàn)金的區(qū)別>已經(jīng)對(duì)電子現(xiàn)金做了一些介紹, 這篇文章站在開發(fā)者的角度,深入的探討一下電子現(xiàn)金的應(yīng)用.

    做一個(gè)電子現(xiàn)金的交易, 第一步當(dāng)然是選中當(dāng)前的應(yīng)用, 方法是調(diào)用select命令, 傳入當(dāng)前的應(yīng)用AID號(hào), 如果卡片的狀態(tài)碼返回9000,則表示選中成功. 下面舉一個(gè)例子:

    發(fā)送: 00 a4 04 00 08 a0 00 00 04 44 01 01 05 00

    卡片返回:

    6f 45 84 08 a0 00 00 04 44 01 01 05 a5 39 50 0a 50 42 4f 43 20 44 45 42 49 54 87 01 01 9f 38 09 9f 7a 01 9f 02 06 5f 2a 02 5f 2d 02 7a 68 9f 11 01 01 9f 12 0a 50 42 4f 43 20 44 45 42 49 54 bf 0c 05 9f 4d 02 0b 0a 90 00

    先看發(fā)送的指令, 其中a0 00 00 04 44 01 01 05這八個(gè)字節(jié)就是當(dāng)前應(yīng)用的AID號(hào). 卡片返回的最后兩個(gè)字節(jié)是90 00, 表示發(fā)送成功. 狀態(tài)碼之前是數(shù)據(jù)域. 數(shù)據(jù)域是一個(gè)TLV結(jié)構(gòu)的FCI, 其中V里面可能也會(huì)有TLV結(jié)構(gòu)的數(shù)據(jù), 所以,F(xiàn)CI可能是一個(gè)嵌套的TLV結(jié)構(gòu). 6f是整個(gè)數(shù)據(jù)域的tag, 它標(biāo)識(shí)卡片響應(yīng)的整個(gè)FCI. 45表示長度(十六進(jìn)制),也就是它后面數(shù)據(jù)域部分的所有字節(jié)數(shù).

    不分析所有的數(shù)據(jù)了, 只說一下里面比較重要的一個(gè)數(shù)據(jù)PDOL. PDOL表示卡片要求終端提供的數(shù)據(jù),從而激活當(dāng)前選擇的應(yīng)用. 找到這一串?dāng)?shù)據(jù);

    9f 38 09 9f 7a 01 9f 02 06 5f 2a 02

    9f38是PDOL的tag, 09表示長度. 9f 7a 01表示卡片要求終端提供tag為9f7a的元素的值,長度是01, 9f 02 06表示卡片要求終端提供tag為9f02的元素的值,長度是06,5f 2a 02表示卡片要求終端提供tag為5f2a的元素的值,長度是02. 這三個(gè)tag的意義如下:

    9f7a:電子現(xiàn)金終端指示器

    9f02:授權(quán)金額

    5f2a:交易貨幣代碼

    對(duì)于基于電子現(xiàn)金的應(yīng)用, 這三個(gè)元素是必不可少的, 或者說,卡片要求終端至少提供這三個(gè)元素的值.

    下一步就是終端需要把上面三個(gè)元素通過GPO命令傳送給卡片.

    后面兩個(gè)元素比較容易填, 授權(quán)金額就是你的實(shí)際交易金額,交易貨幣代碼固定為0156, 那么電子現(xiàn)金終端指示器的值是什么呢?

    根據(jù)PBOC 2.0的規(guī)范, 只有滿足下面三個(gè)條件時(shí),電子現(xiàn)金終端指示器的值才能為1, 否則為0. 這三個(gè)條件是:

    1 終端支持電子現(xiàn)金交易

    2 授權(quán)金額小于終端交易限額

    3 終端交易類型為消費(fèi)交易

    前面兩個(gè)條件好理解, 為什么會(huì)有第三個(gè)條件呢?

    如果卡片接收到的電子現(xiàn)金終端指示器的值是1, 它就認(rèn)為當(dāng)前做的是一個(gè)電子現(xiàn)金的交易, 而不是普通的借貸記交易, 那么它在GPO指令的響應(yīng)中就會(huì)返回電子現(xiàn)金的AIP和AFL, 而不是普通借貸記的AIP和AFL, 兩者區(qū)別主要在AFL的不同. 如果卡片認(rèn)為當(dāng)前是一個(gè)電子現(xiàn)金的交易, 它會(huì)返回給終端”電子現(xiàn)金發(fā)卡行授權(quán)碼”, 而電子現(xiàn)金發(fā)卡行授權(quán)碼是用于脫機(jī)交易中, 存放在清算報(bào)文的授權(quán)碼中. 而PBOC的消費(fèi)交易是脫機(jī)交易, 這就是為什么會(huì)有第三個(gè)條件.

    另外,PBOC的圈存交易規(guī)定必須聯(lián)機(jī)處理,所以我們也可以得出, 對(duì)于基于電子現(xiàn)金的圈存交易,它從AFL人讀到的數(shù)據(jù)其實(shí)就是普通借貸記的數(shù)據(jù),其交易流程也是借貸記的流程.

    下面是有一個(gè)電子現(xiàn)金的卡片做的一個(gè)測試,如果電子現(xiàn)金終端指示器的值為0, 返回的AFL如下:

    08 01 02 00, 10 01 03 01, 18 01 02 00, 20 01 01 00

    當(dāng)電子現(xiàn)金終端指示器的值為1時(shí), GPO命令返回下面六組AFL

    08 01 02 00, 10 05 06 01, 10 08 08 00, 18 01 02 00, 20 01 01 00, 28 01 01 00

    其中電子現(xiàn)金發(fā)卡行授權(quán)碼就是文件標(biāo)識(shí)符為28 的文件中.  

    如果終端能收到卡片返回的AIP和AFL, 就可以根據(jù)卡片提供的AFL, 讀出卡片提供給終端的所有數(shù)據(jù), 并保存在終端, 以備后續(xù)的交易使用. 這些數(shù)據(jù)就包括PAN號(hào)等在內(nèi)的卡片數(shù)據(jù), 舉個(gè)例子, 我用測試卡s讀到的發(fā)卡行授權(quán)碼(tag=9f74)的值如下:45 43 43 30 30 31, 對(duì)應(yīng)的ASCII字符就是ECC001.

本文關(guān)鍵詞:PBOC,EMV,電子現(xiàn)金
回到頂部