海外支付:抵御信用卡欺诈的CyberSourcehtml
吴剑 2014-06-04算法
原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian安全
吴剑 http://www.cnblogs.com/wu-jian服务器
前言微信
在欧美地区,Paypal与信用卡为两大主要在线支付方式。Paypal你们都很熟悉,而信用卡,相信作海外电商的企业在这上面都吃过苦头,由于信用卡会面临一个严峻问题:欺诈风险。网络
Visa 于2010年以20亿美金收购了 CyberSource 成为它的全资控股子公司。在中国大的在线支付平台背后,几乎都有CyberSource提供的反欺诈服务,如阿里的支付宝、腾讯的财富通......ide
吴剑 http://www.cnblogs.com/wu-jian网站
概述
<图1.CyberSource支付流程>
吴剑 http://www.cnblogs.com/wu-jian
Secure Acceptance
图1描述了CyberSource信用卡支付的完整流程(使用CyberSource支付网关,使用CyberSource Decision Manager),同时本文针对非PCI认证商家(即信用卡信息必须存在于第三方)。
OK,第一个步骤是采集用户的设备指纹,即经过一些CyberSource提供的API来惟一识别一个用户;而后经过Secure Acceptance接口向CyberSource发起信用卡的受权请求。在这个请求中包含了支付相关的全部信息,好比支付币种、金额、帐单信息等等,以及若是使用CyberSource Decision Manager附带的风控所需数据。
此处,须要特别注意以下几点:
一、CyberSource会对Secure Acceptance的请求数据进行验证(如字段长度,字段特殊字符等,在API开发文档中有相关章节,但因为开发文档版本迭代频繁,此处须要测试用例的合理覆盖),如验证未经过,不会进行银行受权,直接Return一个“Request parameters are invalid or missing”至商家页面。由于未进行银行受权,因此Return回来时不会包含网关ID这个关键参数,后续也就没法进行Capture或Reversal动做。
二、若是用户的Secure Acceptance请求通过了Decision Manager,Return回来时会包含DM的决策结果,同时在DM API中会再次将决策结果通知到商家(见Decision Manager章节)。
三、Secure Acceptance的结果由CyberSource商户后台配置的URL进行回调,这里可能会存在一个中断,好比由于网络缘由致使Return结果未到达商家服务器,所以后面须要一个单独的程序来按期进行查询和处理(见对中断的处理章节)。
吴剑 http://www.cnblogs.com/wu-jian
Decision Manager
CyberSource的强大之处在于它的反欺诈服务,这个服务称之为:Decision Manager。
CyberSource DM系统很容易让我联想到西蒙斯和他的文艺复兴公司(Renaissance Technologies Corp),经过大数据,经过算法,经过数学模型玩转对冲基金,收益甚至把巴菲特甩了几条街。CyberSource Decision Manager也干着相似的事情,首先它有足够大的用户交易行为数据,一旦你使用CyberSource,你也成为了它的数据源贡献者,而后它构建数学模型,对用户的行为进行分析,揪出欺诈用户,固然,最重要的是按次计费。但不能否认CyberSource在在线反欺诈领域仍是赫赫有名的。
OK,看看CyberSource Decision Manager的大至工做流程:
<图2.CyberSource Decision Manager逻辑>
CyberSource Decision Manager提供一个庞大的后台,在这里面你能够配置很是多很是复杂的规则。为了清晰描述Decision Manager的工做流程,例举一个最简单自定义规则:当用户来自俄罗斯,自动拒绝交易;当用户来自美国,自动容许交易;当用户来自日本,需人工审核来决定是否容许交易。如上图所示,Decision Manager的工做流程就很清晰了。
当收到CyberSource Decision Manager结果时,表明了Authorization(银行受权)已经过,受权经过后用户信用卡里的金额会被临时冻结,此时用户若是查询会发现卡内余额减小, 所以当受权经过后应尽快进行后续动做,要么对这笔金额进行收款,即发起Capture;要么把这笔金额归还给用户,即发起Reversal。固然,若是你什么都不作,一段时间后银行会自动Reversal把冻结的款项归还给用户,只是这个时间段若是用户查询余额会以为困惑,由于在商家网站付款未成功,而卡内余额却减小了。
须要注意的是CyberSource Decision Manager结果通知可能由于网络或其它缘由中断,没法送达商家服务器,而CyberSource不会像Paypal同样会有重试机制,所以后面咱们一样须要一个单独程序来按期询问CyberSource,有哪些支付在DM中已有结果而未送达商家的。
吴剑 http://www.cnblogs.com/wu-jian
对中断的处理
在图1的第6步和第7步,由CyberSource将结果发送至商家服务器,中间可能由于各类缘由(如网络故障、接收程序异常)致使消息未送达。此时若是不及时处理会带来糟糕的用户体验,若是拖延时间太长,即便最后付款处理成功,也极容易致使用户的Chargeback,而Chargeback太高,收单行就会拒绝与商家的合做,因此不论何总支付方式,总会考虑处理意外中断,合做不易,与银行长期稳定的合做更不易,且行且珍惜。
<图3.受权中断处理>
Secure Acceptance可能存在结果未响应的状况(根据我的经验,实际天天都会有必定数量的交易出现该状况)。如上图所示,咱们经过一个单独程序把每笔未收到结果的交易拿去CyberSource查询比对,而后按响应结果进行后续逻辑处理。须要注意的是CyberSource提供的查询API以银行受权结果为前提,当一笔交易未进行银行受权时,返回的结果相似于NULL;另外当一笔交易在DM结果为Review,而且已人工处理完成时,在此处拿到的结果仍为Review状态,如要正确处理,就须要另外一个针对Decision Manager的中断处理程序。
<图4.DM中断处理>
当Decision Manager进入人工审核,一样经过商户后台配置的一个回调URL回传审核结果(见图1中的步骤7)。此处若是商户不能接收到结果,就会致使该收的款未收,该退的款未退。咱们作电商,知道用户从选择商品、下单、再到支付,是一个逐渐流失的过程,每一个用户到了支付环节都是来之不易的,若是在最后一步由于技术缘由致使用户付款失败,实在是一件极不划算的事情。
须要注意的是CyberSource在此处提供的查询API,是针对Decision Manager中人工审核的结果,交易若是被DM中的规则自动拒绝或自动经过,是在Secure Acceptance中断程序中来处理的。若是很不幸,一笔交易在步骤6和步骤7处同时发生了中断,由于两处API分工不一样,就必须保证Secure Acceptance中断处理程序先执行,DM中断处理程序后执行。
吴剑 http://www.cnblogs.com/wu-jian
后记
关于CyberSource的服务,他们的技术团队在美国,售前在香港,因此一些具体的技术问题沟通较消耗时间。接入上线后,技术沟通就只能与他们美国方面进行,非常不方便。他们中国地区的售前和风控团队还算有问必答,只是一些技术相关的细节问题,须要中转至美国,效率会偏低一点。
关于海外信用卡支付,国内也有很多公司在作,但曾经有过惨痛的教训,最终无可奈何选择了CyberSource。
关于支付的风险控制,相信每一个商家都在作或计划在作,但由于没有大数据的支撑,好比一个用户第一次来你的网站支付,你没法知道他以前在别家网站是否有欺诈行为,而CyberSource有这方面数据,因此他提供收费服务。对商家来讲能化繁为简,专业的事交给专业的人去作,也未偿不是件好事。
关于收单行,使人遗憾的是国内的各大银行,目前都很难在国际上获得认同,香港是一个不错的选择。
最后稍说明一下,由于涉及到交易与安全,本文并未涉及到具体技术细节,若有须要,欢迎与本人取得联系。
吴剑 http://www.cnblogs.com/wu-jian