具体实施方式
本发明的目的在于提出了一种IC卡的应用系统,旨在多商户可以共享一张IC会员卡和技术平台,实现多商户可共享一张会员卡并行独立管理、可相互授权,且新的商户发行自己的会员卡或者共享其他商户已发行的会员卡时无须重建系统,而在一个平台下实现多商户对会员卡并行管理且开放性的接受新商户的不断加入。
为了使得新的商户在发行自己的会员卡或者共享其他商户已发行的会员卡时无须重建系统,本发明实施例基于“商户个性区”模块、“商户的身份识别信息与验证信息”和IC卡技术,实现商户终端独立发行和管理自己的会员卡。其大致通过以下几个方面实现上述功能:
1)IC会员卡上不同商户的文件通过对“商户的身份识别信息与验证信息”的验证控制实现了不同商户间的独立性;
2)通过“商户的身份识别信息与验证信息”的新建、传递和管理的机制,新的商户可以方便的加入到开放性平台中来;
3)通过在商户终端设置“商户个性区”,使不同商户可以使用同一种商户终端设备,通过在“商户个性区”中加载不同的“商户的身份识别信息与验证信息”,实现会员卡上对应商户信息的管理。
以下对本发明予以详尽说明。
第一部分,对本发明系统的目的,组成,操作流程以及特点予以说明:
一、系统目的
1、实现多家商户能够共享同一张物理卡进行独立互不干扰的、可相互授权的会员管理;或者说用户可以凭一张卡成为多家商户的会员并享受会员优惠。
2、商户可以在一张共享的会员卡上独立、发行自己的会员商户信息并实施可动态的优惠政策;也可以联合其他商家发行共同的会员商户信息并实施优惠政策;还可以授权其他商户使用自己发行的会员商户信息,实施优惠政策。
3、跟踪和分析会员在各商户的交易记录,为相关的商户和会员提供决策依据。
说明:1、优惠政策:指商户给予会员不同于非会员或者其他会员的销售折扣或者销售奖励,如赠品等。动态的优惠政策指商户根据会员在其交易历史,如累计消费金额、入会时间及本次交易,如本次交易商品、本次交易金额、本次交易期等动态信息给予不同的优惠。
2、会员商户信息:指商家用于记录会员关系的信息,可能包括但不受限于入会时间、会员等级等信息,并根据其动态优惠政策必要的依据可能记录累计消费额,或者积分等信息。
3、本发明所指的商户是一种泛称,既可以是某一个具体商户,也可以是多个商户的联盟,甚至可以是多个商户和多个商户联盟的联盟。
4、每个商户可以设立多个消费点,每一消费点对应一台商户终端,因而一个商户可以对应多台商户终端,各商户终端由不同的终端编号进行区分。
二、系统组成
如图1所示,本发明开放性多商户共享会员卡系统的组成包括IC卡、商户终端和共享中心平台,商户本地平台---可以是商户的电子收款机系统,所述共享中心平台可通过互联网与商户本地平台进行通讯,并可借助该通讯网络与商户终端进行信息传递,也可以借助IC卡做信息载体,直接实现共享中心平台和商户终端之间的信息传递,这里所称的信息主要是指:由中心平台的计算机生成的、且商户终端工作必需的商户个性区信息。为了融合进电子钱包的功能,从图1可以看到,系统还要配置:电子钱包的结算中心、发卡终端和充值终端来提供相应的功能,而为了实现由商户终端来对IC卡内余额进行扣款操作,还必须构建商户终端与上述结算中心的信息传递通路,它可以是互联网,也可以是专用网络。下面对系统的几个主要部分,予以进一步描述:
1、IC会员卡:一张可存储卡。它在发行后包含以下信息:会员公共信息:记录会员身份、联系方式等公用的信息和公共的验证信息;会员商户信息:在各商户参加会员计划时获得的信息,包括了会员在该商户的优惠依据,如积分、VIP级别等,以及该商户的验证信息。
也就是说,IC会员卡上记录了特定消费者和多个商户的会员关系,各个会员关系是相互独立的,必须经过发行商户或其授权商户的验证-通过商户终端实现,方可读写特定信息。
2、商户终端:一台运行会员管理程序的计算机或者其他专用设备。
它可能包括但并不限于以下信息:本商户个性信息:包括商户的ID号、其他备注,如商户名称、验证信息,和/或授权商户的商户信息,也就是获得授权商户的ID号、其他备注,如商户名称、验证信息;交易记录信息:包括历史发卡和消费记录的数据库;优惠规则信息:商户对于会员的动态优惠规则,例如对不同等级或者不同积分的折扣或者奖励。它还可以包括针对商户唯一,或针对每台商户终端唯一的设备编码信息。
它提供以下功能:发卡:在IC会员卡上发行,写入会员商户信息,和/或商户的交易依据以及相应的商户验证信息,并记录发卡信息。
优惠计算及处理:能够根据会员卡上的会员商户信息和本次交易信息、商户终端上的优惠规则信息,计算优惠并提示,获得确认后记录本次交易信息及优惠;简单查询:提供对商户终端上记录的简单查询或者统计;数据同步:能够和指定的,符合接口标准的中心平台的计算机传送或者接受交易记录信息、优惠规则信息。
3、共享中心平台:服务中心系统,根据商户申请提供商户终端并对其个性化,接受商户上传的发卡记录、交易记录和发布信息,并为商户和持IC会员卡的会员提供记录查询和分析。
三、系统的操作流程
1、商户申请商户终端:愿意共享IC会员卡的商户向共享中心平台申请商户终端,共享中心平台接受申请后提供带有共享接口程序的商户终端,并在向其写入商户个性信息。商户对其商户终端的验证信息和优惠规则信息进行设置后,可发卡和交易。也就是说,验证信息是由共享中心平台初始化,商户进行个性化的。
综上所述,当系统接纳一个新的商户时,仅需要生成其“商户的身份识别信息与验证信息”,并传递到商户终端的商户个性区,进而实现其对会员的管理功能,从而使得本发明实施例所提供的系统具有所述的开放性。
2、商户发卡:商户通过商户终端可以对符合技术标准可存储卡的空白卡或者本系统其他商户发行的会员卡写入会员商户信息。如果是空白卡片,商户终端将提示录入并同时写入会员公共信息和会员商户信息。如果是其他商户已发行会员卡,商户终端只写入会员商户信息;发卡成功后,商户终端会自动记录和存储发卡记录。
3、会员用卡:发卡后,会员凭卡可以到该商户享受会员折扣或者其他优惠政策。商户终端读卡后,根据是否存在本商户信息,并经过验证后打开商户信息,显示会员身份和优惠提示或者提示参加本商户会员计划。如果是本商户会员,录入本次消费交易信息,商户终端根据预设的优惠规则信息自动计算优惠并显示优惠结果,经会员确认后,自动记录本次交易记录和更新会员卡上的会员商户信息。
4、记录查询或者分析:商户可以在商户终端中直接查询,还可选择将商户终端中的发卡记录和交易记录上传到中心平台后通过共享中心的服务进行记录查询和或者分析,中心平台通过权限验证为商户和会员提供记录查询或者分析。
说明:上述有关商户终端上的验证是指:商户终端利用商户个性信息中包含的验证信息和会员商户信息中包含的验证信息进行相互验证。验证信息中包含有验证数据,如密钥和验证方式,如3Des。商户对会员商户信息进行读写操作前必须验证通过,商户对商户终端中的验证信息进行设置,并在发卡时运算卡上的验证信息并写入卡中。由此可见,“商户的身份识别信息与验证信息”是和IC会员卡上对应的商户信息的操作权限有关的信息。
四、系统特点
1、商户之间通过独立、联合或者授权发行会员商户信息既可独立管理又可以相互共享客户/会员资源:现有的系统都是商户独立发卡或者商户联合体发卡中的一种,本发明系统中多家商户共享一张物理卡,通过相对独立的会员商户信息实现会员管理,各会员商户信息必须经过发行商户的验证方能读写,真正互不干扰,共享接口简单;
2、无需实时联网,可脱机交易和存储交易记录:会员卡上的会员商户信息记录了会员管理政策依据的所有信息,商户终端上又存储了优惠规则信息,因此在商户交易时,商户终端无需联网平台中心的计算机----服务器,从卡上读取该会员公共信息和会员商户信息即可计算优惠,商户终端可以存储交易记录,并在数据存储区写满时或者商户主动采集时上传到商户本地平台和/或共享中心平台。
3、开放性的平台:整合商户和客户资源,利于普及会员管理和商业CRM(客户关系管理)
管理方法,共享会员卡使客户一卡通行,乐于持卡用卡,并通过系统自动跟踪和分析交易记录,使商家能够通过CRM管理提高效益;由于可以脱机交易和暂时存储交易数据,相比实时系统,它组网和使用更加灵活。
第二部分,对本发明系统的具体实现予以说明:
一、数据结构
1、IC会员卡内的数据结构:
a.会员公共信息:
typedef struct
{
char Email[32];//32位字节的Email
char Mobile[16];//16位字节的手机
char ID[8];//用户8字节ID
char Pass[6];//用户6字节的PIN密码
char FSNum;//1字节的可扩展商户信息总数
char Control;//1字节的控制字节,用其中1个bit的状态表示消费是否需要检验密码。
}cPrivate;
b.会员商户信息:可以有多个
typedef struct
{
char ID[8];//商户ID
long TotolInte;//积分总数或者其他交易依据
char YY;
char MM;//有效期
unsigned short Count;//计数器,记录使用的总次数
}cInteFile;
c.电子钱包信息:使用32个字节
typedef struct
{
strCardMoney As String*8 ′储值额:分
strCardMoneyBackup As String*8 ′储值额备份:分
strCardConCount As String*4 ′累计次数
strCardConMoney As String*8 ′最近一次消费额:分
strCardSpare3 As String*4 ′备用
}cCardMoney
2、商户终端内的数据结构
a.商户个性信息:包含本商户,和/或多个授权商户(如有的话)的下述结构的商户信息,商户个性信息是包含商户ID和读写密钥的数据。
typedef struct
{
char ID[8];//商户ID号,8位字节
char KeyA[6];//更改卡上商户信息时必须验证的密码A,6位字节
char KeyB[6];//读取卡上商户信息时必须验证的密码B,6位字节
char Control;//控制字节,分别表示可读可写、可读不可写等不同权限状态。
char Param;
char YY;
char MM;//有效期:YY-MM
}cShopInfo;
说明:卡内信息的组织方式和验证方式例举。商户终端读取卡过程的详细流程,由图4所示。
1、关于信息在卡内的寻址方式
a.对于逻辑存储卡采取默认起始地址的方式
例如在M1卡中我们会默认是1扇区0块和8扇区0块作为起始地址。2个起始地址为了防止卡内起始地址相关扇区已被占用,可以增加灵活性。
b.对于CPU卡采取在根文件目录下注册一个特定文件的方式。通过读取这个文件获得地址。起始地址所在一般是会员公共信息。读取会员公共信息可以获得商户信息组织方式的相关信息,包括商户信息的起始地址或者地址索引表。
2、商户信息的组织方式
一般而言,商户信息采取队列组织方式或者索引表组织方式。
队列组织方式指多个商户信息采取队列的数据结构,通过顺序查询获得特定商户信息。例如在M1卡中,我们可以使用连续的多个扇区存储商户信息,商户终端机采用约定的验证方式和商户ID顺序访问直至成功。
索引表组织方式指一个记录商户ID和对应地址信息的索引表,通过访问会员公共信息中包含的的商户信息索引表获得商户信息地址并按约定的验证方式读取商户信息。
3关于验证方式和密钥体系的举例。
逻辑加密卡和CPU卡都有自己的访问安全控制体系,而一般采用密钥管理体系,因此验证方式的关键即为密钥。
我们采取的方式是每一个单位信息,如会员公共信息都有独立的密钥。
密钥体系例举:整个系统使用一个公共密钥和商户种子密钥,每个商户机保存公共密钥。
会员公共信息通过种子密钥和会员ID生成公共信息密钥,从而一卡一密。
商户密钥通过商户种子密钥、商户ID和商户密码生成商户密钥,从而一户一密。
卡上会员商户信息通过商户密钥和会员ID再生成卡上会员商户信息的密钥。
b.发卡和消费记录
typedef struct
{
unsigned long RecNo;//记录流水号
char Style; //类型:发卡、消费、积分、兑奖
char ID[8]; //会员ID
char Email[32]; //Email
char Mobile[16];//手机
char ShopID[8];//发生交易的本店商户
unsigned long ShopTotolInte;//累计消费额或者积分
unsigned short ShopCount;//累计使用次数
char UniID[8];//关联的授权商户
unsigned long UniTotolInte;//累计消费额或者积分
unsigned short UniCount;//累计使用次数
unsigned long Inte;//本次交易额
typ_RTC_date_rec OccurDate;//时间
char Control;
}cRecInfo;
c.优惠规则信息:由以下数据结构的记录组成
typedef struct
{
long Inte;//累计积分(消费)最低限或者其他交易依据(数字)的下限;
char Rate;//折扣率
}cInteRate;
二、商户终端
如图2A所示,它的内部电路结构包括:微处理器、存储器、显示屏、键盘、IC卡接口和通讯接口等。所述微处理器选用Motorola龙珠系列,内存也即SRAM存储器的容量为256Kbyte,Flash(闪存)存储器的容量可达1-4Mbyte,通讯接口有UART(通用异步接收发送)的RS232串行口、红外线口以及Modem接口,很方便与PC机进行数据交换;该商户终端可读写常用的memory卡、加密IC卡和CPU卡,支持三卡同时操作,适合于安全交易操作;所述IC卡可以是接触式的,也可以是非接触式的。
如图2C和2D所示,其外形结构便于手持操作,其中:1为电源开关;2为功能键F3,可定义为上翻页;3为功能键F2,可定义为下翻页;4为功能键F1,可定义为切换输入;5为LCD面板:选用带显示符的128*64点阵LCD;6为指示灯;7为↑↓:上、下键;8为数字/字母混合键盘,“C”:取消键,“→”继续键;9为卡座1:可以插入IC卡;10为电池座;“重启”键:用于重启系统;11为双SIM卡座:可以插入SIM卡;12为与计算机接口,可以使其与计算机通过USB口,RS232串口或红外等无线通讯手段连接。
其可读写的卡型,包括:
a.存储卡,如美国ATMEL公司的AT24C01A/24C02/24C04/24C08/24C16/24C64,AT88SC102,AT88SC1604/1604B,AT45D041,AT93C46/93C46A卡;德国SIEMENS公司的SLE4432/4442,SLE4418/4428,SLE4404,SLE4406卡等
b.CPU卡(符合T=0/T=1通讯协议)
c.飞利蒲公司的射频卡mifare卡以及M1卡
d.上海华虹公司的射频卡
所述微处理器运行的程序,可划分为应用程序层、API(应用程序接口)、驱动层和BIOS(基本输入输出)等层次结构。所述驱动层与应用程序层联系,具体包括卡驱动、数据库接口、菜单驱动和图形接口等部分;所述BIOS与硬件打交道,具体包括UART、LCD、卡、FLASH存储器、系统中断信息、键盘、时钟以及电源等功能部分。所述存储器,包括SRAM和FLASH所占用地址空间的分配,如图2B所示。
以下说明应用层接口:
键盘类API函数
1.接收键盘消息函数:
int getch(int key,int stime,int sceentime);
输入参数:
key:关机键值
stime :按特定键一定时间内开/关机
screentime:(待定)
返回值:按键值,如长按key键大于stime秒,则返回-1.
2.int gets_InputMsg(int x,int y,int slen,char*buff);
所需涉及的全局变量:
1.int is_beep_key;//按键发出响声
2.int is_el_disp;//是否背光显示
显示类API函数
1.清屏函数:
void clear_console(void);
2.关机函数:
void console_power_save(void);
3.开机函数:
void console_disp_on(void);
4.移动光标到指定位置:
void move_cursor(int x,int y);
5.显示数据:
puts(char*buf);
注:需与光标函数move_cursor()一起使用。
6.指定位置显示文字:
void DispStr_CE(int qx,int qy,char*ceStr,int xyFlag)
其中,xyFlag有以下选择:
DISP_CURRENT:
DISP_POSITION
DISP_CENTER:文字对中显示
DISP_RIGHT
DISP_NORMAL
DISP_REVERSE:文字反向显示
DISP_7x9
DISP_5x7
DISP_CLRLINE
DISP_CLRSCR:文字清屏显示
disp(char*buf,int buflen);
CPU卡操作类API函数
1.CPU卡复位函数:
int cpu_reset(unsigned char*data_buffer)
输入参数:无
输出参数:data_buffer:复位响应返回的字符串
返回值:=0:正确 <0:错误
2.向CPU卡发送命令串:
int cpu_protocol(int len,unsigned char *send_cmd,unsigned char*receive_cmd)
send_cmd:对卡操作的命令串
len: 命令串的长度
receive_cmd:CPU卡返回的数据串
返回值:=0:正确 <0:错误
程序调试类API函数
指定行显示数据的十六进制码:
void dump_memory(unsigned char*buf,
unsigned short int cnt,
unsigned short y);
asc_dump_memory()
通用类API函数
1.设置时间函数:(仅用于四键手持机)
int key4_setTime();
2.设置日期函数:(仅用于四键手持机)
int key4_setDate();
3.延时函数:
void delay(int sec);
通讯类API函数
1.数据通讯连接函数:short data_transmit_connect()
2.数据通讯断开函数:short data_transmit_disconnect()
3.short dt_send(unsigned char*data,int datalen)
4.unsigned short dt_recv(unsigned char*data,int*datalen)
所用的全局变量:
1.unsigned long int Rs232OpenFlags
用于手持机数据通讯初始化时,对串口进行设置,如:
Rs232OpenFlags=UART_232_ON|UART_ON|UART_8_DATA_BITS|UART_BAUD_9600;
2.int bModifyMainboard
手持机射频读写模块,针对华虹和mifare卡
射频读写器的接口函数说明
以下为高级函数:
1.连接射频读写器:
__int rf_connect(unsigned long baud,unsigned char*Version);
输入参数:bau d:UART_BAUD_115200:115200bps;UART_BAUD_9600:9600bps
输出参数:Version:读写器版本信息
返回值: 成功:SUCCESS 失败:FAILURE
2.断开射频读写器:
__int16 rf_disconnect();
返回值: 成功:SUCCESS 失败:FAILURE
3.读取IC卡的数据:
__int16 rf_readcard(int sector,int block,unsigned char*data);
输入参数:sector:IC卡扇区号 block:块号
输出参数:data:读出数据
返回值:成功:SUCCESS 失败:FAILURE
4.写入IC卡数据:
__int16 rf_writecard(int sector,int block,unsigned char*data);
输入参数:sector:IC卡扇区号 block:块号 data:写出数据
输出参数:无
返回值: 成功:SUCCESS 失败:FAILURE
以下为低级函数:
1.将RF系统关闭一段时间:
__int 16 rf_reset(unsigned__int16_Msec);
2.将操作后的卡片置于halt模式。如果又要对卡片操作,必须重新执行request操作。
__int16 rf_halt();
3.向天线操作范围内的卡片发出请求和检测信号:
__int16 rf_request(unsigned char_Mode,unsigned__int16*TagType);
4.防冲突操作并返回卡片系列号:
__int16 rf_anticoll(unsigned char_Bcnt,unsigned long*_Snr);
5.选择卡片并返回卡片容量值:
__int16 rf_select(unsigned long_Snr,unsigned char*_Size);
6.相互确认:
__int16 rf_authentication(unsigned char_Mode,unsigned char_SecNr);
7.改变存放于ASIC接口内部RAM中的授权密码:
__int16 rf_load_key(unsigned char_Mode,unsigned char_SecNr,unsigned char*_NKey);
8.读出卡中某一块的16个字节数据:
__int16 rf_read(unsigned char_Adr,unsigned char*_Data);
9.写出卡中某一块的16个字节数据:
__int16 rf_write(unsigned char_Adr,unsigned char*_Data);
10.选择卡片与RWD之间的操作模式与通讯速率:
__int16 rf_config(unsigned char_Mode,unsigned char_Baud);
11.置MCM控制字节的某一位:
__int16 rf_set_control_bit(unsigned char_b);
12.清MCM控制字节的某一位:
__int16 rf_clr_control_bit(unsigned char_b);
13.读出系统的SW信息:
__int16 rf_get_status(unsigned char*_Status);
14.将卡内数值块的内容读到寄存器中:
__int16 rf_restore(unsigned char_Adr);
15.将卡内寄存器中的内容写入块中:
__int16 rf_transfer(unsigned char_Adr);
16.将卡中的数值块加上某一数值(value)并把结果存于卡内的寄存器:
__int16 rf_increment(unsigned char_Adr,unsigned long_Value);
17.将卡中的数值块减去某一数值(value)并把结果存于卡内的寄存器:
__int16 rf_decrement(unsigned char_Adr,unsigned long_Value);
以下对本发明IC卡选例MIAFRE卡的格式,以及商户终端对其设定进行说明:
miafre卡格式:选择从1扇区或者8扇区开始的连续6个扇区共18个块288个字节。
sector 0:
block 0:硬件mifare卡的序列号(固定不能改)
block 1:
block 2:
block 3:keyA和keyB
sector 1:
block 0:会员公共信息Cprivate的Email[32]前16个字节
block 1:会员公共信息Cprivate的Email[32]后16个字节
block 2:会员公共信息Cprivate的Mobile[16]
block 3:keyA和keyB
sector 2:
block 0:会员公共信息Cprivate的char ID[8];//用户8字节ID,
char Pass[6];//用户6字节的PIN密码
char FSNum;//1字节的可扩展商户信息总数,
char Control;//1字节的控制字节,用其中1个bit的状态表示消费是否需要检验密码。
block 1,2:电子钱包32个字节
block 3:keyA和keyB
sector 2:
block 0:存储会员商户信息
block 1:存储会员商户信息
block 2:存储会员商户信息
block 3:keyA和keyB
以下每个扇区存储3个会员商户信息或者单独存储1个会员商户信息,可以根据卡片的可用空间扩展。
商户终端数据库分配:
商户个性区:
1.本商户ID(8char),本商户name(8char),密钥keyA,keyB
2.授权商户ID(8char),授权商户name(8char),密钥keyA,keyB
3.授权商户ID(8char),授权商户name(8char),密钥keyA,keyB
以下可以保存多个授权商户
消费规则区:
1.商户ID,商户折扣表(4个折扣段)
2.授权商户ID,商户折扣表(4个折扣段)
3.以下可以保存多个授权商户的消费规则
发卡和消费记录区:见前述的cRecInfo结构的说明。
其它考虑:
1、商户终端和POS(电子收款机系统)机的协同工作
商户终端提供标准Win32动态库给外接设备程序,POS等外部设备可通过通讯借口连接对商户终端进行指令控制,包括:
GetCustomerPublicFile:获取卡上会员公共信息。
IssueCustomerPublicFile:根据会员公共信息参数写卡上会员公共信息。
UpdateCustomerPublicFile:根据参数修改卡上的会员公共信息。
GetMyShopFile:根据ShopID(商户号)读取卡上会员商户信息。
IssueMyShopFile:添加会员商户信息内容并写入卡片。
UpdateShopFile:根据ShopID和参数更新卡上会员商户信息。
SetDiscount:根据ShopID选择覆盖写商户机中优惠规则信息。
GetDiscount:根据ShopID选择读取商户机中优惠规则信息。
GetRecord:下载设备中的交易记录。
GetStatus:获取设备参数:包括系统版本号、设备序列号、设备时间等参数。
POS上运行的程序通过调用上述动态库将参数传递给商户终端,商户终端处理该指令并反馈回数据。通讯协议和IC卡的操作密码验证全部封装在商户终端和动态库程序中。
1、关于IC商户卡授权
商户终端通过获得其他商户授权读取多张IC商户卡,可以添加存储多个商户个性文件,并设置对相应商户文件的优惠规则,在读取会员商户文件时按照优先顺序依次搜索卡上的会员商户文件并打开,按照对应的优惠规则给予优惠。
商户终端内的个性文件表存储多个cShopInfo记录,默认第一个文件为本商户文件。
商户终端内的优惠规则表存储多个cInteRate记录,分别对应个性文件表中的商户文件,体现本商户对于授权商户发行的会员提供的优惠政策。备注:由本商户制定,可能不同于发行商户的优惠政策。
例如,A商户获得B商户授权使用其发行的会员商户文件提供优惠,或者说A商户和B商户达成协议,可以向后者会员提供优惠。A商户必须拿着B商户的IC商户授权卡,该卡上信息由B商户的商户终端写入,其上信息基本同商户卡,差别在于可能只有读取的权限而没有更新的权限,在本商户终端上刷卡,将B商户个性文件中必要的信息写入商户机的商户个性文件表中。
程序设计说明:
菜单整体结构如图2E所示,包括开机画面,第一功能层次的发卡、消费、查询、设置、联网和系统,以及其它具体功能层次的项目,如查询下面的交易记录、授权状态以及关于本店。开机流程见图2H,菜单操作流程见图2G,读取商户卡设置商户终端见图2F,有关事务处理包括,发卡:对空白卡写入会员公共信息和本商户会员商户信息,或者对已发行卡写入本商户会员商户信息,具体流程见图2I。将发卡记录写入本机数据库。消费:读卡显示卡信息,并接受消费信息录入,根据优惠规则信息计算优惠并显示优惠结果,经确认后将本笔消费记录写入本机数据库,具体流程见图2J,并可以直接扣款本卡的电子钱包,具体流程见图2M和2N,而电子钱包的发行和充值则分别见图2K和2L。交易记录:查看记录条数,按↑↓键翻查本机的发卡和消费记录。授权状态:查看本机的已申请卡号、可发卡证书数量和本机期限。关于本店:查看本机的有效商户,包括本商户信息:ID和名称,和获得授权的商户。
设置折扣:设置本机的优惠规则信息,对卡片等级和积分的对应折扣。初始化商户:读取商户卡,设置本机的商户个性信息。同步数据:和共享中心平台通过网络同步发卡记录、消费记录、证书、后备卡号。申请证书:向共享中心平台申请本机的可发卡证书。设置时间:设置本机的时间。下载程序:联网下载最新的程序版本。格式化数据:删除本机的所有发卡记录和消费记录。关于本机:查看本机的设备号、程序版本。
通过显示屏提供的界面包括:图3A-H分别示出的开机界面、开机显示界面1、开机显示界面2、设置折扣界面、发卡界面、会员消费界面、确认优惠结果和扣款界面和查询交易记录界面。
应用系统举例说明:
假设有一个商户共享平台管理中心X。有两个商户A和B愿意加入该IC卡应用系统,于是流程开始了:
1、商户A、商户B向X申请商户终端,分别获得为商户编号001和002的商户卡和一部经过公共信息初始化的商户终端,这时商户终端上只存有会员公共信息密钥,还没有设置商户。
2、商户初始化:商户A、商户B分别用商户卡对其商户终端进行商户设置,通过进入设置商户功能。这时两部商户终端在公共信息密钥的基础上分别获得001号商户信息(包括商户Id和密钥)和002号商户信息。
3、商户设置折扣规则:以商户A为例,它在其商户终端进入设置折扣功能,并设置:
积分100分以上 99%折扣
积分1000分以上 80%折扣
积分10000分以上 60%折扣
商户B也对其折扣规则进行设置。
5、消费者甲到了商户A消费,希望加入会员计划。他原来拥有一张小区卡,是一张符合标准的存储加密卡。
商户A的收银员请他在商户终端上刷卡,并录入Email地址为hello@multicard.com,手机号码为13808888888这些信息形成一个会员公共信息格式,并在卡上写入上述信息的公共信息和公共信息密钥。
在获得消费者甲同意后,商户A通过商户终端发卡在卡上写入编号001的商户信息和商户信息密钥,商户信息中包括了一个累计消费者甲在商户A消费额的积分。
6、消费者甲在商户A累计消费并获得1200个积分,并再次来到商户A收银台,本次消费1000元。
收银员请他刷会员卡,消费者甲刷卡后,商户终端通过密钥认证打开卡上001号商户信息显示:
用户:hello@multicard.com
累计积分:1200
享受折扣:8折
本次消费:
收银员录入:1000元并确认
商户终端显示:
用户:hello@multicard.com
本次消费:1000元
享受折扣:8折
本次应收:800元
消费者甲确认付款后
商户终端将本次交易存入flashmemory.并将消费者甲卡上积分修改为2000。
7、消费者甲到了商户B消费,希望加入会员计划。收银员询问并确认他拥有多商户共享卡,并请他在商户B的商户终端上刷卡。
商户终端显示”没有有效积分!”--指的是消费者甲没有商户B的积分,于是收银员进入发卡流程。商户终端显示
用户:hello@multicard.com
联系:13808888888
是否更新资料?
获得继续确认后,商户终端显示“是否加入本店会员计划?”
经过确认后,商户B商户终端在卡上寻找新的空间并写入了002号商户信息,积分为0。
8、消费者甲从此可以在此两店使用同一张卡享受折扣。当然在商户A使用001号商户信息,商户B使用002号商户信息。
9、当商户终端上的数据满了以后,通过联上X的网站,使用“上传”功能把记录传给X的服务器,以后就可以在这个网站上查询消费记录。
10、电子钱包的引入;
经过成员商户A和商户B的同意,X决定在共享会员卡上发行电子钱包。
消费者甲来到商户A询问,得知无法在商户终端上获得电子钱包的发行和充值。
但是商户A的工作人员告知X在其场内设置了指定充值点可以申请电子钱包并充值。
充值点的设施是一台连接X电子钱包管理中心的电脑,工作人员获知消费者甲将申请电子钱包并充值500元。请消费者甲刷卡,通过对公共信息的密钥认证并打开后,系统显示:
用户:hello@multicard.com
未申请电子钱包,是否申请?
确认后,在卡上写入电子钱包信息,余额为0,次数为0,并将发卡记录写入招商会电子钱包管理中心的数据库。
工作人员继续输入充值500元的指令,系统接受,并更新卡上电子钱包余额为500元,次数为1,并将充值记录写入X电子钱包管理中心的数据库。
11、消费者甲已在商户A累计消费并获得2000个积分,并再次来到商户A收银台,本次消费累计500元。
收银员请他刷会员卡,消费者甲刷卡后,商户终端通过密钥认证打开卡上001号商户信息显示:
用户:hello@multicard.com
累计积分:2000
享受折扣:8折
本次消费:
收银员录入:500元并确认
商户终端显示:
用户:hello@multicard.com
本次消费:500元
享受折扣:8折
本次应收:400元
消费者甲确认付款后,商户终端检索卡上电子钱包并提示:是否使用电子钱包付款?获得确认后,商户终端通过密钥认证并将电子钱包中的余额改为100元,次数为2。
商户终端将本次交易存入闪存.并将消费者甲卡上积分修改为2400。
12、商户A将记录上传到X的服务器。X统计电子钱包消费记录并进行清算,将共享会员在商户A的消费总额划给商户A。
以上所述之最佳实施例意在具体说明本发明的思路:在IC卡上设置会员公共区和会员商户区,并可另设电子钱包区,在商户终端保存商户个性信息和交易信息,加上中心平台的支持,构建而成IC卡应用系统。本发明之实施,并不限于以上最佳实施例所公开的方式,凡基于本发明之设计思路,进行简单推演与替换,得到的具体的开放结构的多商户共享IC会员卡系统及其构建方法,都属于本发明的实施。