1.一种风控策略执行方法,其特征在于,应用于服务器中,所述方法包括:获取多个数据源类型及每个所述数据源类型的有效程度,所述有效程度由所述数据源类型对于盗刷行为的严重程度决定;
按照所述有效程度从低到高的顺序对所述多个数据源类型进行排序;
定义多个风控策略及每个所述风控策略所需的数据源数目;
将排序在前所述数据源数目的数据源类型作为一个枚举变量,并将所述枚举变量设置为所述风控策略所需的数据源类型;
基于所述风控策略所需的数据源类型设置所述多个风控策略的函数执行体;
根据第二用户指令从所述多个风控策略的函数执行体中选取至少一个风控策略的函数执行体创建函数执行数组;
获取所述函数执行数组,所述函数执行数组中包括至少一个第一风控策略的函数执行体;
在接收到客户端上传的数据源时,判断所述数据源是否存在异常;
若所述数据源存在异常,则将所述数据源标记为第一标识,所述第一标识占用一个比特位;
遍历所述函数执行数组中的函数执行体,判断每个所述第一风控策略所需的数据源是否都被标记为所述第一标识;
若所述第一风控策略所需的数据源都被标记为所述第一标识,则根据所述第一风控策略的函数执行体对所述客户端进行惩罚;
根据第一用户指令在所述函数执行数组中增加第二风控策略的函数执行体,并返回所述获取函数执行数组的步骤。
2.根据权利要求1所述的方法,其特征在于,在所述定义多个风控策略及每个所述风控策略所需的数据源数目之后,所述方法还包括:为每个所述数据源类型编写一个字符输出接口,并通过成员变量bitset
所述在接收到客户端上传的数据源时,判断所述数据源是否存在异常,包括:在接收到客户端上传的数据源时,通过所述bitset
3.根据权利要求2所述的方法,其特征在于,所述遍历所述函数执行数组中的函数执行体,判断每个所述第一风控策略所需的数据源是否都被标记为所述第一标识,包括:通过for(auto&f:funs{f();}遍历所述函数执行数组中的函数执行体,funs为所述函数执行体,f()为所述第一风控策略;
对每个所述第一风控策略,在所述bitset
4.根据权利要求1所述的方法,其特征在于,所述按照所述有效程度从低到高的顺序对所述多个数据源类型进行排序之后,所述方法还包括:通过数组SourceEnumArra[]为每个所述数据源类型赋予分值,并根据所述分值检查所述多个数据源类型的排序结果是否正确。
5.根据权利要求4所述的方法,其特征在于,在所述定义多个风控策略及每个所述风控策略所需的数据源数目之后,所述方法还包括:获取每个所述风控策略的风控等级;
获取任意两个风控策略,所述任意两个风控策略包括:所述风控等级较高的高等级策略和所述风控等级较低的低等级策略;
检查所述高等级策略的数据源数目是否多于所述低等级策略的数据源数目。
6.根据权利要求5所述的方法,其特征在于,所述函数执行数组为:vector
所述第一风控策略为:punishControl
7.一种风控策略执行装置,其特征在于,包括:
函数获取模块,用于获取多个数据源类型及每个所述数据源类型的有效程度,所述有效程度由所述数据源类型对于盗刷行为的严重程度决定,按照所述有效程度从低到高的顺序对所述多个数据源类型进行排序,定义多个风控策略及每个所述风控策略所需的数据源数目,将排序在前所述数据源数目的数据源类型作为一个枚举变量,并将所述枚举变量设置为所述风控策略所需的数据源类型,基于所述风控策略所需的数据源类型设置所述多个风控策略的函数执行体,根据第二用户指令从所述多个风控策略的函数执行体中选取至少一个风控策略的函数执行体创建函数执行数组,获取函数执行数组,所述函数执行数组中包括至少一个第一风控策略的函数执行体;
第一判断模块,用于在接收到客户端上传的数据源时,判断所述数据源是否存在异常;
标记模块,用于若所述数据源存在异常,则将所述数据源标记为第一标识,所述第一标识占用一个比特位;
第二判断模块,用于遍历所述函数执行数组中的函数执行体,判断每个所述第一风控策略所需的数据源是否都被标记为所述第一标识;
执行模块,用于若所述第一风控策略所需的数据源都被标记为所述第一标识,则根据所述第一风控策略的函数执行体对所述客户端进行惩罚;
策略增加模块,用于根据第一用户指令在所述函数执行数组中增加第二风控策略的函数执行体。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1‑6中任一权利要求所述的方法步骤。
9.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1‑6中任一权利要求所述的方法步骤。