false
true
保存一条记录到足迹表TraceData
保存一条记录到相应的表
更改促销表中相关记录为close
调用计算流程的详细
促销事后唯一性校验
补全信息
判断是否为授权信息
获取授权开关
回调业务接口
子流程为数据落地流程
写入TimingCallBack表
不调用外卡且只调用下发计算
校验参数
判断是否为白名单
判断是否是授权信息且授权成功
判断白名单开关是否打开
获取规则标签集合
判断是否为提现
判断是否是授权信息
调用外卡且不下发计算
更新相应的表
判断黑名单拒绝流程开关打开并且是黑名单
回调业务系统(BusinessCallback.callBack())
回调业务方,通过accept
授权,非外卡,调用计算引擎
判断是否是支付信息
判断是否为外卡
保存进索引表
判断订单状态是否为取消或者删除
回调业务系统
自动加入黑名单
ajax回调
风控计算回调风控业务端(FraudResult.post),主流程是异步的回调
走计算(次开关一直没打开)
结束
2
return 0
调用RED接口
判断支付方式是否为支付宝或者微信
下发计算引擎计算
回调业务方拒绝,并往唯一性拒绝表新增一条记录
判断是否是促销信息
给callback付值
外卡计算流程
调用存储(leveldb)
抛异常
判断是非为授权失败订信息
判断自动加黑授权开关是否打开
把信息存入MQ的fraud队列
更改促销表中此订单为close状态
ttue
判断是否出发授权规则
判断是否回调的开关是否打开
1
获取规则
获取回调url
判断是否需要保存进索引表
END
人工队列展示的数据都是从FrandResult表中获取
回调提现
调用携程接口不补全信息,更新信息等
非外卡,非授权,下发计算引擎
goe写的消费者方法会去消费fraud队列,然后获取数据,调用Consumer.php的process方法
判断result是非为空
保存回调结果
relationField&&relationValue都不为空
判断是否即点用外卡也下发计算
业务方
一分钱逻辑,暂不考虑
调用计算引擎
判断fraudResult是否为空
更改FraudResult表,并走黑灰名单校验
批量add进促销表
模拟回调风控业务端
判断url是否为空
调用Process方法
紫色的是促销唯一性校验(事后,非实时,只是针对微信,支付宝)
返回响应给业务方
保存fraudResult结果表
DataHandler.php的post方法
判断是否为一分钱
判断product是非为1001,即国内酒店现付
非支付信息且为授权信息
判断是否为信用卡
调用计算流程
判断是否触发授权的指定规则
判断是否为国内现付酒店
所有订单都会走alipay,所有的促销表中信息都是在这个方法中保存的。当时促销订单的支付信息过来时,走到这一步是合并后的信息是有促销表识的
根据相应属性查数据库,并赋值给result
更新回调结果为success
判断是否在促销白名单中
触发规则,并且需要往TimingCallBack中写数据的
判断促销开关是否打开
判断params是非为空
非授权,外卡,调用计算引擎
校验失败,抛异常,结束
开始
result=false
保存数据进FraudResult表
handleAlipay
根据product去相应的表去查
回调
更改FraudResult表isAuthorizationTriggered=1
做产品线的转换
订单状态说明:新单:N已审:V已确认:A已入住:F已结账:C取消:ENOSHOW:B删除:D支付相当于新单状态,对于预付来说,支付在已审之前 case \"domesticHotel\": $tableName=\"BehaviorData\"; break; case \"prepayHotel\": $tableName=\"PrepayHotel\"; break; case \"internationalHotel\": case \"train\": case \"flight\": $tableName=\"FraudData\"; break;
判断携程危险等级开关是否打开并且此记录需要计算
回调模块