终端关于”闪卡”问题的处理

转载请注明出处

作者:小马



设想这么一种情况, QPBOC卡消费, 在读应用数据阶段, 终端一条条发读记录命令,卡片一条条回, 当卡片返回了最后一条记录时,卡片在这个瞬间远离了终端. 终端”读最后一条记录失败”.这种情况下,卡片认为交互已经结束了,并且成功了,它会把钱扣掉,但是终端会报错,这笔消费对于终端是失败的,商户当然不会把商品给到持卡人,持卡人是吃亏的.

不用”这种情况很少发生”这样的借口,肯定是有可能发生的.这里要讨论的是,遇到这种情况,该如何处理呢?


先说一种,银联很早就采用的方法. 当终端判断是读最后一条记录失败时,会把这笔交易存下来,在批结算阶段会把这笔交易上送到后台系统,这样后台系统就相当于知道”这件事”, 持卡人如果有投诉,可以把钱退还给持卡人.  这个方法其实终端只是做了一个”记录-上送”而已,具体的处理由后台系统完成. 如果要求终端”自己解决”, 该如何处理呢?

 

原理大体上讲就是, 终端把出现”闪卡”这次的数据保存起来,再处理一次同一张卡,但是只执行应用选择和读应用数据,不发GPO指令,这样就不会重复扣费.

 

详细的过程如下:

正常情况下,终端每做完一笔交易,在开始下一笔之前,终端里还保存着上一笔的数据,比如AFL,ATC, 主账号,余额等等, 当终端发现“闪卡”情况,终端提示交易失败,然后让再次放卡, 当再次检到卡之后, 终端能过一系列的条件判断,该张卡是否是刚才出现”闪卡”这一张,如果是,终端只发应用选择,然后根据上一笔的AFL, 执行读应用数据,后面的流程就跟正常交易一样的了.

上面所说的判断同一张卡的条件,一般需要下面几个:

 

1 卡序号是否相同,这个在检到非接卡的时候就可以获取到了.

2 ATC是否相同,做完应用选择之后,可以用get data取出

3 余额,获取的当前余额,上一笔保存的余额减去上一笔的交易金额是否一致


如果判断到重放上来的不是同一张卡,那么处理起来就比较令灵活了,不同的应用场景可以不同处理,另外处理方式还会因终端可以存储多少笔”闪卡”记录有关.


请高手拍砖. 

你可能感兴趣的:(银联,闪卡,pboc,QPBOC)