如何进行风控系统对接开发
1.1 对接重点说明
1、 业务系统跟风控防火墙对接前提:需不影响客户业务系统自身运行。
2、 同步事件请求时,如超时无应答,业务系统需作异常处理,按定义好的默认流程处理,以保证业务的正常运行,具体超时时间可根据自身情况确定。
3、 当风控系统内部异常时,对接的业务系统应该可以放行并继续交易为前提。业务系统要有异常处理机制,兼容风控异常。
1.2 接口调用数据提交
1.2.1 请求数据提交
Ø 事件采用hessian方式
hessian服务路径:http://{host}:{port}/ReceiveOrderHessianService
输入参数:HashMap
输出判断的结果:JSON字符串
host:是主机域名或IP,port:应用发布的端口
Ø 事件采用servlet方式
servlet服务路径:http://{host}:{port}/ ReceiveOrderServlet
输入参数:HashMap
输出判断的结果:JSON字符串
host:是主机域名或IP,port:应用发布的端口
² 输入参数说明:
输入参数为各个事件的属性值??⒍杂μ砑邮录粜?。
事件参数对应的属性字段,通过管理系统的“事件类型管理->事件类型->字段管理”进行查看。
参数输入数据格式,组装成HashMap。status 业务状态必须为 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 |
必填参数为空 |
请检查必填项是否输入,检查status、occur_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 通知数据提交
通知数据提交方式,同样有两种方式,hessian与servlet。调用过程根“请求数据提交”的过程一样。
不同之处是:
1、 输入参数中 status 业务状态 为1 (成功) 或-1 (失败) ;
2、 输入参数中finish_time“完成时间” 必须有值;
status |
业务状态 |
业务状态: 0为请求,1为成功, -1为失败 |
finish_time |
完成时间 |
格式为“yyyy-MM-dd HH:mm:ss.SSS” |