本发明涉及数据处理技术领域,具体涉及一种基于pos机的黑名单处理方法及其系统。
背景技术:
随着预付卡发行量指数级别上涨,用户遗失卡片的数量也相应水涨船高。用户卡片遗失后会向发卡机构挂失,之后该挂失卡片将在所有终端上拒绝交易(进入黑名单)。
由于挂失数量巨大,且增长迅速,而传统的终端设备(pos机或者密码键盘等刷卡设备)的存储空间过小,无法存储;即便存储下来,每次刷卡判定黑名单效率也存在极大问题。除此之外,每次下载黑名单都是通过iso8583标准协议下载若干批次,速度非常缓慢。
传统pos机工作流程的缺点:
1、下载黑名单需要iso8583协议支持,有大量的包头以及无需字段,导致占用极大无需的流量带宽,导致终端需求的带宽会很大,如果带宽不足,速度会非常慢;
2、除了流量大,iso8583协议是有最大限制的,一次报文交互仅能下载一个批次(最多约19条黑名单记录),要下载数十万的数量,需要若干次交互;
3、为解决上述缺点,传统pos机采用了“增量更新”的方式,就是每次只下载更新的部分,这样虽然解决了实时更新的效率问题,但是并无法解决新机更新的速度(每新装一台设备,都会用非常多的时间进行第一次黑名单更新);
4、由于是增量,无法进行排序,下载的黑名单数据是无序的,每次黑名单判断都需要遍历整个记录,非常耗费时间,用户体验也非常差;
5、由于是增量,无法去重,会导致黑名单文件中可能出现若干相同的数据;
6、无法解决黑名单爆炸式增长之后,pos机的存储问题。
技术实现要素:
基于此,针对上述问题,有必要提出一种将黑名单下载和判断机制独立开,实现海量黑名单的下载以及判别问题,且提高判别精确度,进行高效的黑名单查找,极大提升效率的基于pos机的黑名单处理方法及其系统。
本发明提供一种基于pos机的黑名单处理方法,其技术方案如下:
一种基于pos机的黑名单处理方法,包括以下步骤:
a、接收交易请求,将该交易请求转换为交易指令,并发送至pos机;
b、读取卡号,并将该卡号返回至客户端;
c、判断该卡号是否存在于黑名单中,如果是,则终止交易;如果否,则发送继续交易指令至pos机。
在本技术方案中,客户端采用pc+pos机,或者pc+密码键盘(sp30之类)的模式;将传统pos机直接判别黑名单的逻辑,修改为pos机反馈卡号,pc来判断,再由pc端决定后续交易步骤(黑名单终止交易或者白名单继续交易);将黑名单下载和判断机制独立开,实现海量黑名单的下载以及判别问题,且提高了判别精确度,极大提高了效率。
优选的,在所述步骤a之前还包括以下步骤:
s10、接收服务器启动指令,启动服务器;
s20、接收挂失卡信息,实时更新挂失卡黑名单;
s30、将更新后的黑名单按照卡号升序进行排列;
s40、将更新排序好后的黑名单信息传输至客户端。
在本技术方案中,采用客户端将黑名单下载部分独立出来,做成单独模块,可以是pc端,也可以是pos机开辟的独立线程;因此,完全解决了存储空间的问题;放弃iso8583,采用自定义的简洁协议进行下载,节省了大量流量,减少了大量的交互(每次下载包大小可以达到数m);同时,由于可能存在数万连接(数万终端pos机),出于效率和服务器资源考虑,服务器不能采用传统多线程阻塞模型,也不能采用传统非阻塞模型,可选择epoll模型;服务端可以配置特定终端的限制下载时间,这样一些性能较差的终端(例如pos机开辟的独立线程模拟pc工作),这样能合理避开交易高峰期的特定终端压力。
优选的,所述步骤s20还包括以下步骤:
若接收到新的挂失卡信息,判断该挂失卡信息是否已经存在于黑名单中,如果是,则不添加进黑名单中;如果否,则添加进黑名单中,并按照步骤s30进行排列。由服务器排序并去重,可解决无法进行排序,下载的黑名单数据是无序的,每次黑名单判断都需要遍历整个记录的问题,以及解决了无法去重,导致黑名单文件中可能出现若干相同数据的问题,减少了耗费的时间,提高了用户体验感。
优选的,所述步骤c中采用二分法进行黑名单查找,且最大查找次数为
优选的,所述客户端为pc端或pos机开辟的独立线程。pc端会每间隔一定时间(可配置)对黑名单进行一次下载更新;如果没有pc端,也可以由pos机开一个线程模拟pc工作,目前有相当部分设备都是采用这种方式。
本发明还提供一种基于pos机的黑名单处理系统,其技术方案如下:
一种基于pos机的黑名单处理系统,包括交易请求模块、卡号读取模块和卡号判断模块,其中:
交易请求模块,用于接收交易请求,将该交易请求转换为交易指令,并发送至pos机;
卡号读取模块,用于读取卡号,并将该卡号返回至客户端;
卡号判断模块,用于判断该卡号是否存在于黑名单中,如果是,则终止交易;如果否,则发送继续交易指令至pos机。
优选的,还包括服务器启动模块、黑名单更新模块、黑名单排序模块和黑名单供应模块,其中:
服务器启动模块,用于接收服务器启动指令,启动服务器;
黑名单更新模块,用于接收挂失卡信息,实时更新挂失卡黑名单;
黑名单排序模块,用于将更新后的黑名单按照卡号升序进行排列;
黑名单供应模块,用于将更新排序好后的黑名单信息传输至客户端。
优选的,所述黑名单更新模块包括黑名单查重子模块,用于判断接收到的新的挂失卡信息是否已经存在于黑名单中,如果是,则不添加进黑名单中;如果否,则添加进黑名单中。
优选的,所述卡号判断模块包括黑名单查找子模块,采用二分法进行黑名单查找,且最大查找次数为
本发明的有益效果是:
1、本发明将黑名单下载和判断机制独立开,实现海量黑名单的下载以及判别问题。
2、本发明采用客户端将黑名单下载部分独立出来,做成单独模块,可以是pc端,也可以是pos机开辟的独立线程;因此,完全解决了存储空间的问题。
3、本发明放弃iso8583协议,采用自定义的简洁协议进行下载,节省了大量流量,减少了大量的交互,使得每次下载包大小可以达到数m。
4、由服务器排序并去重,可解决无法进行排序,下载的黑名单数据是无序的,每次黑名单判断都需要遍历整个记录的问题,以及解决了无法去重,导致黑名单文件中可能出现若干相同数据的问题,减少了耗费的时间,提高了用户体验感。
5、采用二分法进行黑名单查找,最多查找次数为
附图说明
图1是本发明实施例所述基于pos机的黑名单处理方法的流程图;
图2是本发明实施例所述基于pos机的黑名单处理系统的原理框图。
附图标记说明:
10-交易请求模块;20-卡号读取模块;30-卡号判断模块;301-黑名单查找子模块;40-服务器启动模块;50-黑名单更新模块;501-黑名单查重子模块;60-黑名单排序模块;70-黑名单供应模块。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例1
如图1所示,一种基于pos机的黑名单处理方法,包括以下步骤:
a、接收交易请求,将该交易请求转换为交易指令,并发送至pos机;
b、读取卡号,并将该卡号返回至客户端;
c、判断该卡号是否存在于黑名单中,如果是,则终止交易;如果否,则发送继续交易指令至pos机。
在本实施例中,客户端采用pc+pos机,或者pc+密码键盘(sp30之类)的模式;将传统pos机直接判别黑名单的逻辑,修改为pos机反馈卡号,pc来判断,再由pc端决定后续交易步骤(黑名单终止交易或者白名单继续交易);将黑名单下载和判断机制独立开,实现海量黑名单的下载以及判别问题,且提高了判别精确度,极大提高了效率。
实施例2
本实施例在实施例1的基础上,在所述步骤a之前还包括以下步骤:
s10、接收服务器启动指令,启动服务器;
s20、接收挂失卡信息,实时更新挂失卡黑名单;
s30、将更新后的黑名单按照卡号升序进行排列;
s40、将更新排序好后的黑名单信息传输至客户端。
在本实施例中,采用客户端将黑名单下载部分独立出来,做成单独模块,可以是pc端,也可以是pos机开辟的独立线程;因此,完全解决了存储空间的问题;放弃iso8583,采用自定义的简洁协议进行下载,节省了大量流量,减少了大量的交互(每次下载包大小可以达到数m);同时,由于可能存在数万连接(数万终端pos机),出于效率和服务器资源考虑,服务器不能采用传统多线程阻塞模型,也不能采用传统非阻塞模型,可选择epoll模型;服务端可以配置特定终端的限制下载时间,这样一些性能较差的终端(例如pos机开辟的独立线程模拟pc工作),这样能合理避开交易高峰期的特定终端压力。
实施例3
本实施例在实施例2的基础上,所述步骤s20还包括以下步骤:
若接收到新的挂失卡信息,判断该挂失卡信息是否已经存在于黑名单中,如果是,则不添加进黑名单中;如果否,则添加进黑名单中,并按照步骤s30进行排列。由服务器排序并去重,可解决无法进行排序,下载的黑名单数据是无序的,每次黑名单判断都需要遍历整个记录的问题,以及解决了无法去重,导致黑名单文件中可能出现若干相同数据的问题,减少了耗费的时间,提高了用户体验感。
实施例4
本实施例在实施例1的基础上,所述步骤c中采用二分法进行黑名单查找,且最大查找次数为
实施例5
本实施例在实施例2的基础上,所述客户端为pc端或pos机开辟的独立线程。pc端会每间隔一定时间(可配置)对黑名单进行一次下载更新;如果没有pc端,也可以由pos机开一个线程模拟pc工作,目前有相当部分设备都是采用这种方式。
实施例6
本实施例为实施例1的系统,如图2所示,一种基于pos机的黑名单处理系统,包括交易请求模块10、卡号读取模块20和卡号判断模块30,其中:
交易请求模块10,用于接收交易请求,将该交易请求转换为交易指令,并发送至pos机;
卡号读取模块20,用于读取卡号,并将该卡号返回至客户端;
卡号判断模块30,用于判断该卡号是否存在于黑名单中,如果是,则终止交易;如果否,则发送继续交易指令至pos机。
实施例7
本实施例为实施例2的系统,还包括服务器启动模块40、黑名单更新模块50、黑名单排序模块60和黑名单供应模块70,其中:
服务器启动模块40,用于接收服务器启动指令,启动服务器;
黑名单更新模块50,用于接收挂失卡信息,实时更新挂失卡黑名单;
黑名单排序模块60,用于将更新后的黑名单按照卡号升序进行排列;
黑名单供应模块70,用于将更新排序好后的黑名单信息传输至客户端。
实施例8
本实施例为实施例3的系统,所述黑名单更新模块50包括黑名单查重子模块501,用于判断接收到的新的挂失卡信息是否已经存在于黑名单中,如果是,则不添加进黑名单中;如果否,则添加进黑名单中。
实施例9
本实施例为实施例4的系统,所述卡号判断模块30包括黑名单查找子模块301,采用二分法进行黑名单查找,且最大查找次数为log2n,其中n为黑名单总数。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。