Protéger les transactions de paiement avec la prévention des fraudes

Cette page explique comment protéger efficacement les transactions de paiement contre les attaques telles que le carding, la fraude aux instruments de paiement volés et les piratages de compte à l'aide de la prévention des fraudes de reCAPTCHA Enterprise.

La prévention des fraudes de reCAPTCHA Enterprise vous aide à protéger les transactions de paiement en identifiant les attaques manuelles ciblées et les tentatives de fraude à grande échelle. Il entraîne automatiquement les modèles de comportement et de transaction pour identifier les événements potentiellement frauduleux, qui peuvent entraîner un litige ou un rejet de débit s'ils sont acceptés.

Dans le cadre de ces modèles, reCAPTCHA Enterprise Fraud Prevention examine les signaux de transaction pour permettre la détection des fraudes. Par exemple, une série de tentatives d'achat à des prix bas peut indiquer une attaque par carding. Dans la réponse, vous recevez des scores de risque pour différents types de fraudes. Vous pouvez les utiliser pour soumettre la transaction à un examen manuel ou bloquer directement les transactions suffisamment suspectes.

Pour configurer la prévention des fraudes de reCAPTCHA Enterprise, procédez comme suit:

  1. Installez JavaScript Enterprise de reCAPTCHA Enterprise sur votre interface de paiement en installant une clé reCAPTCHA basée sur des scores.

    Lorsque le code JavaScript est exécuté, reCAPTCHA génère un jeton reCAPTCHA unique pour chaque session utilisateur et collecte les données sur le comportement des utilisateurs afin d'évaluer leur utilisation.

  2. Envoyez une requête de création d'API d'évaluation à partir de votre backend avec les données de transaction sur les événements utilisateur de votre processus de paiement.

    Dans la réponse à la requête de création d'API d'évaluation, reCAPTCHA Enterprise fournit un score pour le risque de transaction et un code de motif supplémentaire (par exemple, suspected_carding), le cas échéant.

  3. Déterminez l'action suivante pour vos utilisateurs en fonction des scores.

    Vous pouvez choisir d'autoriser la transaction, de demander une validation supplémentaire, de la transférer pour un examen manuel ou de la bloquer.

Avant de commencer

  1. Si vous débutez avec reCAPTCHA Enterprise, procédez comme suit:

    1. Configurez reCAPTCHA Enterprise sur votre projet Google Cloud.

    2. Créez une clé reCAPTCHA basée sur des scores.

  2. Activez la prévention des fraudes reCAPTCHA dans votre projet Google Cloud:

    1. Dans la console Google Cloud, accédez à la page reCAPTCHA Enterprise.

      Accéder à la page reCAPTCHA Enterprise

    2. Vérifiez que le nom de votre projet apparaît dans le sélecteur de ressources.

      Si vous ne voyez pas le nom de votre projet, cliquez sur le sélecteur de ressources, puis sélectionnez votre projet.

    3. Cliquez sur Paramètres.

    4. Dans le volet Prévention des fraudes, cliquez sur Configurer.

    5. Cliquez sur le bouton Activer, puis sur Enregistrer.

  3. Assurez-vous que votre environnement accepte les jetons de plus de 8 Ko, car reCAPTCHA Enterprise Fraud Prevention peut utiliser des jetons plus volumineux.

Installer reCAPTCHA Enterprise sur votre interface de paiement

Pour commencer à détecter les attaques, installez une clé reCAPTCHA basée sur des scores sur chaque page de votre parcours utilisateur de paiement. Cela inclut l'interface permettant à l'utilisateur de consulter son panier, de sélectionner son mode de paiement et de finaliser l'achat. Une fois que l'utilisateur a effectué sa sélection à chaque étape, appelez grecaptcha.enterprise.execute() pour générer un jeton. Pour savoir comment installer des clés basées sur des scores et appeler execute(), consultez Installer des clés basées sur des scores.

L'exemple suivant montre comment intégrer une clé basée sur des scores dans un événement de transaction par carte de crédit:

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>

Vous pouvez tester ce code dans JSFiddle en cliquant sur l'icône <> dans l'angle supérieur droit de la fenêtre de code.

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

Créer des évaluations avec des données de transaction

Pour activer les verdicts de fraude de paiement, créez des évaluations avec des données de transaction en utilisant les champs supplémentaires de la méthode projects.assessments.create.

L'intégration la plus simple inclut transaction_id, payment_method, currency_code et value. Pour améliorer la qualité de la détection, nous vous recommandons d'ajouter des champs facultatifs tels que email et 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",
        "address": "Apt 1",
        "locality": "Sunnyvale",
        "administrative_area": "CA",
        "region_code": "USA",
        "postal_code": "123456"
  }
 }
}

Pour améliorer la qualité des niveaux, nous vous recommandons d'envoyer des signaux supplémentaires.

Pour en savoir plus sur la création d'évaluations, consultez Créer une évaluation pour votre site Web. reCAPTCHA Enterprise Fraud Prevention peut utiliser des jetons plus importants. Assurez-vous donc que la requête est envoyée dans une requête POST plutôt que GET et dans le corps, et non dans un en-tête.

Interpréter les évaluations

Une fois que vous avez commencé à envoyer les données de transaction, vous recevez des évaluations sous la forme d'une réponse JSON avec le composant fraudPreventionAssessment dans riskAnalysis.

Voici un exemple de réponse:

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

La réponse que vous recevez inclut un score et des codes de motif, le cas échéant. Plus le score est élevé, plus la transaction est susceptible d'être frauduleuse et risquée. Plus le score est faible, plus la transaction est légitime. Par exemple, un score de 0,9 indique que la transaction est plus probablement frauduleuse et risquée, et un score de 0,1 qu'elle est plus probablement légitime.

Vous êtes responsable des actions que vous effectuez en fonction de cette évaluation. Pour une intégration la plus simple, vous pouvez définir des seuils sur transactionRisk pour contribuer à votre décision. Par exemple, elles peuvent contribuer à l'envoi d'un examen manuel ou au rejet direct de transactions potentiellement frauduleuses. Vous pouvez également utiliser le score dans vos propres workflows de lutte contre la fraude ou dans le cadre de règles appliquées à votre système existant. Étant donné que reCAPTCHA Enterprise examine des signaux uniques et offre une visibilité unique sur les comportements sur Internet, vous pouvez vous attendre à une valeur incrémentielle, même avec un moteur de détection des fraudes déjà mature.

Étapes suivantes