如何實(shí)現(xiàn)EMV卡的電子商務(wù)(E-Commerce)系統(tǒng)
Michael 2006/05/20
一 系統(tǒng)架構(gòu)
IC卡<-->CS(Cardholder System)<-->MS(Merchant Server)<-->PG(Payment Gateway)。
Cardholder System和Merchant Server之間采用SET(Secure Electronic Transaction)message protocol。
二 持卡人系統(tǒng)(Cardholder System)的設(shè)計(jì)
在電子商務(wù)系統(tǒng)的持卡人系統(tǒng)中,需要考慮以下因素:
1。CS需要實(shí)現(xiàn)的IC卡交互功能
包括:Card Selection, Application Selection, Application Initiation, Read Application Data, Cardholder Verification, Terminal Action Analysis, Issuer Script Processing&Completion,不需要實(shí)現(xiàn)以下功能:Offline Data Authentication, Processing Restrictions, Terminal Risk Management.
2。CS需要支持的IC卡命令集
包括:SELECT, GET PROCESSING OPTIONS, READ RECORD, GET DATA, VERIFY, GENERATE AC, EXTERNAL AUTHENTICATE。同時(shí),CS需要能夠解釋IC卡返回的數(shù)據(jù)。
3。CS需要保存和處理的數(shù)據(jù)
在交易過(guò)程中,CS需要保存有以下數(shù)據(jù)元素:
1) Amount Other: Cashback amount, 在E-Commerce系統(tǒng)中值為空。
2) BrandID-AID Table:
3) ISO8859 Code Table: 幫助解析Application Preferred Name等數(shù)據(jù)。
4) Terminal Type: E-Commerce系統(tǒng)的終端類型是“unattended, online, controlled by cardholder”(value=34).
5) Transaction Type: E-Commerce系統(tǒng)執(zhí)行的交易是"purchase of goods or service"(value=00).
6) Terminal Verification Results: CS執(zhí)行完每個(gè)功能保存的結(jié)果(共5 BYTES,40BITS)。
4。SET協(xié)議擴(kuò)展消息
SET消息包中需要包含以下信息以執(zhí)行EMV交易。
1) commonChip: the cryptogram and related data,由CS生成,存放在PReq消息中。
2) acqCardExtensions: Issuer Authentication and Issuer Script data,由Payment Gateway生成,存放在PRes消息的AcqCardMsgData域中。
3) onlinePIN: PIN data entered by the cardholder,由CS生成,存放在PReq消息中。
三 Merchant Server的設(shè)計(jì)
無(wú)特殊需求。
四 PG(Payment Gateway)的設(shè)計(jì)
PG需要能夠處理上述定義的SET協(xié)議擴(kuò)展消息。
五 交易處理過(guò)程
定義IC卡<-->CS(Cardholder System)<-->MS(Merchant Server)<-->PG(Payment Gateway)之間的交互接口。
1。交易流程總覽
如圖。
2。CS和IC卡的功能交互接口
1) Card Selection: 持卡人選擇相應(yīng)的支付卡執(zhí)行交易
過(guò)程:
Merchant Server支持的所有支付卡需要被顯示;
CS需要提供所有可支付的方式;
CS需提示持卡人在交易期間IC卡不能退出,除非提示這么做
2) Application Selection: CS從IC卡中選擇相應(yīng)應(yīng)用并顯示
過(guò)程:
CS從MS發(fā)送的SET Initiation Message中獲取可用于交易支付的機(jī)構(gòu)Brand,并使用BrandID-AID表找到并創(chuàng)建支持的應(yīng)用標(biāo)識(shí)(AIDs)。如果AID沒(méi)有找到,則要求持卡人嘗試另一張卡或者更新BrandID-AID表。
在IC卡給SELECT命令的答復(fù)中若包含Application Preferred Name,則該名稱需要顯示給持卡人,若不包含,則顯示Application Label給持卡人。如果答復(fù)中還包含Issuer URL,則CS同時(shí)還需要顯示該Issuer的LOGO給用戶。
3) Application Initiation: 初始化應(yīng)用
4) Read Application Data: CS讀取IC卡應(yīng)用數(shù)據(jù)
5) Cardholder Verification: CS從持卡人處獲取PIN信息發(fā)給IC卡或者ISSUER做身份校驗(yàn)
當(dāng)AIP第一字節(jié)的第五位為1時(shí),需要做持卡人身份驗(yàn)證。
6) Terminal Action Analysis: IC卡針對(duì)CS的交易授權(quán)請(qǐng)求決定DECLINE OFFLINE還是同意ONLINE AUTHORISATION REQUEST
要求:在給IC卡的GENERATE AC命令中發(fā)送的數(shù)據(jù)元素需要按照一定的格式轉(zhuǎn)換,以方便IC卡理解。
7) Issuer Script Processing and Completion: CS根據(jù)腳本執(zhí)行操作并提示用戶取卡
3。CS和MS的消息交互接口
1) SET Initiation: MS通知CS并告知支付卡方式等交易細(xì)節(jié)
MS需要?jiǎng)?chuàng)建SET Payment Initiation消息并發(fā)送給CS,CS需要能夠解析處理該消息。
2) Purchase Initiation: CS創(chuàng)建Purchase請(qǐng)求并驗(yàn)證MS和PG的身份,同時(shí)發(fā)送交易信息給MS
過(guò)程:CS創(chuàng)建發(fā)送PInitReq消息(包含Language, BrandID, BIN數(shù)據(jù)),MS創(chuàng)建響應(yīng)PInitRes消息
3) Purchase Request&Response
PReq包含Language, BrandID, PAN, BIN, AID, Application Expiration Date等數(shù)據(jù)。
4。MS和PG的消息交互接口
1) Authorization Request(AuthReq) & Response(AuthRes)
2) Capture Request(CapReq) & Response(CapRes)