En esta página, se describe cómo proteger de manera eficaz las transacciones de pago contra ataques, como el robo de tarjetas, el fraude con instrumentos robados y el fraude de pago de apropiación de cuenta, con la Prevención de fraudes de reCAPTCHA.
La prevención de fraudes de reCAPTCHA te ayuda a proteger las transacciones de pago identificando ataques manuales dirigidos y intentos de fraude a gran escala. Entrena automáticamente modelos de comportamiento y transacciones para identificar eventos que probablemente sean fraudulentos y que pueden generar un reclamo o una devolución del cargo si se aceptan.
Como parte de estos modelos, la prevención de fraudes de reCAPTCHA examina los indicadores de transacción para permitir la detección de fraudes. Por ejemplo, una serie de intentos de compra con precios bajos podría indicar un ataque de robo de tarjetas. En la respuesta, recibirás puntuaciones de riesgo para diferentes tipos de fraude, que puedes usar para enviar la transacción a una revisión manual o bloquear directamente las transacciones suficientemente sospechosas.
Para configurar la prevención de fraudes de reCAPTCHA, debes completar los siguientes pasos:
Instala reCAPTCHA JavaScript en el frontend de pagos con una clave de reCAPTCHA basada en puntuación.
Cuando se ejecuta el código JavaScript, reCAPTCHA genera un token de reCAPTCHA único para cada sesión del usuario y recopila datos de comportamiento del usuario para evaluarlo.
-
En la respuesta de la solicitud a la API de create assessment, reCAPTCHA proporciona una puntuación para el riesgo de transacción y un código de motivo adicional (por ejemplo,
suspected_carding
), si corresponde. Determina la siguiente acción de tus usuarios en función de las puntuaciones.
Puedes permitir la transacción, solicitar una verificación adicional, enviarla a una revisión manual o bloquearla.
Antes de comenzar
Si es la primera vez que usas reCAPTCHA, haz lo siguiente:
Habilita la prevención de fraudes de reCAPTCHA en tu proyecto de Google Cloud:
En la consola de Google Cloud, ve a la página reCAPTCHA.
Verifica que el nombre de tu proyecto aparezca en el selector de recursos.
Si no ves el nombre de tu proyecto, haz clic en el selector de recursos y, luego, selecciona tu proyecto.
Haz clic en
Configuración.En el panel Fraud Prevention, haz clic en Configure.
Haz clic en el botón de activación Habilitar y, luego, en Guardar.
Asegúrate de que tu entorno admita tokens de más de 8 KB, ya que reCAPTCHA Fraud Prevention podría usar tokens más grandes.
Instala reCAPTCHA en el frontend de pagos
Para empezar a detectar ataques, instala una clave de reCAPTCHA basada en puntuaciones en cada página de tu flujo de usuarios de pagos. Esto incluye la interfaz en la que un usuario revisa su carrito, selecciona su forma de pago y completa la compra. Después de que el usuario realice su selección en cada paso, llama a grecaptcha.enterprise.execute()
para generar un token. Para obtener información sobre cómo instalar claves basadas en puntuaciones y llamar a execute()
, consulta Cómo instalar claves basadas en puntuaciones.
En el siguiente ejemplo, se muestra cómo integrar una clave basada en una puntuación en un evento de transacción de tarjeta de crédito:
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>
Puedes experimentar con este código en JSFiddle si haces clic en el icono <>
en la esquina superior derecha de la ventana de código.
<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>
Crea evaluaciones con datos de transacciones
Para habilitar los veredictos de fraude de pago, crea evaluaciones con datos de transacciones usando los campos adicionales del método projects.assessments.create.
La integración más simple incluye transaction_id
, payment_method
, card_bin
y value
. Para mejorar la calidad de la detección, te recomendamos que agregues campos opcionales, como email
y 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" } } } }
Para mejorar la calidad de las puntuaciones, te recomendamos que envíes indicadores adicionales.
Para obtener información sobre cómo crear evaluaciones, consulta Cómo crear una evaluación para tu sitio web. reCAPTCHA Fraud Prevention puede usar tokens más grandes, por lo que debes asegurarte de que la solicitud se envíe en una solicitud POST en lugar de GET, y en el cuerpo, no en un encabezado.
Interpreta las evaluaciones
Después de comenzar a enviar los datos de transacciones, recibirás las evaluaciones como una respuesta JSON con el componente fraudPreventionAssessment
en riskAnalysis
.
El siguiente ejemplo es una respuesta de ejemplo:
{ "event": {.... .... } ..... .... .... "riskAnalysis": { "score": "0.5" "reasons": SUSPECTED_CARDING } "fraudPreventionAssessment": { "transactionRisk": 0.9, } }
La respuesta que recibes incluye una puntuación y códigos de motivo cuando corresponda. Cuanto más alta sea la puntuación, es más probable que la transacción sea fraudulenta y riesgosa. Cuanto más baja sea la puntuación, es más probable que la transacción sea legítima. Por ejemplo, una puntuación de 0.9 indica que es más probable que la transacción sea fraudulenta y riesgosa, y una puntuación de 0.1 indica que es más probable que la transacción sea legítima.
Usted es responsable de las acciones que realice en función de la evaluación.
Para la integración más simple, puedes establecer umbrales en transactionRisk
para contribuir a tu decisión. Por ejemplo, puede contribuir a enviar una opinión a una revisión manual o rechazar directamente transacciones que probablemente sean fraudulentas.
También puedes usar la puntuación en tus propios flujos de trabajo de fraude o como parte de las reglas con tu sistema existente. Debido a que reCAPTCHA examina indicadores únicos y tiene una visibilidad única del comportamiento en Internet, puedes esperar un valor incremental incluso con un motor de detección de fraudes ya maduro.
¿Qué sigue?
- Para mejorar la calidad de la detección de fraudes, obtén información sobre los indicadores adicionales.
- Para anotar evaluaciones, consulta Cómo anotar evaluaciones con eventos de transacción.