原来工作一直在市民卡公司,接触到的都是一些和卡相关的业务系统.准备总结下,不要老是站在代码实现的角度上了,站的更高一点总结下,初次总结,仅供参考.
现阶段来说, 各个城市的公交卡已经使用的很广泛了. 虽然还没有实现各个城市之间的互联互通,但是最起码各个城市自身的公交卡系统运转还是比较成功的.
一般情况下公交卡都不是公交公司发行的,基本每个城市都会有一个公司专门发行管理这些卡片,并且对卡片的交易进行清算,并且和其他银行,公交公司,地铁公司进行账务结算。这个公司一般都是市民卡公司(当然,这个不是绝对的)。
我们假设某个城市的公交卡只能刷公交车,并且是由该城市的市民卡公司发行的卡片,那么,这个公交卡在一笔交易的过程中会有哪些公司参与,会发生哪些活动呢?
在这个过程中,首先我们会带着卡片在公交车上的终端POS机上刷卡,并且,会被扣掉卡片里面存储的一部分金额。这条信息就被存储在了这台POS机的内存设备上,当每天的公交运营结束之后,这台公交车会回到公交公司,会有专人对这个POS机上的数据进行采集,然后导入到特定的系统中进行转换计算,公交公司一般都会有一个自己的系统来对这些数据进行统计处理。同时,这些数据会被通过网络传送到市民卡公司的系统里,市民卡的清算系统会对这些数据进行处理,计算,在市民卡公司处理的这个过程中,这张公交卡在市民卡公司的数据库里的账户中的金额才会被减少。最后,市民卡公司的系统会出财务报表,为市民卡公司和公交公司以及银行对账,付款提供依据。
首先,我们说下,公交卡上的钱到底是存储在哪里的,公交卡和银行卡一样么?
市民卡的清算会出错么?
1. 公交卡上的余额是存储在卡片内部的。对这种情况,我们一般称为“电子钱包”。公交卡和银行卡是不一样的,银行卡几乎所有的信息都是存储在系统后台的。这个和两种卡片的用途特性有关,一般,公交卡我们最多充几百块钱而已,都安全性要求比较低,而银行卡就相反了。可能会有人问,那我的公交卡挂失的时候怎么办。市民卡后台的数据库中对每一张卖出的卡片都有对应的账户存在,卡片丢了,后台数据库还在,所有,一般挂失还是没有问题的。但是根据上面说的处理流程,一般这种脱机的交易从交易发生到扣除账户余额中间会有大概好几个小时甚至一整天的时候,所有,公交卡挂失一般情况下处理时间都比较长,可能需要好几天来确认,否则,有人捡了你的卡,去超市刷爆了,市民卡公司还赔给你了岂不是亏了。(很多城市的公交卡都会卡通小额脱机交易的功能)。
2. 市民卡的清算过程中出错是时有发生的,特别是现在的交易量越来越大,车辆越来越多,还有一些多级票价处理,以及异地互通的情况,都会加大出错概率。首先,人工采集公交POS数据的时候就可能会有遗漏,也可能某台POS机坏了。可能因为网络的关系,在传输的过程中丢包了,或者重复传输了。种种情况都会产生各种错误。但是,一般对于公交卡这种特殊的卡片来说,这种错误是在允许范围内的。