全国服务热线:18937659226

技术支持 PRODUCT DISPLAY

洛阳一卡通小钱包在对接技术中的应用与实现

来源: 发布时间:2020-12-10 117679 次浏览

数字化校园的发展促使越来越多的高校引入了校园一卡通。为了继续利用现有的卡务系统如图书管理、水控POS

引言

      在高校校园一卡通系统中,学校很多部门已经应用了一些较为成熟的应用管理系统,如:水控电控系统、图书借阅系统、网上查询系统、OA系统等,但采用的开发平台各不相同,各种类型的数据库系统同时并存,有Foxpro、Access等桌面型数据库管理系统,也有SQL Server、Oracle、Sybase等大中型数据库系统[1]。

      为了实现不同卡务系统的对接,本文提出了基于校园一卡通系统对接技术的解决方案,解决了校园一卡通与水控系统的对接。

1 一卡通系统平台介绍 

1.1 一卡通系统结构 

       系统采用标准的三层架构:数据层、应用层、访问层,实现数据与业务彻底分离。针对不同的业务流,采用不同的结构:针对账务上传、黑名单下载、POS机轮询等业务,一般采用C/S的结构能充分发挥客户端PC的处理能力;针对学生Web查询余额、网上自助挂失等业务,采用B/S模式,以方便学生查询和维护管理。

1.2 一卡通系统主要构成部分 

⑴ 中心核心服务器:提供基础数据库,负责账务信息处理、圈存业务、挂失业务、查询业务、系统管理、设备管理等。这些功能构成了一卡通系统的核心功能。 

⑵ 备份服务器:负责同步备份中心核心数据库,保障数据的安全。 

⑶ 查询服务器:提供各个客户端的查询业务。 

⑷ 前台工作站:采集前台POS消费机的消费流水、上传流水、同步黑名单。 

⑸ 刷卡机(POS消费机):提供刷卡消费功能。 

⑹ 依托网络:在校园网上划分出一卡通Vlan,使工作站、服务器、圈存机等互联。 

⑺ 应用系统:与校园一卡通相结合的其他系统,如图书管理系统,水控消费系统,机房管理系统等。

1.3 流水上传及圈存 

  1.3.1 一卡通系统的流水上传工作模式:由前台刷卡机自动扣除卡片消费金额,保留消费记录到本机,待网络空闲时上传至前台工作站,工作站将采集的流水批量上传至中心服务器,由中心服务器负责账务结算,按月汇总结算报表。 

  1.3.2 圈存采用学生自助圈存:学生到圈存机上插入校园一卡通与银行卡,待验证有效之后,从银行卡上划拨相应金额至校园一卡通,中心服务器做记账记录。银行按月将划入的一卡通转账金额转入校园一卡通集体账户,由校财务处统一进行商户结算。

1.4 数据存储管理方法 

       采用分布式数据存储的方法,包括前台消费POS、前台工作站、中心核心服务器、备份服务器,从而保证了数据的一致性与可靠性。

2 对接方案的分析 

2.1 系统对接背景 

       某高校的在用系统包括校园一卡通系统与水控系统,这两个系统处于不同的开发平台且相互独立。为了将水控系统纳入校园一卡通的统一管理,提出了系统对接的解决方案。

2.2 系统对接技术的实现方案 

       两个系统维持现有功能不变,只在系统间通过一个物理的水控应用小钱包实现与校园卡主电子钱包余额的共享。小钱包密钥、校验算法与一卡通系统共同协商开发。 

       为了使小钱包在使用时对持卡人及业务管理人员透明,一方面,需要转移部分小钱包账号管理业务功能,转移包括小钱包开户、账号挂失、账号解挂等功能并集成到一卡通系统的现有功能中去,在系统间实现交易数据的自动同步,实现账号管理业务数据的共享;另一方面,通过小钱包实现主钱包资金在水控应用中的共享使用。

2.3 小钱包格式,扇区格式及总体框架 

为水控系统设计的钱包存储于2个扇区:

 ⑴ 主扇区:存储卡片基本信息。 

 ⑵ 备份扇区:存储卡片消费,及校验等设置信息。 

扇区划分为块0与块1,两者的格式一样照表。 

 块0:电子钱包区(公用部分、备份区) 

 块1:电子钱包区(公用部分,原数据区)

3 对接方案的实现 

3.1 开户充值功能实现 

一卡通系统根据水控系统提供的写卡方式、规则等,将金额写入指定扇区。依据图1的设计,详细实现功能如下。 

