Solution/ 解决方案

解决方案分类

如何进行风控系统对接开发

发布时间:2020-03-20 点击数:1553

1.1      对接重点说明

1、  业务系统跟风控防火墙对接前提:需不影响客户业务系统自身运行。

2、  同步事件请求时,如超时无应答,业务系统需作异常处理,按定义好的默认流程处理,以保证业务的正常运行,具体超时时间可根据自身情况确定。

3、  当风控系统内部异常时,对接的业务系统应该可以放行并继续交易为前提。业务系统要有异常处理机制,兼容风控异常。

1.2      接口调用数据提交

1.2.1     请求数据提交

Ø  事件采用hessian方式

hessian服务路径:http://{host}:{port}/ReceiveOrderHessianService

输入参数:HashMap

输出判断的结果:JSON字符串

host:是主机域名或IPport:应用发布的端口

Ø  事件采用servlet方式

servlet服务路径:http://{host}:{port}/ ReceiveOrderServlet

输入参数:HashMap

输出判断的结果:JSON字符串

host:是主机域名或IPport:应用发布的端口

 

²  输入参数说明:

输入参数为各个事件的属性值。开发对应添加事件属性。

事件参数对应的属性字段,通过管理系统的“事件类型管理->事件类型->字段管理”进行查看。

参数输入数据格式,组装成HashMapstatus 业务状态必须为 0

²  返回参数说明:

输出参数

字段名称

字段类型

描述

reasonCode

String

调用结果原因码,参见原因码表

reasonMsg

String

调用原因描述

orderNo

String

订单号

riskResult

String

风险评定指令码,有三个,放行(ACCEPT)、待审核(REVIEW)、拒绝(REJECT

riskScore

int

事件总体评分

costTime

long

处理花费时间(毫秒)

figures

JSONArray

指标结果列表。当配置了指标时,才有数据返回,数据解析跟页面配置对应

fireRules

JSONArray

触发的规则列表。当有触发的规则时,才有数据返回

→规则列表fireRules解析

字段名称

字段类型

描述

code

String

规则编码

name

String

规则名称

isPolicy

int

预警决策(0,决策;1 预警)

ruleResult

int

风控结果,单个规则的风控结果。10000(放行),30000(待审核),99999(拒绝)

ruleScore

int

风控评分,单个规则的风控评分。

原因码表说明:

原因码表

代码

描述

说明

0

事件提交成功

风控端收到事件提交并处理完成

E100

事件数据重复提交

请检查提交的事件数据;

返回风控结果拒绝

E101

事件类型没有输入

请检查调用接口是否输入EVENT_TYPE

E102

必填参数为空

请检查必填项是否输入,检查statusoccur_time

E103

没找到对应事件

请检查EVENT_TYPE输入是否正确或事件是否启用

E104

输入参数转换无效

请检查输入值中是否有非法值

E105

事件内部运算异常

内部接口处理错误

E106

没找到事件的属性

请检查事件是否配置属性并启用

返回参数json形式如下:

    {
    
"orderNo":"-2590270857653794837",
    
"riskResult":"REJECT",
    
"reasonMsg":"",
    
"reasonCode":"0",
    
"riskScore":200,
    
"figures":{
        
"F-SMS_VERIFY-10":{
            
"LC":"182",
            
"C":"1138",
            
"KC":"0"
        },
        
"F-SMS_SEND-10":{
            
"LC":"217",
            
"C":"1202",
            
"KC":"0"
        },
        
"F-SMS_SEND-01":{
            
"C":"11"
        },
        
"F-SMS_SEND-03":{
            
"C":"42"
        },
        
"F-SMS_SEND-11":{
            
"RET":"1"
        },
        
"F-SMS_SEND-02":{
            
"C":"11"
        },
        
"F-SMS_SEND-04":{
            
"C":"11"
        }
    },

    
"fireRules":[
        {
            
"code":"R-SMS_SEND-01",
            
"name":"同一手机号最近10分钟下发次数超限",
            
"isPolicy":0,
            
"ruleResult":99999,
            
"ruleScore":100
        },
        {
            
"code":"R-SMS_SEND-02",
            
"name":"同一设备最近10分钟下发次数超限",
            
"isPolicy":0,
            
"ruleResult":99999,
            
"ruleScore":100
        }
    ],

    
"costTime":2
}

1.2.2     通知数据提交

通知数据提交方式,同样有两种方式,hessianservlet。调用过程根“请求数据提交”的过程一样。

不同之处是:

1、 输入参数中 status 业务状态 为(成功) 或-1 (失败) ;

2、 输入参数中finish_time“完成时间” 必须有值;

status

业务状态

业务状态: 0为请求,1为成功, -1为失败

finish_time

完成时间

格式为“yyyy-MM-dd HH:mm:ss.SSS