Melindungi transaksi pembayaran dengan Pencegahan Penipuan

Halaman ini menjelaskan cara melindungi transaksi pembayaran secara efektif dari serangan, seperti carding, penipuan instrumen curian, dan penipuan pembayaran pengambilalihan akun menggunakan Pencegahan Penipuan reCAPTCHA.

Pencegahan Penipuan reCAPTCHA membantu Anda melindungi transaksi pembayaran dengan mengidentifikasi serangan manual yang ditargetkan dan upaya penipuan berskala besar. Model ini otomatis melatih model perilaku dan transaksi untuk mengidentifikasi peristiwa yang kemungkinan merupakan penipuan dan dapat menyebabkan sengketa atau penagihan balik jika diterima.

Sebagai bagian dari model ini, Pencegahan Penipuan reCAPTCHA memeriksa sinyal transaksi untuk memungkinkan deteksi penipuan. Misalnya, serangkaian upaya pembelian dengan harga rendah mungkin menunjukkan serangan carding. Dalam respons, Anda akan menerima skor risiko untuk berbagai jenis penipuan, yang dapat Anda gunakan untuk mengirim transaksi ke peninjauan manual, atau langsung memblokir transaksi yang cukup mencurigakan.

Untuk menyiapkan Pencegahan Penipuan reCAPTCHA, Anda perlu menyelesaikan langkah-langkah berikut:

  1. Instal JavaScript reCAPTCHA di frontend pembayaran Anda dengan menginstal kunci reCAPTCHA berbasis skor.

    Saat JavaScript dijalankan, reCAPTCHA akan membuat token reCAPTCHA unik untuk setiap sesi pengguna dan mengumpulkan data perilaku pengguna untuk mengevaluasi pengguna.

  2. Kirim permintaan API penilaian pembuatan dari backend Anda dengan data transaksi pada peristiwa pengguna dalam alur kerja pembayaran.

    Dalam respons permintaan API penilaian pembuatan, reCAPTCHA memberikan skor untuk risiko transaksi dan kode alasan tambahan (misalnya, suspected_carding), jika berlaku.

  3. Tentukan tindakan berikutnya untuk pengguna Anda berdasarkan skor.

    Anda dapat memilih untuk mengizinkan transaksi, meminta verifikasi tambahan, meneruskan ke peninjauan manual, atau memblokir transaksi.

Sebelum memulai

  1. Jika Anda baru menggunakan reCAPTCHA, lakukan hal berikut:

    1. Mengonfigurasi reCAPTCHA di project Google Cloud Anda.

    2. Buat kunci reCAPTCHA berbasis skor.

  2. Aktifkan Pencegahan Penipuan reCAPTCHA di project Google Cloud Anda:

    1. Di konsol Google Cloud, buka halaman reCAPTCHA.

      Buka reCAPTCHA

    2. Pastikan nama project Anda muncul di pemilih resource.

      Jika tidak melihat nama project, klik pemilih resource, lalu pilih project Anda.

    3. Klik Setelan.

    4. Di panel Fraud Prevention, klik Configure.

    5. Klik tombol Aktifkan, lalu klik Simpan.

  3. Pastikan lingkungan Anda mendukung token yang lebih besar dari 8 KB karena reCAPTCHA Fraud Prevention mungkin menggunakan token yang lebih besar.

Menginstal reCAPTCHA di frontend pembayaran

Untuk mulai mendeteksi serangan, instal kunci reCAPTCHA berbasis skor di setiap halaman dalam alur penggunaan pembayaran Anda. Hal ini mencakup antarmuka tempat pengguna meninjau keranjang, memilih metode pembayaran, dan menyelesaikan pembelian. Setelah pengguna membuat pilihan di setiap langkah, panggil grecaptcha.enterprise.execute() untuk membuat token. Untuk mempelajari cara menginstal kunci berbasis skor dan memanggil execute(), lihat Menginstal kunci berbasis skor.

Contoh berikut menunjukkan cara mengintegrasikan kunci berbasis skor pada peristiwa transaksi kartu kredit:

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>

Anda dapat bereksperimen dengan kode ini di JSFiddle dengan mengklik ikon <> di sudut kanan atas jendela kode.

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

Membuat penilaian dengan data transaksi

Untuk mengaktifkan verdict penipuan pembayaran, buat penilaian dengan data transaksi menggunakan kolom tambahan dalam metode projects.assessments.create.

Integrasi yang paling sederhana mencakup transaction_id, payment_method, card_bin, dan value. Untuk meningkatkan kualitas deteksi, sebaiknya tambahkan kolom opsional seperti email dan 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"
            }
        }
    }
}

Untuk meningkatkan kualitas skor, sebaiknya kirimkan sinyal tambahan.

Untuk mempelajari cara membuat penilaian, lihat Membuat penilaian untuk situs Anda. reCAPTCHA Fraud Prevention mungkin menggunakan token yang lebih besar, jadi pastikan permintaan dikirim dalam permintaan POST, bukan GET; dan dalam isi, bukan di header.

Menafsirkan penilaian

Setelah mulai mengirim data transaksi, Anda akan menerima penilaian sebagai respons JSON dengan komponen fraudPreventionAssessment di riskAnalysis.

Contoh berikut adalah contoh respons:

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

Respons yang Anda terima akan menyertakan skor dan kode alasan jika berlaku. Makin tinggi skornya, makin besar kemungkinan transaksi tersebut bersifat menipu dan berisiko; makin rendah skornya, makin besar kemungkinan transaksi tersebut sah. Misalnya, skor 0,9 menunjukkan bahwa transaksi kemungkinan besar menipu dan berisiko, dan skor 0,1 menunjukkan bahwa transaksi kemungkinan besar sah.

Anda bertanggung jawab atas tindakan yang Anda lakukan berdasarkan penilaian. Untuk integrasi yang paling sederhana, Anda dapat menetapkan nilai minimum pada transactionRisk untuk berkontribusi pada keputusan Anda. Misalnya, hal ini dapat berkontribusi pada pengiriman ke peninjauan manual atau langsung menolak transaksi yang kemungkinan merupakan penipuan. Anda juga dapat menggunakan skor dalam alur kerja penipuan Anda sendiri, atau sebagai bagian dari aturan dengan sistem yang ada. Karena reCAPTCHA memeriksa sinyal unik dan memiliki visibilitas perilaku yang unik di seluruh internet, Anda dapat mengharapkan nilai inkremental bahkan dengan mesin deteksi penipuan yang sudah matang.

Langkah selanjutnya