Protege las transacciones de pago con la prevención de fraudes

En esta página, se describe cómo proteger de forma eficaz las transacciones de pago contra ataques, como el uso de tarjetas, el fraude con instrumentos robados y el fraude de pago por apropiación de cuentas mediante la prevención de fraudes de reCAPTCHA.

La prevención de fraudes de reCAPTCHA te ayuda a proteger las transacciones de pago, ya que identifica los ataques manuales dirigidos y los intentos de fraude a gran escala. Entrena automáticamente los modelos de comportamiento y transacción para identificar eventos que probablemente sean fraudulentos y pueden generar una disputa 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 habilitar la detección del fraude. Por ejemplo, una serie de intentos de compra con precios bajos podría indicar un ataque de carding. En la respuesta, recibirás puntuaciones de riesgo para diferentes tipos de fraude, que puedes usar si quieres enviar la transacción a una revisión manual o bloquear directamente transacciones suficientemente sospechosas.

Para configurar la prevención de fraudes de reCAPTCHA, debes completar los siguientes pasos:

  1. Instala JavaScript de reCAPTCHA en tu frontend de pagos mediante la instalación de una clave de reCAPTCHA basada en puntuaciones.

    Cuando se ejecuta el código JavaScript, reCAPTCHA genera un token de reCAPTCHA único para cada sesión de usuario y recopila datos de comportamiento del usuario a fin de evaluarlo.

  2. Envía una solicitud a la API de creación de evaluaciones desde tu backend con datos de transacciones sobre eventos de usuario en tu flujo de trabajo de pagos.

    En la respuesta de la solicitud a la API de creación de evaluación, reCAPTCHA proporciona una puntuación para el riesgo de transacción y el código de motivo adicional (por ejemplo, suspected_carding), si corresponde.

  3. Determina la siguiente acción para tus usuarios en función de las puntuaciones.

    Puedes permitir la transacción, solicitar una verificación adicional, reenviar a una revisión manual o bloquear la transacción.

Antes de comenzar

  1. Si es la primera vez que usas reCAPTCHA, haz lo siguiente:

    1. Configura reCAPTCHA en tu proyecto de Google Cloud.

    2. Crea una clave de reCAPTCHA basada en la puntuación.

  2. Habilita la prevención de fraudes de reCAPTCHA en tu proyecto de Google Cloud:

    1. En la consola de Google Cloud, ve a la página de reCAPTCHA.

      Ir a reCAPTCHA

    2. 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.

    3. Haz clic en Configuración.

    4. En el panel Prevención de fraudes, haz clic en Configurar.

    5. Haz clic en el botón de activación Habilitar y, luego, en Guardar.

  3. Asegúrate de que tu entorno admita tokens de más de 8 KB, ya que la prevención de fraudes de reCAPTCHA podría usar tokens más grandes.

Instala reCAPTCHA en tu frontend de pago

Para comenzar 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 el carrito, selecciona la forma de pago y completa la compra. Después de que el usuario haga 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 puntuación y llamar a execute(), consulta Instala claves basadas en puntuación.

En el siguiente ejemplo, se muestra cómo integrar una clave basada en puntuaciones en un evento de transacción con 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 los datos de transacciones mediante 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 agregar 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 los niveles, te recomendamos que envíes indicadores adicionales.

Si quieres obtener información sobre cómo crear evaluaciones, consulta Crea una evaluación para tu sitio web. La prevención de fraudes de reCAPTCHA podría usar tokens más grandes, así que asegúrate 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 la transacción, recibirás evaluaciones como una respuesta JSON con el componente fraudPreventionAssessment en riskAnalysis.

El siguiente ejemplo es una respuesta de muestra:

{
  "event": {....
  ....
  }
  .....
  ....
  ....
"riskAnalysis": {
    "score": "0.5"
    "reasons": SUSPECTED_CARDING
}
"fraudPreventionAssessment": {
    "transactionRisk": 0.9,
}
}

La respuesta que reciba incluye códigos de puntuación y motivo según corresponda. Cuanto más alta sea la puntuación, más probable es que la transacción sea fraudulenta y riesgosa. Cuanto más baja sea la puntuación, más probable es que la transacción sea legítima. Por ejemplo, una puntuación de 0.9 indica que la transacción es más probable que 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 tome en función de la evaluación. Para la integración más simple, puedes establecer umbrales en transactionRisk y contribuir a tu decisión. Por ejemplo, puede contribuir al envío de una revisión manual o al rechazo directo de posibles transacciones fraudulentas. También puedes usar la puntuación en tus propios flujos de trabajo fraudulentos o como parte de 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 desarrollado.

¿Qué sigue?