本页介绍了如何有效保护付款交易免遭 攻击,例如银行卡、付款方式盗窃欺诈和账号盗用付款 防范欺诈行为。
reCAPTCHA Fraud Prevention 可帮助您保护付款交易 识别有针对性的人为攻击和大规模的欺诈尝试。它 自动训练行为和事务模型,以识别 很有可能具有欺诈性,如果被接受,可能会引发争议或退款。
作为这些模型的一部分,reCAPTCHA 欺诈防范会检查交易信号,以便检测欺诈行为。例如,一系列价格较低的购买尝试可能表明存在盗刷攻击。在 您会收到不同类型欺诈的风险得分, 用于将交易送交人工审核,或直接以充分方式屏蔽 可疑交易
如需设置 reCAPTCHA 欺诈防范,您需要完成以下步骤:
通过安装基于得分的 reCAPTCHA 密钥,在付款前端安装 reCAPTCHA JavaScript。
执行 JavaScript 时,reCAPTCHA 会为每个用户会话生成唯一的 reCAPTCHA 令牌,并收集用户行为数据以评估用户。
从后端提交 Create Assessment API 请求,并附上付款工作流程中用户事件的交易数据。
在响应创建评估 API 请求时,reCAPTCHA 提供交易风险评分和其他原因代码 (例如
suspected_carding
)。-
您可以选择允许交易、要求进行额外验证 申请人工审核,或者屏蔽相应交易。
准备工作
如果您刚开始接触 reCAPTCHA,请执行以下操作:
在您的 Google Cloud 项目中启用 reCAPTCHA 欺诈防范:
在 Google Cloud 控制台中,前往 reCAPTCHA 页面。
验证项目名称是否显示在资源选择器中。
如果您没有看到项目名称,请点击资源选择器,然后选择您的项目。
点击
设置。在 Fraud Prevention 窗格中,点击 Configure。
点击启用切换开关,然后点击保存。
请确保您的环境支持大于 8 KB 的令牌,因为 reCAPTCHA 欺诈防范功能可能会使用较大的令牌。
在付款前端安装 reCAPTCHA
如需开始检测攻击,请在付款用户体验流程的每个页面上安装基于得分的 reCAPTCHA 密钥。这包括一个界面,用户可以在该界面中查看自己的
选择付款方式并完成购买。在用户之后
在每一步都进行了选择,请调用 grecaptcha.enterprise.execute()
以
生成令牌。如需了解如何安装基于得分的网站密钥并调用 execute()
,请参阅安装基于得分的网站密钥。
以下示例展示了如何在信用卡交易事件中集成基于得分的网站密钥:
function submitForm() { grecaptcha.enterprise.ready(function() { grecaptcha.enterprise.execute( 'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) { document.getElementById("token").value = token; document.getElementByID("paymentForm").submit(); }); }); }
<form id="paymentForm" action="?" method="POST"> Total: $1.99 Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/> <input type="hidden" id="token" name="recaptcha_token"/> <button onclick="submitForm()">Purchase</button> </form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
您可以通过单击代码窗口右上角的 <>
图标,在 JSFiddle 中尝试此代码。
<html> <head> <title>Protected Payment</title> <script src="https://www.google.com/recaptcha/enterprise.js" async defer></script> <script> function submitForm() { grecaptcha.enterprise.ready(function() { grecaptcha.enterprise.execute( 'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) { document.getElementById("token").value = token; document.getElementByID("paymentForm").submit(); }); }); } </script> </head> <body> <form id="paymentForm" action="?" method="POST"> Total: $1.99 Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/> <input type="hidden" id="token" name="recaptcha_token"/> <button onclick="submitForm()">Purchase</button> </form> </body> </html>
使用交易数据创建评估
如需启用付款欺诈判定,请使用 projects.assessments.create 方法中的其他字段,创建包含交易数据的评估。
最简单的集成包括 transaction_id
、payment_method
、card_bin
和 value
。为了提高检测质量,我们建议添加 email
和 billing_address
等可选字段。
{ "event": { "token": "YOUR_TOKEN", "site_key": "KEY_ID", "expected_action": "YOUR_CHECKOUT_ACTION_NAME", "transaction_data": { "transaction_id": "txid-1234567890", "payment_method": "credit-card", "card_bin": "411111", "card_last_four": "1234", "currency_code": "USD", "value": 39.98, "user": { "email": "someEmailAddress@example.com" }, "billing_address": { "recipient": "name1 name2", "address": [ "123 Street Name", "Apt 1" ], "locality": "Sunnyvale", "administrative_area": "CA", "region_code": "USA", "postal_code": "123456" } } } }
为提高得分的质量,我们建议您 其他信号。
如需了解如何创建评估,请参阅为您的网站创建评估。reCAPTCHA 欺诈防范功能可能会使用较大的令牌,因此请确保以 POST 请求(而非 GET 请求)发送请求,并在正文中发送,而不是在标头中发送。
解读评估
开始发送交易数据后,您会以 JSON 响应的形式接收评估结果,其中包含 riskAnalysis
中的 fraudPreventionAssessment
组件。
以下示例是一个响应示例:
{ "event": {.... .... } ..... .... .... "riskAnalysis": { "score": "0.5" "reasons": SUSPECTED_CARDING } "fraudPreventionAssessment": { "transactionRisk": 0.9, } }
您收到的回答将包含分数和原因代码(如适用)。 得分越高,交易具有欺诈性和风险的可能性就越大; 得分越低,交易就越有可能合法。例如,得分为 0.9 表示交易更有可能是欺诈性交易且风险较高,得分为 0.1 表示交易更有可能是合法交易。
您需对根据此评估采取的措施负责。
为最简单的集成,您可以在 transactionRisk
上设置阈值
为您的决策提供参考依据。例如,它有助于向
人工审核或直接拒绝可能存在的欺诈性交易。
您还可以在自己的欺诈工作流中使用该得分,或将其作为现有系统规则的一部分使用。由于 reCAPTCHA 会检查独特的信号,并对互联网上的行为具有独特的可见性,因此即使您已经拥有成熟的欺诈检测引擎,也能获得额外的价值。
后续步骤
- 为了提高欺诈检测的质量,请了解其他信号。
- 如需为评估添加注解,请参阅使用事务事件为评估添加注解。