注释:该 API 仅用于预览用途并会随时更改。
设备数据收集
当与订单和交易详细信息相结合时,设备数据(IP 地址、设备 Id、地理位置信息等)会是欺诈的重要标志,或通过 GeoIP 查找创建基于位置的手动规则。利用具有 Access Exemptions 功能的设备数据需要两个步骤。第一步是收集设备数据。第二步是提交将使用设备数据进行评估的
ThreatMetrix JS
网站用 ThreatMetrix JS 库。它利用 ThreatMetrix 平台实时检测来自浏览器的欺诈和安全漏洞。
实施概述
创建包含以下 "ThreatMetrix JavaScript V4" 数据的 JavaScript 文件。文件名应作匿名处理,例如 asdfghjkl.js
将功能 threatmetrix. 配置文件(来自文件 asdfghjkl.js)重命名为匿名,e.g. awddc.prfl
在会收集设备数据的网页上,将以下内容(或类似内容)放在标题部分
<script type="text/javascript" src="path/to/asdfghjkl.js"></script>
使用以下(或类似)
<script type="text/javascript">awddc.prfl ("PROFILING_DOMAIN"、"ORGANISATION_ID"、sessionId);</script>
从网页中调用设备分析功能 (awddc.prfl)
注释:请参见下方所述功能参数的“所需的详情”部分
将函数名称 threatmetrix.profile
更改为如下您自己的名称之一:
var threatmetrix=threatmetrix||{};threatmetrix.version=4,threatmetrix.create_url=function(t,e,r,n,c){function i(){return Math.floor(2742745743359*Math.random())}function a(){return o(i())}function o(t){return(t+78364164096).toString(36)}var m=i(),u=i(),l=885187064159;u=((u=u-u%256+threatmetrix.version)+m)%2742745743359,l=(l+m)%2742745743359;var s="https://"+t+"/"+(m=a()+o(m))+e,h=[(u=o(l)+o(u))+"="+r,a()+a()+"="+n];return void 0!==c&&c.length>0&&h.push(a()+a()+"="+c),s+"?"+h.join("&")},threatmetrix.beacon=function(t,e,r,n){var c="turn:aa.online-metrix.net?transport=",i="1:"+e+":"+r,a={iceServers:[{urls:c+"tcp",username:i,credential:r},{urls:c+"udp",username:i,credential:r}]};try{var o=new RTCPeerConnection(a);o.createDataChannel(Math.random().toString());var m=function(){},u=function(t){o.setLocalDescription(t,m,m)};"undefined"==typeof Promise||o.createOffer.length>0?o.createOffer(u,m):o.createOffer().then(u,m),setInterval(function(){o.close()},1e4)}catch(t){}},threatmetrix.load_tags=function(t,e,r,n){threatmetrix.beacon(t,e,r,n);var c=document.getElementsByTagName("head").item(0),i=document.createElement("script");i.id="tmx_tags_js",i.setAttribute("type","text/javascript");var a=threatmetrix.create_url(t,".js",e,r,n);i.setAttribute("src",a),threatmetrix.set_csp_nonce(i),c.appendChild(i)},threatmetrix.csp_nonce=null,threatmetrix.register_csp_nonce=function(t){if(void 0!==t.currentScript&&null!==t.currentScript){var e=t.currentScript.getAttribute("nonce");null!=e&&""!==e?threatmetrix.csp_nonce=e:void 0!==t.currentScript.nonce&&null!==t.currentScript.nonce&&""!==t.currentScript.nonce&&(threatmetrix.csp_nonce=t.currentScript.nonce)}},threatmetrix.set_csp_nonce=function(t){null!==threatmetrix.csp_nonce&&(t.setAttribute("nonce",threatmetrix.csp_nonce),t.getAttribute("nonce")!==threatmetrix.csp_nonce&&(t.nonce=threatmetrix.csp_nonce))},threatmetrix.cleanup=function(){for(;null!==(hp_frame=document.getElementById("tdz_ifrm"));)hp_frame.parentElement.removeChild(hp_frame);for(;null!==(tmx_frame=document.getElementById("tmx_tags_iframe"));)tmx_frame.parentElement.removeChild(tmx_frame);for(;null!==(tmx_script=document.getElementById("tmx_tags_js"));)tmx_script.parentElement.removeChild(tmx_script)},threatmetrix.profile=function(t,e,r,n){void 0!==t&&void 0!==e&&void 0!==r&&8===e.length&&(threatmetrix.cleanup(),threatmetrix.register_csp_nonce(document),threatmetrix.load_tags(t,e,r,n))};
所需的详情
若要调用设备数据函数,您需要以下详情:
占位符 | 描述 |
---|---|
ORGANISATION_ID |
|
PROFILING_DOMAIN |
|
sessionId | 您必须为页面视图生成独特的值,以表示该具体设备数据集合。 注释:有效的 sessionId 长度为 30 ~ 128 个字符,只能由大小写英文字母 (a-z, A-Z)、数字 (0-9)、连字符 (-) 或下划线 (_) 组成。为了避免错误匹配,我们建议使用 UUID。 |
示例 sessionId 生成
您必须在
function create_uuid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0,
v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
function create_uuid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });
调用 Threatmetrix 函数
...
var sessionid = create_uuid(); // function to create UUID
awddc.prfl ("PROFILING_DOMAIN", "ORGANISATION_ID", sessionid); // call Threatmetrix
...
... var sessionid = create_uuid(); // function to create UUID awddc.prfl ("PROFILING_DOMAIN", "ORGANISATION_ID", sessionid); // call Threatmetrix ...
将设备数据与评估关联
在发送deviceData.collectionReference
后续步骤