本发明涉及电子支付领域,提供了一种二维码自动甄别异常的方法。
背景技术:
1、收单业务是电子支付领域里的买卖双方利用软件应用程序进行资金交易的合法合规的金融业务,二维码收单是收单业务中的一个常见的支付场景,其原理是收单机构为商户生成一个收款二维码,付款人使用具备扫描二维码功能的app扫描商户收款二维码,即可打开商户收银台页面,在页面上输入支付金额并选择支付方式后,完成付款。
2、二维码作为支付入口,其安全性尤为重要,为避免二维码被拍照保存、远程扫码、恶意扫码、异常移码而出现不正当资金交易、恶意攻击等风险行为,保障二维码收单业务的真实、合法、安全,所以对二维码扫码提出了支持异常扫码行为识别的要求,通过甄别出异常扫码行为,来进一步对二维码以及商户进行风险上报及管控。
3、有的方法是收单机构在为商户生成二维码时,认定了二维码的允许扫描范围与商户的地理经营范围保持一致,即只要扫码端在商户允许的地理经营范围内,均视为安全扫码行为,满足一般商户仅限定在所在省、所在市或所在区范围内进行收单交易,扫码端在商户地理经营范围之外扫码行为被判定为异常扫码,拒绝交易。
4、有的方法是收单机构在为商户生成二维码时,为二维码设置一个精准的地理位置,即该二维码将要被放置的位置的经纬度,同时为该二维码设置一个允许被扫描的安全距离,即扫码端与二维码之间的距离,则以二维码放置位置为圆心,安全距离为半径的圆内,即为该二维码的安全扫描范围。付款人扫描该二维码,打开商户收银台页面,页面自动获取扫码端的经纬度位置信息并立即上送到服务端,服务端将扫码端位置与该二维码放置的经纬度位置做距离比对,超出设定的安全范围的扫码行为被判定为异常扫码,拒绝交易。
5、有的方法是收单机构在为商户生成二维码时,为二维码设置了多个扫码端之间的相对安全距离,即先后两次扫描同一个二维码的扫码端之间的位置距离。扫描二维码打开收银台页面时,上送扫码经纬度位置信息到服务端,与上一次扫描该二维码的经纬度位置信息做距离比对,如果扫描二维码的位置相对上一次扫描该二维码的位置超出预先设置的安全距离范围,则本次扫码行为被判定为异常扫码,拒绝交易,且本次扫码位置不作为下次扫码的位置校验依据。
6、已有的这些方法虽然从理论上能够做到二维码的扫码行为被控制在安全范围内,避免二维码被拍照保存远程扫码、异常移码而导致的不正当资金交易行为等问题,但在实际的应用场景中,都存在以下几个缺陷和不足。
7、1.二维码更换位置困难。二维码的经纬度位置信息以及安全范围由收单机构在生成二维码时设定,二维码的扫码仅限在被认定好的位置范围内进行,而二维码是允许在合理的范围内进行移动的,如非固定经营位置的商户交易位置变更等。已有的这些方法在二维码位置合理变更后则无法实现正常交易,均需要先通知收单机构将该二维码的位置更新为新位置后才可继续交易,增加了收单机构对二维码的人力维护以及商户上报新位置的复杂流程,导致二维码不能够在合理、安全的情况下便捷更换位置。
8、2.频繁恶意扫码易导致异常检测不准确。扫码端的经纬度位置信息由扫描二维码后打开的应用程序页面第一时间立即上送到服务端,则每次扫码均会上送新的位置信息,服务端不断累积各扫码端位置信息,纳入安全范围的判断依据。如果单个扫码端在安全范围内恶意移动并采用二维码照片来识别,或通过软件程序模拟向服务端频繁提交新的扫码位置,则会造成服务端校验的安全范围与真实二维码所在位置出现较大偏差,进而影响正常的二维码收单业务。
技术实现思路
1、本发明的目的在于解决二维码移动支付中存在的二维码被多地滥用、二维码移动后无法自动调整安全区域、同一设备频繁扫码误导安全区域判断的问题。
2、为了实现上述目的本发明采用以下技术手段:
3、本发明提供了一种二维码自动甄别异常的方法,包括以下步骤:
4、步骤1:探针的生成与信息上送,扫码端扫描二维码并打开页面时,内嵌的探针程序自动生成一个新探针,并记录相关信息后上送到服务端;
5、步骤1.1:扫码端扫描二维码,页面内嵌的探针程序在页面打开前生成新探针;
6、步骤1.2:新探针记录下二维码编号,采集当前设备的设备号和经纬度信息;
7、步骤1.3:探针将探针号、经纬度、二维码编号、设备号及当前时间戳组成通讯报文加密上送到服务端。
8、步骤2:针桶简称为桶,在探针入桶的过程,服务端接收到探针记录的相关信息后,查找对应的针桶,通过比较经纬度信息确定目标桶及目标层,如无法确定目标桶,探针无法放入任何针桶,则服务端用该探针的经纬度位置自动创建一个新的针桶,新的针桶简称新桶,并为新桶创建相应的时间层作为目标层,探针插入目标桶的目标层;
9、步骤2.1:服务端解析探针报文,查找所有“桶归属”为该探针所指的对应二维码的桶,并取得该二维码的当前桶位序列表;
10、步骤2.2:服务端将该探针的经纬度位置信息与桶位序列表对比,取出经度和纬度均大小最接近的新桶,标记为候选桶,若无候选桶,则进行步骤2.5;
11、步骤2.3:计算该探针位置与候选桶之间的距离,并与候选桶的安全扫码区半径对比;
12、步骤2.4:若距离小于候选桶半径,则候选桶升级为目标桶,执行步骤2.6,如距离大于候选桶安全扫码区半径,则进行步骤2.5;
13、步骤2.5:服务端创建新桶,新桶的圆心位置为探针的经纬度位置,安全扫码区半径默认为10米,时间层层数为一层,该层的层时为探针时间戳的“小时”数,桶归属为该探针的二维码编号,将该新桶标记为候选桶,执行步骤2.6;
14、步骤2.6:从目标桶中找到层时与该探针时间戳中“小时”数相同的时间层,
15、如找到时间层,则将该时间层标记为目标桶的目标层,执行步骤2.7,
16、如未找到时间层,则在该目标桶现有基础上创建新的时间层,并标记为目标桶的目标层;
17、步骤2.7:将该探针插入目标桶的目标层。
18、步骤3:异常扫码行为甄别,包括地理超限异常、高频扫码异常和一码多地多用异常的自动识别方法。
19、步骤3.1:服务端对探针进行地理围栏拦截,判断探针位置是否在商户经营地理围栏范围内;
20、步骤3.1.1:服务端根据商户经营范围划定地理围栏;
21、步骤3.1.2:服务端将探针经纬度信息转化为具体地理位置,判断是否在地理围栏内;
22、步骤3.1.3:若探针在地理围栏内,标记为正常探针,扫码行为满足要求;若超出,标记为区限类异常探针,扫码行为不满足要求,服务端返回异常响应;
23、步骤3.1.4:扫码端接收到异常响应后停止所有操作并关闭页面。
24、步骤3.2:服务端通过二维码编号和探针位置筛选目标桶及目标桶的目标层,判断目标层是否存在设备号相同的探针,以识别高频扫码异常;
25、步骤3.2.1:服务端通过二维码编号和探针位置筛选目标桶,并从中根据扫码时间筛选目标层;
26、步骤3.2.2:在目标层中判断当前探针是否存在相同设备号,若无,则存入目标层并标记为正常,扫码行为标记为正常;若有,则存入目标层并标记为“高频类异常探针”,扫码行为标记为可疑;
27、步骤3.2.3:若目标层中同一设备号的“高频类异常探针”超过10个,服务端不再受理该设备探针,返回扫码端异常响应;
28、步骤3.2.4:扫码端接收到异常响应后停止所有操作并关闭页面。
29、步骤3.3:服务端对针桶进行定时评分,根据得分情况甄别一码多地多用异常。
30、步骤3.3.1:服务端对针桶进行定时评分处理,得到针桶得分表;
31、步骤3.3.1.1、服务端每小时取出上一个小时的所有针桶的探针数据;
32、步骤3.3.1.2、对这些探针按时间进行排序;
33、步骤3.3.1.3、按顺序计算每个针桶的探针数占比,得到该针桶在当前时段的得分;
34、步骤3.3.1.4、若同一个桶号在同一批次中出现了多次,则以分数最高的登记得分;
35、步骤3.3.1.5、生成针桶得分表。
36、步骤3.3.2:根据针桶得分表,识别一码多地多用的异常扫码行为;
37、步骤3.3.2.1:收集每个针桶最近三小时的得分;
38、步骤3.3.2.2:判断针桶得分是否达到90分以上;
39、步骤3.3.2.3:对未达到90分的针桶进行标记为“分裂类异常针桶”。
40、步骤3.3.3:对识别出的异常行为进行响应,阻止非法扫码;
41、步骤3.3.3.1:服务端检测到“分裂类异常针桶”的探针数据;
42、步骤3.3.3.2:将对应的探针标记为“分裂类异常探针”;
43、步骤3.3.3.3:向扫码端发送“扫码行为检测异常”的响应;
44、步骤3.3.3.4:扫码端接收到异常响应后停止页面操作并关闭页面。
45、步骤4:安全扫码区动态容错,当步骤2中创建的新桶的安全扫码区与已存在的桶的安全扫码区出现区域重叠时,服务端执行两桶合并操作,产生一个新的安全扫码区更大的桶,以覆盖原有的两个安全扫码区,从而实现动态调整安全扫码区范围。
46、步骤4.1:计算步骤2创建的新桶的安全扫码区圆心与候选桶的安全扫码区圆心之间的距离;
47、步骤4.2:判断步骤4.1得到的距离是否大于或等于两桶的安全扫码区半径之和;若结果为是,则成功创建新桶,结束,若结果为否,则将新桶与候选桶融合,进行步骤4.3;
48、步骤4.3:执行桶融合操作,计算两桶安全扫码区圆心之间距离的中心点作为新桶安全扫码区圆心位置;
49、以两桶安全扫码区圆心之间距离的一半加上候选桶的安全扫码区半径之和作为新桶的安全扫码区半径;
50、步骤4.4:根据步骤4.3得到的新桶安全扫码区圆心位置和安全扫码区半径建立一个安全扫码区更大的新桶,并将两桶内的探针合并至新桶内。
51、上述方案中,桶是一种服务端用于存储探针信息的数据结构,它具有位置、时间属性,用于代表扫码点位在一段时间内的聚集情况,桶用于存储和管理与特定二维码相关的探针信息;
52、桶在服务端自动生成,根据探针的经纬度位置信息,服务端确定将探针存入哪个桶,桶分为不同的时间层,每个时间层的存储区存储对应小时内的所有探针,桶具桶号作为唯一的标识号,并且与特定的二维码编号关联,二维码编号表示了桶归属。
53、因为本发明采用上述技术手段,因此具备以下有益效果:
54、1、全过程自动化无需人工介入。利用桶、针结构无需手动对二维码进行位置管理,无论是二维码正常移动还是安全扫码区需要扩容调整,均通过对针桶内探针进行扫描计算即可自动得出当前二维码的实际位置,并自动对异常扫码行为进行自动拦截,以及当产生系统误差时能够通过桶的自动融合实现扫码安全区动态扩容,整个过程无需停服或手动调整任何系统参数即可实现。
55、2、异常甄别准确性更高,数据分析结果更贴近真实。通过服务端对扫描二维码的扫码设备进行登记,并在同一时段内对扫码设备号进行限流,对同一扫码端高频扫码进行有效拦截,避免因恶意扫码导致服务端对二维码位置识别偏离较大,同时安全扫码区具备动态扩容能力,对扫码位置采集产生的系统误差可针对性的自动扩容调整,避免真实扫码位置相近但因误差被拦截而出现位置失真情况下的异常误判。