Michael's Space

Technology changes the world, serves the people.
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

如何实现EMV卡的电子商务(E-Commerce)系统
Michael 2006/05/20

一 系统架构
IC卡<-->CS(Cardholder System)<-->MS(Merchant Server)<-->PG(Payment Gateway)。
Cardholder System和Merchant Server之间采用SET(Secure Electronic Transaction)message protocol。

二 持卡人系统(Cardholder System)的设计
在电子商务系统的持卡人系统中,需要考虑以下因素:


1。CS需要实现的IC卡交互功能
包括:Card Selection, Application Selection, Application Initiation, Read Application Data, Cardholder Verification, Terminal Action Analysis, Issuer Script Processing&Completion,不需要实现以下功能:Offline Data Authentication, Processing Restrictions, Terminal Risk Management.

2。CS需要支持的IC卡命令集
包括:SELECT, GET PROCESSING OPTIONS, READ RECORD, GET DATA, VERIFY, GENERATE AC, EXTERNAL AUTHENTICATE。同时,CS需要能够解释IC卡返回的数据。

3。CS需要保存和处理的数据
在交易过程中,CS需要保存有以下数据元素:
1) Amount Other: Cashback amount, 在E-Commerce系统中值为空。
2) BrandID-AID Table:
3) ISO8859 Code Table: 帮助解析Application Preferred Name等数据。
4) Terminal Type: E-Commerce系统的终端类型是“unattended, online, controlled by cardholder”(value=34).
5) Transaction Type: E-Commerce系统执行的交易是"purchase of goods or service"(value=00).
6) Terminal Verification Results: CS执行完每个功能保存的结果(共5 BYTES,40BITS)。
4。SET协议扩展消息
SET消息包中需要包含以下信息以执行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的设计
无特殊需求。

四 PG(Payment Gateway)的设计
PG需要能够处理上述定义的SET协议扩展消息。

五 交易处理过程
定义IC卡<-->CS(Cardholder System)<-->MS(Merchant Server)<-->PG(Payment Gateway)之间的交互接口。
1。交易流程总览
如图。
2。CS和IC卡的功能交互接口
1) Card Selection: 持卡人选择相应的支付卡执行交易
过程:
Merchant Server支持的所有支付卡需要被显示;
CS需要提供所有可支付的方式;
CS需提示持卡人在交易期间IC卡不能退出,除非提示这么做

2) Application Selection: CS从IC卡中选择相应应用并显示
过程:
CS从MS发送的SET Initiation Message中获取可用于交易支付的机构Brand,并使用BrandID-AID表找到并创建支持的应用标识(AIDs)。如果AID没有找到,则要求持卡人尝试另一张卡或者更新BrandID-AID表。
在IC卡给SELECT命令的答复中若包含Application Preferred Name,则该名称需要显示给持卡人,若不包含,则显示Application Label给持卡人。如果答复中还包含Issuer URL,则CS同时还需要显示该Issuer的LOGO给用户。

3) Application Initiation: 初始化应用

4) Read Application Data: CS读取IC卡应用数据

5) Cardholder Verification: CS从持卡人处获取PIN信息发给IC卡或者ISSUER做身份校验
当AIP第一字节的第五位为1时,需要做持卡人身份验证。

6) Terminal Action Analysis: IC卡针对CS的交易授权请求决定DECLINE OFFLINE还是同意ONLINE AUTHORISATION REQUEST
要求:在给IC卡的GENERATE AC命令中发送的数据元素需要按照一定的格式转换,以方便IC卡理解。

7) Issuer Script Processing and Completion: CS根据脚本执行操作并提示用户取卡

3。CS和MS的消息交互接口
1) SET Initiation: MS通知CS并告知支付卡方式等交易细节
MS需要创建SET Payment Initiation消息并发送给CS,CS需要能够解析处理该消息。
2) Purchase Initiation: CS创建Purchase请求并验证MS和PG的身份,同时发送交易信息给MS
过程:CS创建发送PInitReq消息(包含Language, BrandID, BIN数据),MS创建响应PInitRes消息
3) Purchase Request&Response
PReq包含Language, BrandID, PAN, BIN, AID, Application Expiration Date等数据。

4。MS和PG的消息交互接口
1) Authorization Request(AuthReq) & Response(AuthRes)
2) Capture Request(CapReq) & Response(CapRes)


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理