3.2.1 小钱包账号开户:由一卡通系统为水控系统开设一个小钱包账号,该账号在初次刷卡后自动隐含地生成。开户后,系统会在一卡通的某一空闲扇区上开辟一个物理小钱包,同时在一卡通后台账户表中开设小钱包账号。账号创建的同时在一卡通系统中产生一条小钱包开户交易流水记录,并立即自动同步到一卡通系统的“通用业务前置系统”数据库中,水控系统即可从此中间库同步到水控小钱包账号开户的交易记录。 

3.2.2 水控签到(小钱包账号充值):小钱包的充值操作隐含在水控签到业务操作中,从而实现对用户的透明化。用户签到时,系统首先会检查此校园卡的合法性,然后检查主钱包和小钱包的余额,计算出本次应向小钱包充入金额(为默认的消费额度减小钱包余额),并完成主钱包向小钱包的转账充值。同时,在数据库中记录下此卡的签到信息。正常完成水控签到后,小钱包内即已充入可供本次用水所需的费用,接下来可在水控系统中进行用水消费支付。

3.3 消费功能的实现

⑴ 控水终端读取此小钱包扇区的金额。 

⑵ 根据水控系统预先设置的费率扣除小钱包的余额。并产生消费流水,备份到水控系统数据库里。 

⑶ 控水终端只取小钱包里面的余额,根据小钱包里面的金额消费。 

⑷ 对于小钱包的扣款不产生负数,扣款到小钱包金额为零为止,控水写卡不存在透支。如果小钱包的金额为零,控水不能再次使用。

3.4 水控签退(小钱包账号退款) 

       水控签退,一方面是为了给一卡通系统的结算提供基础的消费交易流水记录,以统计出水控系统交易的结算报表;另一方面是为了实现主钱包余额与小钱包余额的共享。

3.4.1 正常签退情况:读取校园卡信息,查询签到表以确认此次刷卡完成签退。然后,将小钱包中的全部余额转账到主钱包,并根据签到时小钱包的转入金额与此时的转出金额之差,生成小钱包消费交易流水记录,存入数据库中,同时清除签到记录的标志。即完成了一次完整的水控消费功能。 

3.4.2 异常处理:若持卡人在水控系统使用过程中丢失了其校园卡,或者出门时忘记进行签退时,为保证系统账目的完整性,需要进行异常处理。有两种方案: 

⑴ 引入“手工签退”功能来结束签退操作。调用水控提供的账号消费查询API接口,查询统计出每个未签退小钱包账号的实际消费金额,并按正常签退一样的方式在系统中产生和存储小钱包消费交易流水记录,并进行手工签退。此时,其小钱包中可能还存在未消费完的余额,此余额尚未转入主钱包。

⑵ 为解决“手工签退”存在无法将小钱包余额转入主钱包的问题,采用“下次签退”,当下次刷卡时,若上次没有正常签退,则先进行正常签退再进行签到。 

3.5 账号挂失与解挂 账号挂失、解挂时,一卡通系统中产生交易流水记录并立即自动同步到一卡通系统的“通用业务前置系统”数据库中,水控系统即可从此数据库动态同步到挂失或解挂记录。

3.6 消费结算 

      水控系统以动态库的形式提供小钱包的消费数据,一卡通系统调用获取。一卡通根据水控系统在签退时产生的消费交易流水记录来统计生成水控消费的结算报表。 

3.7 数据同步接口 

3.7.1 一卡通提供的交易数据同步接口:通过通用业务前置系统,使一卡通系统中产生的交易数据能够及时、准确、安全地同步到水控系统中。为实现交易数据及时增量同步,系统中采用版本号进行管理。新流水记录的版本号最大。水控系统需要定时查询中间库中的小钱包交易表,将最新产生的交易记录取出存放到水控系统自身的交易记录表中,同时修改相应账号的数据。 

3.7.2 水控系统提供的接口:为了使现有水控系统的设计不变,小钱包的格式以水控系统的格式为依据。水控系统需要提供Win32平台的动态链接库(DLL)接口给一卡通系统。为实现无卡签退功能,需要水控提供小钱包某时段消费总额统计查询接口,此接口可传入一个小钱包账号、起始时间参数,传出从起始时间至当前时间的消费总金额,并可通过返回值确定接口调用是否成功。

4 结束语 

       利用一卡通提供的空闲扇区,开辟一个“小钱包”作为水控系统和一卡通系统的信息共享区,从而实现了校园一卡通系统与水控管理系统的成功对接。这是一个成功对接的案例。本方案也适用于机房管理系统与图书借阅系统等。目前我校的机房管理与图书借阅系统均已成功纳入一卡通系统的统一管理且运行良好。本方案可操作性强,对原系统没有任何影响,具有通用性。本文的成功案例为学校信息化的全面发展和应用系统的整合提供了解决方案。